diff options
author | bobzel <zzzman@gmail.com> | 2024-04-30 01:10:20 -0400 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2024-04-30 01:10:20 -0400 |
commit | 6de58d7ecbfd14beb7389c6ff56e764b5c00ba25 (patch) | |
tree | 57b396b30644ac2fa3ec48fe38bc3efb419ce88d | |
parent | e17737982ea2ce84b4bded798ee7bdf730a75715 (diff) |
changed acl- and some other field- to acl_ and field_ style
22 files changed, 127 insertions, 1480 deletions
diff --git a/report.20231129.000028.55430.0.001.json b/report.20231129.000028.55430.0.001.json deleted file mode 100644 index a29d550ae..000000000 --- a/report.20231129.000028.55430.0.001.json +++ /dev/null @@ -1,1343 +0,0 @@ - -{ - "header": { - "reportVersion": 1, - "event": "Allocation failed - JavaScript heap out of memory", - "trigger": "FatalError", - "filename": "report.20231129.000028.55430.0.001.json", - "dumpEventTime": "2023-11-29T00:00:28Z", - "dumpEventTimeStamp": "1701234028056", - "processId": 55430, - "cwd": "/Users/sarah/Desktop/dash/Dash-Web", - "commandLine": [ - "/Users/sarah/.nvm/versions/node/v12.16.0/bin/node", - "--max-old-space-size=2048", - "/Users/sarah/Desktop/dash/Dash-Web/node_modules/ts-node-dev/lib/wrap.js", - "/Users/sarah/Desktop/dash/Dash-Web/node_modules/fork-ts-checker-webpack-plugin/lib/service.js" - ], - "nodejsVersion": "v12.16.0", - "wordSize": 64, - "arch": "x64", - "platform": "darwin", - "componentVersions": { - "node": "12.16.0", - "v8": "7.8.279.23-node.31", - "uv": "1.34.0", - "zlib": "1.2.11", - "brotli": "1.0.7", - "ares": "1.15.0", - "modules": "72", - "nghttp2": "1.40.0", - "napi": "5", - "llhttp": "2.0.4", - "http_parser": "2.9.3", - "openssl": "1.1.1d", - "cldr": "35.1", - "icu": "64.2", - "tz": "2019c", - "unicode": "12.1" - }, - "release": { - "name": "node", - "lts": "Erbium", - "headersUrl": "https://nodejs.org/download/release/v12.16.0/node-v12.16.0-headers.tar.gz", - "sourceUrl": "https://nodejs.org/download/release/v12.16.0/node-v12.16.0.tar.gz" - }, - "osName": "Darwin", - "osRelease": "22.6.0", - "osVersion": "Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64", - "osMachine": "x86_64", - "cpus": [ - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 19491620, - "nice": 0, - "sys": 10530730, - "idle": 128029940, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 1041080, - "nice": 0, - "sys": 832510, - "idle": 156711500, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 17230140, - "nice": 0, - "sys": 7308720, - "idle": 133550270, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 1101080, - "nice": 0, - "sys": 813690, - "idle": 156678120, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 14246350, - "nice": 0, - "sys": 5654800, - "idle": 138314740, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 1142930, - "nice": 0, - "sys": 790770, - "idle": 156668310, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 12228700, - "nice": 0, - "sys": 4533960, - "idle": 141551990, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 1165420, - "nice": 0, - "sys": 773220, - "idle": 156669740, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 9805920, - "nice": 0, - "sys": 3386750, - "idle": 145216650, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 1177080, - "nice": 0, - "sys": 759980, - "idle": 156674610, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 8806950, - "nice": 0, - "sys": 2889820, - "idle": 146774530, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 1166250, - "nice": 0, - "sys": 737790, - "idle": 156711830, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 7865920, - "nice": 0, - "sys": 2438950, - "idle": 148205800, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 1155370, - "nice": 0, - "sys": 719580, - "idle": 156743860, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 7478040, - "nice": 0, - "sys": 2248690, - "idle": 148810130, - "irq": 0 - }, - { - "model": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz", - "speed": 2300, - "user": 1131070, - "nice": 0, - "sys": 695000, - "idle": 156797450, - "irq": 0 - } - ], - "networkInterfaces": [ - { - "name": "lo0", - "internal": true, - "mac": "00:00:00:00:00:00", - "address": "127.0.0.1", - "netmask": "255.0.0.0", - "family": "IPv4" - }, - { - "name": "lo0", - "internal": true, - "mac": "00:00:00:00:00:00", - "address": "::1", - "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", - "family": "IPv6", - "scopeid": 0 - }, - { - "name": "lo0", - "internal": true, - "mac": "00:00:00:00:00:00", - "address": "fe80::1", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 1 - }, - { - "name": "en5", - "internal": false, - "mac": "ac:de:48:00:11:22", - "address": "fe80::aede:48ff:fe00:1122", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 4 - }, - { - "name": "en0", - "internal": false, - "mac": "88:66:5a:29:28:77", - "address": "fe80::1467:9dad:c3d1:73a7", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 6 - }, - { - "name": "en0", - "internal": false, - "mac": "88:66:5a:29:28:77", - "address": "10.38.21.14", - "netmask": "255.255.192.0", - "family": "IPv4" - }, - { - "name": "en0", - "internal": false, - "mac": "88:66:5a:29:28:77", - "address": "fde6:e673:d766:4b72:1481:e813:77a2:da34", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 0 - }, - { - "name": "en0", - "internal": false, - "mac": "88:66:5a:29:28:77", - "address": "2620:6e:6000:3100:148e:201a:1a33:145d", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 0 - }, - { - "name": "en0", - "internal": false, - "mac": "88:66:5a:29:28:77", - "address": "2620:6e:6000:3100:5c7f:8d3f:76ba:694b", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 0 - }, - { - "name": "awdl0", - "internal": false, - "mac": "12:df:77:23:4c:4e", - "address": "fe80::10df:77ff:fe23:4c4e", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 9 - }, - { - "name": "llw0", - "internal": false, - "mac": "12:df:77:23:4c:4e", - "address": "fe80::10df:77ff:fe23:4c4e", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 12 - }, - { - "name": "utun0", - "internal": false, - "mac": "00:00:00:00:00:00", - "address": "fe80::6616:29f1:d83d:2f8d", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 14 - }, - { - "name": "utun1", - "internal": false, - "mac": "00:00:00:00:00:00", - "address": "fe80::b4dc:ec9a:5d3d:18ab", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 15 - }, - { - "name": "utun2", - "internal": false, - "mac": "00:00:00:00:00:00", - "address": "fe80::ce81:b1c:bd2c:69e", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 16 - }, - { - "name": "utun3", - "internal": false, - "mac": "00:00:00:00:00:00", - "address": "fe80::bd9f:d9d8:700d:2011", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 17 - }, - { - "name": "utun4", - "internal": false, - "mac": "00:00:00:00:00:00", - "address": "fe80::9a49:1de7:e220:2bb", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 18 - }, - { - "name": "utun5", - "internal": false, - "mac": "00:00:00:00:00:00", - "address": "fe80::93fe:38cf:1393:3191", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 19 - }, - { - "name": "utun6", - "internal": false, - "mac": "00:00:00:00:00:00", - "address": "fe80::781d:651c:69a7:3d42", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 20 - }, - { - "name": "utun7", - "internal": false, - "mac": "00:00:00:00:00:00", - "address": "fe80::b39:d094:2a6d:e0c5", - "netmask": "ffff:ffff:ffff:ffff::", - "family": "IPv6", - "scopeid": 21 - } - ], - "host": "sarahs-mbp-2.devices.brown.edu" - }, - "javascriptStack": { - "message": "No stack.", - "stack": [ - "Unavailable." - ] - }, - "nativeStack": [ - { - "pc": "0x000000010015c8ca", - "symbol": "report::TriggerNodeReport(v8::Isolate*, node::Environment*, char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, v8::Local<v8::String>) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x0000000100080f3e", - "symbol": "node::OnFatalError(char const*, char const*) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x0000000100185467", - "symbol": "v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x0000000100185403", - "symbol": "v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x000000010030b5f5", - "symbol": "v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x000000010030ccc4", - "symbol": "v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x0000000100309b37", - "symbol": "v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x0000000100307afd", - "symbol": "v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x00000001003132ba", - "symbol": "v8::internal::Heap::AllocateRawWithLightRetry(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x0000000100313341", - "symbol": "v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x00000001002e065b", - "symbol": "v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x0000000100618a18", - "symbol": "v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - }, - { - "pc": "0x0000000100950c19", - "symbol": "Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/sarah/.nvm/versions/node/v12.16.0/bin/node]" - } - ], - "javascriptHeap": { - "totalMemory": 2154991616, - "totalCommittedMemory": 2153815368, - "usedMemory": 2136222480, - "availableMemory": 51343040, - "memoryLimit": 2197815296, - "heapSpaces": { - "read_only_space": { - "memorySize": 262144, - "committedMemory": 33088, - "capacity": 32808, - "used": 32808, - "available": 0 - }, - "new_space": { - "memorySize": 8388608, - "committedMemory": 8388528, - "capacity": 4189824, - "used": 69544, - "available": 4120280 - }, - "old_space": { - "memorySize": 1946566656, - "committedMemory": 1946346224, - "capacity": 1939183704, - "used": 1938974448, - "available": 209256 - }, - "code_space": { - "memorySize": 14323712, - "committedMemory": 13779552, - "capacity": 12481792, - "used": 12481792, - "available": 0 - }, - "map_space": { - "memorySize": 1576960, - "committedMemory": 1394440, - "capacity": 1280720, - "used": 1280720, - "available": 0 - }, - "large_object_space": { - "memorySize": 183824384, - "committedMemory": 183824384, - "capacity": 183380384, - "used": 183380384, - "available": 0 - }, - "code_large_object_space": { - "memorySize": 49152, - "committedMemory": 49152, - "capacity": 2784, - "used": 2784, - "available": 0 - }, - "new_large_object_space": { - "memorySize": 0, - "committedMemory": 0, - "capacity": 4189824, - "used": 0, - "available": 4189824 - } - } - }, - "resourceUsage": { - "userCpuSeconds": 306.691, - "kernelCpuSeconds": 15.3869, - "cpuConsumptionPercent": 11.2772, - "maxRss": 2231285841920, - "pageFaults": { - "IORequired": 110, - "IONotRequired": 2487718 - }, - "fsActivity": { - "reads": 0, - "writes": 0 - } - }, - "libuv": [ - ], - "environmentVariables": { - "npm_config_save_dev": "", - "npm_config_legacy_bundling": "", - "npm_config_dry_run": "", - "npm_package_dependencies_request": "^2.88.2", - "npm_package_dependencies_express_flash": "0.0.2", - "npm_package_dependencies__fortawesome_fontawesome_svg_core": "^6.3.0", - "NVM_INC": "/Users/sarah/.nvm/versions/node/v12.16.0/include/node", - "npm_config_viewer": "man", - "npm_config_only": "", - "npm_config_commit_hooks": "true", - "npm_config_browser": "", - "npm_package_gitHead": "5754c1c056ec62e17b5d7badddc4a8fc3637e09f", - "npm_package_dependencies_webpack_dev_middleware": "^5.3.1", - "npm_package_dependencies_webpack_cli": "^4.10.0", - "npm_package_devDependencies_prettier": "^2.7.1", - "npm_package_devDependencies_awesome_typescript_loader": "^5.2.1", - "npm_package_devDependencies__types_archiver": "^3.1.1", - "npm_config_also": "", - "npm_package_dependencies_react_jsx_parser": "^1.29.0", - "npm_package_dependencies_mongoose": "^5.13.14", - "npm_package_dependencies_connect_flash": "^0.1.1", - "npm_package_browser_child_process": "false", - "npm_config_sign_git_commit": "", - "npm_config_rollback": "true", - "npm_package_dependencies_material_ui": "^0.20.2", - "npm_package_devDependencies__types_sharp": "^0.23.1", - "npm_package_devDependencies__types_passport_local": "^1.0.34", - "npm_package_devDependencies__types_dotenv": "^6.1.1", - "npm_package_devDependencies__types_cookie_parser": "^1.4.2", - "TERM_PROGRAM": "Apple_Terminal", - "NODE": "/Users/sarah/.nvm/versions/node/v12.16.0/bin/node", - "npm_config_usage": "", - "npm_config_audit": "true", - "npm_package_dependencies_reveal_js": "^4.3.0", - "npm_package_dependencies_process": "^0.11.10", - "npm_package_dependencies_pdfjs": "^2.4.7", - "npm_package_dependencies_html_to_image": "^0.1.3", - "npm_package_devDependencies_file_loader": "^3.0.1", - "npm_package_devDependencies__types_express_flash": "0.0.0", - "npm_package_scripts_monitor": "cross-env MONITORED=true NODE_OPTIONS=--max_old_space_size=4096 ts-node src/server/index.ts", - "INIT_CWD": "/Users/sarah/Desktop/dash/Dash-Web", - "npm_package_dependencies_rehype_raw": "^6.1.1", - "npm_package_dependencies_react_audio_waveform": "0.0.5", - "npm_package_dependencies_path_browserify": "^1.0.1", - "npm_package_dependencies_nodemailer": "^5.1.1", - "npm_package_dependencies_axios": "^0.19.2", - "npm_package_devDependencies_typescript": "^4.7.4", - "NVM_CD_FLAGS": "-q", - "npm_config_globalignorefile": "/Users/sarah/.nvm/versions/node/v12.16.0/etc/npmignore", - "npm_package_dependencies_react_grid_layout": "^1.3.4", - "npm_package_dependencies_prosemirror_find_replace": "^0.9.0", - "npm_package_dependencies_normalize_css": "^8.0.1", - "npm_package_devDependencies_mocha": "^5.2.0", - "npm_package_devDependencies__types_express_session": "^1.17.5", - "SHELL": "/bin/zsh", - "TERM": "xterm-256color", - "npm_config_shell": "/bin/zsh", - "npm_config_maxsockets": "50", - "npm_config_init_author_url": "", - "npm_package_dependencies_prosemirror_dev_tools": "^3.1.0", - "npm_package_dependencies_p_limit": "^2.2.0", - "npm_package_dependencies_bson": "^4.6.1", - "npm_package_dependencies__types_dom_speech_recognition": "0.0.1", - "npm_package_dependencies__emotion_styled": "^11.11.0", - "npm_package_devDependencies_style_loader": "^0.23.1", - "npm_package_devDependencies__types_react_datepicker": "^3.1.8", - "npm_config_shrinkwrap": "true", - "npm_config_parseable": "", - "npm_config_metrics_registry": "https://registry.npmjs.org/", - "npm_package_dependencies_xregexp": "^4.4.1", - "npm_package_dependencies_shelljs": "^0.8.5", - "npm_package_dependencies_bezier_curve": "^1.0.0", - "npm_package_dependencies__mui_icons_material": "^5.11.16", - "npm_package_devDependencies_tslint": "^5.20.1", - "npm_package_devDependencies__types_react_transition_group": "^4.4.5", - "npm_package_scripts_tsc": "tsc", - "TMPDIR": "/var/folders/yk/p_39q8jn673c5p8_66mcxm7r0000gn/T/", - "npm_config_timing": "", - "npm_config_init_license": "ISC", - "npm_package_dependencies_socket_io": "^2.5.0", - "npm_package_dependencies_probe_image_size": "^4.0.0", - "npm_package_dependencies_canvas": "^2.9.3", - "npm_package_dependencies__hig_theme_data": "^2.23.1", - "npm_package_devDependencies__types_react_select": "^3.1.2", - "npm_package_devDependencies__types_prosemirror_model": "^1.16.1", - "CONDA_SHLVL": "1", - "npm_config_if_present": "", - "npm_package_dependencies_typescript_collections": "^1.3.3", - "npm_package_dependencies_rimraf": "^3.0.0", - "npm_package_dependencies_react_autosuggest": "^9.4.3", - "npm_package_dependencies_flexlayout_react": "^0.3.11", - "npm_package_dependencies_find_in_files": "^0.5.0", - "npm_package_devDependencies__types_chai": "^4.3.0", - "CONDA_PROMPT_MODIFIER": "(base) ", - "TERM_PROGRAM_VERSION": "447", - "npm_package_dependencies_prosemirror_inputrules": "^1.1.3", - "npm_package_dependencies_bcrypt_nodejs": "0.0.3", - "npm_package_dependencies_async": "^2.6.2", - "npm_config_sign_git_tag": "", - "npm_config_init_author_email": "", - "npm_config_cache_max": "Infinity", - "npm_package_dependencies_uuid": "^3.4.0", - "npm_package_dependencies_supercluster": "^7.1.4", - "npm_package_dependencies_remark_gfm": "^3.0.1", - "npm_package_dependencies_connect_mongo": "^2.0.3", - "npm_package_dependencies_browser_assert": "^1.2.1", - "npm_package_devDependencies_sass_loader": "^7.3.1", - "npm_package_scripts_start_release_debug": "cross-env RELEASE=true USE_AZURE=true NODE_OPTIONS=--max_old_space_size=4096 ts-node-dev --inspect -- src/server/index.ts", - "npm_config_preid": "", - "npm_config_long": "", - "npm_config_local_address": "", - "npm_config_git_tag_version": "true", - "npm_config_cert": "", - "npm_package_dependencies_js_datepicker": "^4.6.6", - "npm_package_devDependencies__types_webpack_hot_middleware": "^2.25.6", - "npm_package_devDependencies__types_mongodb": "^3.6.20", - "npm_package_devDependencies__types_mocha": "^5.2.6", - "TERM_SESSION_ID": "4AACD142-8780-44F4-A4FA-BB53E1BF6081", - "npm_config_registry": "https://registry.npmjs.org/", - "npm_config_noproxy": "", - "npm_config_fetch_retries": "2", - "npm_package_dependencies_react_compound_slider": "^2.5.0", - "npm_package_dependencies_prosemirror_history": "^1.2.0", - "npm_package_devDependencies__types_react_color": "^2.17.6", - "npm_package_devDependencies__types_google_maps_react": "^2.0.5", - "npm_package_devDependencies__types_color": "^3.0.3", - "npm_package_dependencies_react_dom": "^18.2.0", - "npm_package_dependencies_passport_local": "^1.0.0", - "npm_package_dependencies__octokit_core": "^4.0.4", - "npm_package_devDependencies__types_async": "^2.4.1", - "npm_package_scripts_debug": "cross-env NODE_OPTIONS=--max_old_space_size=8192 ts-node-dev --transpile-only --inspect -- src/server/index.ts", - "npm_package_scripts_oldstart": "cross-env NODE_OPTIONS=--max_old_space_size=4096 ts-node-dev --debug -- src/server/index.ts", - "npm_config_versions": "", - "npm_config_message": "%s", - "npm_config_key": "", - "npm_package_readmeFilename": "README.md", - "npm_package_dependencies_react_refresh_typescript": "^2.0.7", - "npm_package_dependencies_react_dropzone": "^14.2.3", - "npm_package_dependencies_image_size": "^0.7.5", - "npm_package_dependencies_html_to_text": "^5.1.1", - "npm_package_dependencies_express_validator": "^5.3.1", - "npm_package_devDependencies_eslint_plugin_jsx_a11y": "^6.6.0", - "npm_package_node_child_process": "empty", - "npm_package_dependencies_react_resizable_rotatable_draggable": "^0.2.0", - "npm_package_dependencies_got": "^12.0.1", - "npm_package_dependencies__types_d3_color": "^2.0.3", - "npm_package_devDependencies_webpack": "^5.69.1", - "npm_package_devDependencies__types_nodemailer": "^4.6.6", - "npm_package_description": "Install Node.js, then, from the project directory, run", - "NVM_DIR": "/Users/sarah/.nvm", - "USER": "sarah", - "npm_package_dependencies__types_d3_scale": "^3.3.2", - "npm_package_devDependencies_dotenv": "^8.6.0", - "npm_package_devDependencies__types_react": "^18.0.15", - "npm_package_devDependencies__types_prosemirror_transform": "^1.1.5", - "npm_package_devDependencies__types_prosemirror_history": "^1.0.3", - "npm_package_dependencies_readline": "^1.3.0", - "npm_package_dependencies__types_supercluster": "^7.1.0", - "npm_package_dependencies__azure_storage_blob": "^12.14.0", - "npm_config_globalconfig": "/Users/sarah/.nvm/versions/node/v12.16.0/etc/npmrc", - "npm_package_dependencies_depcheck": "^0.9.2", - "npm_package_dependencies__types_web": "0.0.53", - "CONDA_EXE": "/Users/sarah/miniconda3/bin/conda", - "npm_config_prefer_online": "", - "npm_config_logs_max": "10", - "npm_config_always_auth": "", - "npm_package_dependencies_react_icons": "^4.3.1", - "npm_package_dependencies_passport_google_oauth20": "^2.0.0", - "npm_package_devDependencies_webpack_dev_server": "^3.11.3", - "npm_package_devDependencies__types_brotli": "^1.3.1", - "npm_package_dependencies_url_loader": "^1.1.2", - "npm_package_dependencies_stream_browserify": "^3.0.0", - "npm_package_dependencies_prosemirror_transform": "^1.3.4", - "npm_package_dependencies_lodash": "^4.17.21", - "npm_package_dependencies_i": "^0.3.7", - "npm_package_devDependencies_tslint_loader": "^3.6.0", - "SSH_AUTH_SOCK": "/private/tmp/com.apple.launchd.dBaRxB6a53/Listeners", - "npm_package_dependencies_words_to_numbers": "^1.5.1", - "npm_package_dependencies_valid_url": "^1.0.9", - "npm_package_dependencies_styled_components": "^4.4.1", - "npm_package_dependencies_csv_parser": "^3.0.0", - "npm_package_dependencies_class_transformer": "^0.2.0", - "npm_package_devDependencies_eslint": "^8.36.0", - "npm_package_devDependencies__types_prosemirror_inputrules": "^1.0.4", - "npm_package_devDependencies__types_express": "^4.17.13", - "__CF_USER_TEXT_ENCODING": "0x1F5:0x0:0x0", - "npm_execpath": "/Users/sarah/.nvm/versions/node/v12.16.0/lib/node_modules/npm/bin/npm-cli.js", - "npm_config_global_style": "", - "npm_config_cache_lock_retries": "10", - "npm_package_dependencies_wikijs": "^6.3.3", - "npm_package_dependencies_bluebird": "^3.7.2", - "npm_package_devDependencies__types_react_typist": "^2.0.3", - "npm_config_update_notifier": "true", - "npm_config_cafile": "", - "npm_package_dependencies_util": "^0.12.4", - "npm_package_dependencies_raw_loader": "^1.0.0", - "npm_package_dependencies_https_browserify": "^1.0.0", - "npm_package_dependencies_brotli": "^1.3.3", - "npm_package_dependencies__mui_material": "^5.13.1", - "npm_package_dependencies__fortawesome_react_fontawesome": "^0.2.0", - "npm_package_devDependencies__types_passport_google_oauth20": "^2.0.11", - "npm_package_dependencies_cors": "^2.8.5", - "npm_package_dependencies_bezier_js": "^4.1.1", - "npm_package_dependencies__fortawesome_free_brands_svg_icons": "^6.3.0", - "npm_config_heading": "npm", - "npm_config_audit_level": "low", - "npm_package_dependencies_chrome": "^0.1.0", - "npm_package_dependencies__react_three_fiber": "^6.2.3", - "npm_package_devDependencies_eslint_plugin_prettier": "^4.2.1", - "npm_package_devDependencies_copy_webpack_plugin": "^4.6.0", - "npm_package_devDependencies__types_react_measure": "^2.0.8", - "npm_package_devDependencies__types_react_dom": "^18.0.6", - "npm_package_devDependencies__types_mobile_detect": "^1.3.4", - "_CE_CONDA": "", - "npm_config_searchlimit": "20", - "npm_config_read_only": "", - "npm_config_offline": "", - "npm_config_fetch_retry_mintimeout": "10000", - "npm_package_dependencies_react_typist": "^2.0.5", - "npm_package_dependencies_mobx_react_devtools": "^6.1.1", - "npm_package_dependencies_md5_file": "^5.0.0", - "npm_package_dependencies_forever_agent": "^0.6.1", - "npm_package_devDependencies__types_xregexp": "^4.4.0", - "npm_package_devDependencies__types_typescript": "^2.0.0", - "npm_package_devDependencies__types_request": "^2.48.8", - "npm_package_devDependencies__types_prosemirror_commands": "^1.0.4", - "npm_config_json": "", - "npm_config_access": "", - "npm_config_argv": "{\"remain\":[],\"cooked\":[\"start\"],\"original\":[\"start\"]}", - "npm_package_dependencies__fortawesome_free_solid_svg_icons": "^6.3.0", - "npm_package_devDependencies__types_socket_io": "^2.1.13", - "PATH": "/Users/sarah/.nvm/versions/node/v12.16.0/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/sarah/Desktop/dash/Dash-Web/node_modules/.bin:/Users/sarah/.nvm/versions/node/v12.16.0/bin:/Users/sarah/miniconda3/bin:/Users/sarah/miniconda3/condabin:/Users/sarah/.elan/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin", - "npm_config_allow_same_version": "", - "npm_package_dependencies_webrtc_adapter": "^7.7.1", - "npm_package_dependencies_react_reveal": "^1.2.2", - "npm_package_dependencies_prosemirror_schema_list": "^1.1.6", - "npm_package_dependencies__material_ui_core": "^4.12.3", - "npm_package_devDependencies__types_rimraf": "^2.0.5", - "npm_package_devDependencies__types_connect_flash": "0.0.34", - "npm_config_https_proxy": "", - "npm_config_engine_strict": "", - "npm_config_description": "true", - "npm_package_dependencies_pug": "^2.0.4", - "npm_package_dependencies_prosemirror_keymap": "^1.1.5", - "npm_package_dependencies_pdfjs_dist": "^2.14.305", - "npm_package_dependencies_mobile_detect": "^1.4.5", - "npm_package_dependencies_image_size_stream": "^1.1.0", - "npm_package_dependencies_golden_layout": "^1.5.9", - "npm_package_dependencies_child_process": "^1.0.2", - "npm_package_dependencies__types_d3_axis": "^2.1.3", - "_": "/Users/sarah/Desktop/dash/Dash-Web/node_modules/.bin/cross-env", - "LaunchInstanceID": "16109DB5-CDB2-454A-9613-8F6F534702AC", - "npm_config_userconfig": "/Users/sarah/.npmrc", - "npm_config_init_module": "/Users/sarah/.npm-init.js", - "npm_package_dependencies__react_google_maps_api": "^2.7.0", - "CONDA_PREFIX": "/Users/sarah/miniconda3", - "__CFBundleIdentifier": "com.apple.Terminal", - "npm_config_cidr": "", - "npm_package_dependencies_puppeteer": "^3.3.0", - "npm_package_dependencies_prosemirror_view": "^1.26.5", - "npm_package_dependencies_mongodb": "^3.7.3", - "npm_package_dependencies_google_auth_library": "^4.2.4", - "npm_package_dependencies_bootstrap": "^4.6.1", - "npm_package_devDependencies_eslint_config_airbnb": "^19.0.4", - "PWD": "/Users/sarah/desktop/dash/dash-web", - "npm_config_user": "501", - "npm_config_node_version": "12.16.0", - "npm_package_dependencies_node_sass": "^4.14.1", - "npm_package_dependencies_howler": "^2.2.3", - "npm_package_dependencies_expressjs": "^1.0.1", - "npm_package_dependencies_core_js": "^3.28.0", - "npm_package_dependencies_browndash_components": "^0.1.36", - "npm_package_devDependencies_eslint_plugin_react_hooks": "^4.6.0", - "npm_package_devDependencies__types_lodash": "^4.14.179", - "JAVA_HOME": "/Library/Java/JavaVirtualMachines/jdk1.8.0_341.jdk/Contents/Home", - "npm_lifecycle_event": "start", - "npm_package_dependencies_react_table": "^6.11.5", - "npm_package_dependencies_react_loading": "^2.0.3", - "npm_package_dependencies_mobx": "^5.15.7", - "npm_package_dependencies_babel": "^6.23.0", - "npm_package_devDependencies_jsdom": "^15.2.1", - "npm_package_devDependencies_chai": "^4.3.6", - "npm_config_save": "true", - "npm_config_ignore_prepublish": "", - "npm_config_editor": "vi", - "npm_config_auth_type": "legacy", - "npm_package_dependencies_npm": "^6.14.18", - "npm_package_dependencies_node_stream_zip": "^1.15.0", - "npm_package_dependencies_image_data_uri": "^2.0.1", - "npm_package_scripts_start_release": "cross-env RELEASE=true USE_AZURE=false NODE_OPTIONS=--max_old_space_size=4096 ts-node-dev -- src/server/index.ts", - "npm_package_name": "dash", - "LANG": "en_US.UTF-8", - "npm_config_tag": "latest", - "npm_config_script_shell": "", - "npm_package_dependencies_query_string": "^6.14.1", - "npm_package_dependencies_mobx_utils": "^5.6.2", - "npm_package_dependencies_file_saver": "^2.0.5", - "npm_package_dependencies_body_parser": "^1.19.2", - "npm_package_dependencies__types_reveal": "^3.3.33", - "npm_package_devDependencies_eslint_plugin_import": "^2.26.0", - "npm_package_devDependencies__types_prosemirror_view": "^1.23.1", - "npm_config_progress": "true", - "npm_config_global": "", - "npm_config_before": "", - "npm_package_dependencies_xoauth2": "^1.2.0", - "npm_package_dependencies_standard_http_error": "^2.0.1", - "npm_package_dependencies_react_loader_spinner": "^5.3.4", - "npm_package_dependencies_http_browserify": "^1.7.0", - "npm_package_dependencies__types_d3_selection": "^2.0.1", - "npm_package_dependencies__hig_flyout": "^1.3.1", - "npm_package_devDependencies_fork_ts_checker_webpack_plugin": "^1.6.0", - "npm_package_scripts_build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 webpack --env production", - "npm_package_scripts_start": "cross-env NODE_OPTIONS=--max_old_space_size=4096 ts-node-dev --debug --transpile-only -- src/server/index.ts", - "npm_config_searchstaleness": "900", - "npm_config_optional": "true", - "npm_config_ham_it_up": "", - "npm_package_dependencies_sharp": "^0.23.4", - "npm_package_dependencies_rc_switch": "^1.9.2", - "npm_package_dependencies_googlephotos": "^0.2.5", - "npm_package_dependencies_exifr": "^7.1.3", - "npm_package_dependencies__types_google_maps": "^3.2.3", - "npm_package_dependencies__types_bezier_js": "^4.1.0", - "npm_package_dependencies__ffmpeg_core": "0.10.0", - "npm_package_devDependencies_ts_loader": "^5.3.3", - "npm_package_devDependencies__types_bcrypt_nodejs": "0.0.30", - "XPC_FLAGS": "0x0", - "npm_config_save_prod": "", - "npm_config_force": "", - "npm_config_bin_links": "true", - "npm_package_devDependencies__types_youtube": "0.0.39", - "npm_config_searchopts": "", - "npm_package_dependencies_react_beautiful_dnd": "^13.1.0", - "npm_package_dependencies_jszip": "^3.7.1", - "npm_package_dependencies_csv_stringify": "^6.3.0", - "npm_package_devDependencies__types_react_icons": "^3.0.0", - "npm_config_node_gyp": "/Users/sarah/.nvm/versions/node/v12.16.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", - "npm_config_depth": "Infinity", - "npm_package_dependencies_google_maps_react": "^2.0.6", - "npm_package_dependencies_express_session": "^1.17.2", - "npm_package_devDependencies_eslint_plugin_node": "^11.1.0", - "npm_package_devDependencies_eslint_config_prettier": "^8.5.0", - "npm_package_main": "index.js", - "npm_config_sso_poll_frequency": "500", - "npm_config_rebuild_bundle": "true", - "npm_package_dependencies_chart_js": "^3.8.0", - "npm_package_dependencies__emotion_react": "^11.11.0", - "npm_package_devDependencies__types_prosemirror_menu": "^1.0.6", - "npm_package_devDependencies__types_prosemirror_keymap": "^1.0.4", - "npm_package_devDependencies__types_pdfjs_dist": "^2.10.378", - "npm_package_devDependencies__types_exif": "^0.6.3", - "npm_package_version": "1.0.0", - "_CE_M": "", - "XPC_SERVICE_NAME": "0", - "npm_config_unicode": "true", - "npm_package_dependencies_typescript_language_server": "^0.4.0", - "npm_package_dependencies_prosemirror_model": "^1.18.1", - "npm_package_dependencies__ffmpeg_ffmpeg": "0.10.0", - "SHLVL": "2", - "HOME": "/Users/sarah", - "npm_config_fetch_retry_maxtimeout": "60000", - "npm_package_dependencies_request_promise": "^4.2.6", - "npm_package_dependencies_react_markdown": "^8.0.3", - "npm_package_dependencies__hig_theme_context": "^2.1.3", - "npm_package_devDependencies__types_react_autosuggest": "^9.3.14", - "npm_package_devDependencies__types_mongoose": "^5.11.97", - "npm_package_devDependencies__types_d3": "^7.4.0", - "npm_package_devDependencies__types_animejs": "^2.0.2", - "npm_package_scripts_test": "mocha -r ts-node/register test/**/*.ts", - "npm_config_tag_version_prefix": "v", - "npm_config_strict_ssl": "true", - "npm_config_sso_type": "oauth", - "npm_config_scripts_prepend_node_path": "warn-only", - "npm_config_save_prefix": "^", - "npm_config_loglevel": "notice", - "npm_config_ca": "", - "npm_package_dependencies_three": "^0.127.0", - "npm_package_dependencies_openai": "^3.2.1", - "npm_package_dependencies_mobx_react": "^5.4.4", - "npm_package_dependencies_google_translate_api_browser": "^3.0.1", - "npm_package_dependencies_cookie_parser": "^1.4.6", - "npm_package_dependencies_adm_zip": "^0.4.16", - "npm_package_devDependencies_eslint_config_node": "^4.1.0", - "npm_config_save_exact": "", - "npm_config_group": "20", - "npm_config_fetch_retry_factor": "10", - "npm_config_dev": "", - "npm_package_devDependencies_webpack_hot_middleware": "^2.25.1", - "npm_package_devDependencies_cross_env": "^5.2.1", - "npm_config_version": "", - "npm_config_prefer_offline": "", - "npm_config_cache_lock_stale": "60000", - "npm_package_devDependencies__types_prosemirror_state": "^1.2.8", - "npm_package_devDependencies__types_body_parser": "^1.19.2", - "npm_config_otp": "", - "npm_config_cache_min": "10", - "npm_package_dependencies_react_color": "^2.19.3", - "npm_package_dependencies_d3": "^7.6.1", - "npm_package_devDependencies_ts_node": "^10.9.1", - "npm_package_devDependencies__types_react_grid_layout": "^1.3.2", - "npm_config_searchexclude": "", - "npm_config_cache": "/Users/sarah/.npm", - "npm_package_dependencies_tough_cookie": "^4.0.0", - "npm_package_dependencies_googleapis": "^40.0.0", - "npm_package_devDependencies__types_valid_url": "^1.0.3", - "npm_package_devDependencies__types_passport": "^1.0.9", - "npm_package_devDependencies__types_adm_zip": "^0.4.34", - "CONDA_PYTHON_EXE": "/Users/sarah/miniconda3/bin/python", - "LOGNAME": "sarah", - "npm_lifecycle_script": "cross-env NODE_OPTIONS=--max_old_space_size=4096 ts-node-dev --debug --transpile-only -- src/server/index.ts", - "npm_config_color": "true", - "npm_package_dependencies_solr_node": "^1.2.1", - "npm_package_dependencies_react_transition_group": "^4.4.2", - "npm_package_dependencies_iink_js": "^1.5.4", - "npm_package_dependencies_html_webpack_plugin": "^5.5.0", - "npm_config_proxy": "", - "npm_config_package_lock": "true", - "npm_package_dependencies_prosemirror_state": "^1.4.1", - "npm_package_dependencies_nodemon": "^1.19.4", - "npm_package_dependencies_function_plot": "^1.22.8", - "npm_package_dependencies_equation_editor_react": "github:bobzel/equation-editor-react#useLocally", - "npm_package_devDependencies__types_socket_io_parser": "^3.0.0", - "CLASSPATH": "/Users/sarah/Downloads/cs15/*:.", - "npm_config_package_lock_only": "", - "npm_config_fund": "true", - "npm_package_dependencies_react": "^18.2.0", - "npm_package_dependencies_bingmaps_react": "^1.2.10", - "npm_package_devDependencies_scss_loader": "0.0.1", - "npm_package_devDependencies__types_cookie_session": "^2.0.44", - "npm_config_save_optional": "", - "npm_package_dependencies_textarea_caret": "^3.1.0", - "npm_package_dependencies_react_measure": "^2.5.2", - "npm_package_dependencies_exif": "^0.6.0", - "NVM_BIN": "/Users/sarah/.nvm/versions/node/v12.16.0/bin", - "CONDA_DEFAULT_ENV": "base", - "npm_config_ignore_scripts": "", - "npm_config_user_agent": "npm/6.14.7 node/v12.16.0 darwin x64", - "npm_package_dependencies_react_resizable": "^1.11.1", - "npm_package_dependencies_prosemirror_commands": "^1.2.1", - "npm_package_dependencies_memorystream": "^0.3.1", - "npm_package_dependencies_formidable": "1.2.1", - "npm_package_devDependencies__types_uuid": "^3.4.10", - "npm_config_cache_lock_wait": "10000", - "npm_package_dependencies_socket_io_client": "^2.5.0", - "npm_package_dependencies_recharts": "^2.1.12", - "npm_package_dependencies_react_chartjs_2": "^4.3.0", - "npm_package_dependencies_fluent_ffmpeg": "^2.1.2", - "npm_package_dependencies__types_cors": "^2.8.12", - "npm_package_devDependencies__types_node": "^10.17.60", - "npm_package_devDependencies__types_file_saver": "^2.0.5", - "npm_config_production": "", - "npm_package_dependencies_jsonschema": "^1.4.0", - "npm_package_dependencies_ffmpeg": "0.0.4", - "npm_package_dependencies_cookie_session": "^2.0.0", - "npm_package_dependencies_color": "^3.2.1", - "npm_package_devDependencies__types_webpack": "^4.41.32", - "npm_package_devDependencies__types_request_promise": "^4.1.48", - "npm_package_devDependencies__types_prosemirror_schema_list": "^1.0.3", - "npm_config_send_metrics": "", - "npm_config_save_bundle": "", - "npm_package_dependencies_web_request": "^1.0.7", - "npm_package_dependencies_react_datepicker": "^3.8.0", - "npm_package_dependencies_express": "^4.17.3", - "npm_package_dependencies_D": "^1.0.0", - "npm_package_dependencies__types_formidable": "1.0.31", - "npm_package_devDependencies__types_rc_switch": "^1.9.2", - "npm_package_devDependencies__types_prosemirror_dev_tools": "^2.1.0", - "npm_package_devDependencies__types_jquery": "^3.5.14", - "npm_config_umask": "0022", - "npm_config_node_options": "", - "npm_config_init_version": "1.0.0", - "npm_package_dependencies_https": "^1.0.0", - "npm_package_dependencies_array_batcher": "^1.2.3", - "npm_package_dependencies__fortawesome_free_regular_svg_icons": "^6.3.0", - "npm_package_devDependencies__types_shelljs": "^0.8.11", - "npm_package_devDependencies__types_libxmljs": "^0.18.7", - "npm_package_devDependencies__types_express_validator": "^3.0.0", - "npm_package_devDependencies__types_bluebird": "^3.5.36", - "npm_config_init_author_name": "", - "npm_config_git": "git", - "npm_config_scope": "", - "npm_package_dependencies_react_select": "^3.2.0", - "npm_package_dependencies_pdf_parse": "^1.1.1", - "npm_package_dependencies_colors": "^1.4.0", - "npm_package_dependencies_archiver": "^3.1.1", - "npm_package_devDependencies_css_loader": "^2.1.1", - "npm_package_devDependencies__types_socket_io_client": "^1.4.36", - "SECURITYSESSIONID": "186a6", - "npm_config_unsafe_perm": "true", - "npm_config_tmp": "/var/folders/yk/p_39q8jn673c5p8_66mcxm7r0000gn/T", - "npm_config_onload_script": "", - "npm_package_dependencies_serializr": "^1.5.4", - "npm_package_dependencies_fit_curve": "^0.1.7", - "npm_package_dependencies__webscopeio_react_textarea_autocomplete": "^4.9.1", - "npm_package_dependencies__types_three": "^0.126.2", - "npm_package_devDependencies_ts_node_dev": "^2.0.0", - "npm_node_execpath": "/Users/sarah/.nvm/versions/node/v12.16.0/bin/node", - "npm_config_prefix": "/Users/sarah/.nvm/versions/node/v12.16.0", - "npm_config_link": "", - "npm_config_format_package_lock": "true", - "npm_package_dependencies_passport": "^0.4.0", - "npm_package_devDependencies_eslint_plugin_react": "^7.30.1", - "npm_package_devDependencies__types_react_table": "^6.8.9", - "npm_package_devDependencies__types_react_reconciler": "^0.26.4", - "NODE_OPTIONS": "--max_old_space_size=4096", - "TS_NODE_DEV": "true", - "_CLIENT_OPENAI_KEY": "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", - "VIPSHOME": "/usr/local/Cellar/vips/8.8.1", - "TYPESCRIPT_PATH": "/Users/sarah/Desktop/dash/Dash-Web/node_modules/typescript/lib/typescript.js", - "TSCONFIG": "/Users/sarah/Desktop/dash/Dash-Web/tsconfig.json", - "COMPILER_OPTIONS": "{}", - "TSLINT": "true", - "CONTEXT": "/Users/sarah/Desktop/dash/Dash-Web", - "TSLINTAUTOFIX": "false", - "ESLINT": "false", - "ESLINT_OPTIONS": "{}", - "WATCH": "", - "WORK_DIVISION": "1", - "MEMORY_LIMIT": "2048", - "CHECK_SYNTACTIC_ERRORS": "false", - "USE_INCREMENTAL_API": "true", - "VUE": "false" - }, - "userLimits": { - "core_file_size_blocks": { - "soft": 0, - "hard": "unlimited" - }, - "data_seg_size_kbytes": { - "soft": "unlimited", - "hard": "unlimited" - }, - "file_size_blocks": { - "soft": "unlimited", - "hard": "unlimited" - }, - "max_locked_memory_bytes": { - "soft": "unlimited", - "hard": "unlimited" - }, - "max_memory_size_kbytes": { - "soft": "unlimited", - "hard": "unlimited" - }, - "open_files": { - "soft": 1048575, - "hard": "unlimited" - }, - "stack_size_bytes": { - "soft": 8388608, - "hard": 67104768 - }, - "cpu_time_seconds": { - "soft": "unlimited", - "hard": "unlimited" - }, - "max_user_processes": { - "soft": 2784, - "hard": 4176 - }, - "virtual_memory_kbytes": { - "soft": "unlimited", - "hard": "unlimited" - } - }, - "sharedObjects": [ - "/Users/sarah/.nvm/versions/node/v12.16.0/bin/node", - "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation", - "/usr/lib/libobjc.A.dylib", - "/System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal", - "/usr/lib/liboah.dylib", - "/usr/lib/libfakelink.dylib", - "/usr/lib/libicucore.A.dylib", - "/usr/lib/libSystem.B.dylib", - "/System/Library/PrivateFrameworks/SoftLinking.framework/Versions/A/SoftLinking", - "/usr/lib/libc++abi.dylib", - "/usr/lib/libc++.1.dylib", - "/usr/lib/system/libcache.dylib", - "/usr/lib/system/libcommonCrypto.dylib", - "/usr/lib/system/libcompiler_rt.dylib", - "/usr/lib/system/libcopyfile.dylib", - "/usr/lib/system/libcorecrypto.dylib", - "/usr/lib/system/libdispatch.dylib", - "/usr/lib/system/libdyld.dylib", - "/usr/lib/system/libkeymgr.dylib", - "/usr/lib/system/libmacho.dylib", - "/usr/lib/system/libquarantine.dylib", - "/usr/lib/system/libremovefile.dylib", - "/usr/lib/system/libsystem_asl.dylib", - "/usr/lib/system/libsystem_blocks.dylib", - "/usr/lib/system/libsystem_c.dylib", - "/usr/lib/system/libsystem_collections.dylib", - "/usr/lib/system/libsystem_configuration.dylib", - "/usr/lib/system/libsystem_containermanager.dylib", - "/usr/lib/system/libsystem_coreservices.dylib", - "/usr/lib/system/libsystem_darwin.dylib", - "/usr/lib/system/libsystem_dnssd.dylib", - "/usr/lib/system/libsystem_featureflags.dylib", - "/usr/lib/system/libsystem_info.dylib", - "/usr/lib/system/libsystem_m.dylib", - "/usr/lib/system/libsystem_malloc.dylib", - "/usr/lib/system/libsystem_networkextension.dylib", - "/usr/lib/system/libsystem_notify.dylib", - "/usr/lib/system/libsystem_sandbox.dylib", - "/usr/lib/system/libsystem_secinit.dylib", - "/usr/lib/system/libsystem_kernel.dylib", - "/usr/lib/system/libsystem_platform.dylib", - "/usr/lib/system/libsystem_pthread.dylib", - "/usr/lib/system/libsystem_symptoms.dylib", - "/usr/lib/system/libsystem_trace.dylib", - "/usr/lib/system/libunwind.dylib", - "/usr/lib/system/libxpc.dylib", - "/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit", - "/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices", - "/usr/lib/libDiagnosticMessagesClient.dylib", - "/usr/lib/libenergytrace.dylib", - "/usr/lib/libbsm.0.dylib", - "/usr/lib/libz.1.dylib", - "/usr/lib/system/libkxld.dylib", - "/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork", - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents", - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore", - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata", - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices", - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit", - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE", - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices", - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices", - "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList", - "/System/Library/Frameworks/Security.framework/Versions/A/Security", - "/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration", - "/usr/lib/libapple_nghttp2.dylib", - "/usr/lib/libcompression.dylib", - "/usr/lib/libnetwork.dylib", - "/usr/lib/libsqlite3.dylib", - "/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation", - "/System/Library/Frameworks/Network.framework/Versions/A/Network", - "/usr/lib/libCoreEntitlements.dylib", - "/System/Library/PrivateFrameworks/MessageSecurity.framework/Versions/A/MessageSecurity", - "/System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer", - "/usr/lib/libMobileGestalt.dylib", - "/System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression", - "/usr/lib/libcoretls.dylib", - "/usr/lib/libcoretls_cfhelpers.dylib", - "/usr/lib/libpam.2.dylib", - "/usr/lib/libxar.1.dylib", - "/System/Library/PrivateFrameworks/CoreAutoLayout.framework/Versions/A/CoreAutoLayout", - "/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration", - "/usr/lib/libarchive.2.dylib", - "/usr/lib/libxml2.2.dylib", - "/usr/lib/liblangid.dylib", - "/System/Library/Frameworks/Combine.framework/Versions/A/Combine", - "/usr/lib/swift/libswiftCore.dylib", - "/usr/lib/swift/libswiftCoreFoundation.dylib", - "/usr/lib/swift/libswiftDarwin.dylib", - "/usr/lib/swift/libswiftDispatch.dylib", - "/usr/lib/swift/libswiftIOKit.dylib", - "/usr/lib/swift/libswiftObjectiveC.dylib", - "/usr/lib/swift/libswiftXPC.dylib", - "/usr/lib/swift/libswift_Concurrency.dylib", - "/usr/lib/swift/libswift_StringProcessing.dylib", - "/usr/lib/swift/libswiftos.dylib", - "/System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo", - "/System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/Versions/A/IOMobileFramebuffer", - "/System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface", - "/usr/lib/libpcap.A.dylib", - "/usr/lib/libdns_services.dylib", - "/usr/lib/liblzma.5.dylib", - "/usr/lib/libbz2.1.0.dylib", - "/usr/lib/libiconv.2.dylib", - "/usr/lib/libcharset.1.dylib", - "/usr/lib/swift/libswift_RegexParser.dylib", - "/usr/lib/libheimdal-asn1.dylib", - "/usr/lib/libCheckFix.dylib", - "/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC", - "/System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP", - "/System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate", - "/usr/lib/libmecab.dylib", - "/usr/lib/libCRFSuite.dylib", - "/usr/lib/libgermantok.dylib", - "/usr/lib/libThaiTokenizer.dylib", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib", - "/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib", - "/System/Library/PrivateFrameworks/MIL.framework/Versions/A/MIL", - "/System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory", - "/System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory", - "/System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS", - "/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation", - "/usr/lib/libutil.dylib", - "/System/Library/PrivateFrameworks/InstalledContentLibrary.framework/Versions/A/InstalledContentLibrary", - "/System/Library/PrivateFrameworks/CoreServicesStore.framework/Versions/A/CoreServicesStore", - "/usr/lib/libapp_launch_measurement.dylib", - "/System/Library/PrivateFrameworks/AppleMobileFileIntegrity.framework/Versions/A/AppleMobileFileIntegrity", - "/usr/lib/libmis.dylib", - "/System/Library/PrivateFrameworks/MobileSystemServices.framework/Versions/A/MobileSystemServices", - "/System/Library/PrivateFrameworks/ConfigProfileHelper.framework/Versions/A/ConfigProfileHelper", - "/System/Library/PrivateFrameworks/CoreAnalytics.framework/Versions/A/CoreAnalytics", - "/System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce", - "/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling", - "/usr/lib/libxslt.1.dylib", - "/usr/lib/libcmph.dylib", - "/System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji", - "/System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData", - "/System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon", - "/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement", - "/usr/lib/libTLE.dylib", - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices", - "/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics", - "/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText", - "/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO", - "/System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync", - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS", - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices", - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore", - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD", - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy", - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis", - "/System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight", - "/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib", - "/System/Library/PrivateFrameworks/RunningBoardServices.framework/Versions/A/RunningBoardServices", - "/System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/Versions/A/IOSurfaceAccelerator", - "/System/Library/PrivateFrameworks/WatchdogClient.framework/Versions/A/WatchdogClient", - "/System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay", - "/System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia", - "/System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator", - "/System/Library/Frameworks/Metal.framework/Versions/A/Metal", - "/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo", - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders", - "/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport", - "/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore", - "/System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox", - "/System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard", - "/System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG", - "/usr/lib/libexpat.1.dylib", - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib", - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib", - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib", - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib", - "/usr/lib/libate.dylib", - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib", - "/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib", - "/System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler", - "/System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment", - "/System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay", - "/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/31001/Libraries/libllvm-flatbuffers.dylib", - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib", - "/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/31001/Libraries/libGPUCompilerUtils.dylib", - "/System/Library/PrivateFrameworks/CMCaptureCore.framework/Versions/A/CMCaptureCore", - "/usr/lib/libspindump.dylib", - "/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio", - "/System/Library/Frameworks/ExtensionFoundation.framework/Versions/A/ExtensionFoundation", - "/System/Library/PrivateFrameworks/CoreTime.framework/Versions/A/CoreTime", - "/System/Library/PrivateFrameworks/AppServerSupport.framework/Versions/A/AppServerSupport", - "/System/Library/PrivateFrameworks/perfdata.framework/Versions/A/perfdata", - "/System/Library/PrivateFrameworks/AudioToolboxCore.framework/Versions/A/AudioToolboxCore", - "/System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk", - "/usr/lib/libAudioStatistics.dylib", - "/System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy", - "/usr/lib/libSMC.dylib", - "/System/Library/Frameworks/CoreMIDI.framework/Versions/A/CoreMIDI", - "/usr/lib/libAudioToolboxUtility.dylib", - "/System/Library/PrivateFrameworks/OSAServicesClient.framework/Versions/A/OSAServicesClient", - "/usr/lib/libperfcheck.dylib", - "/System/Library/PrivateFrameworks/PlugInKit.framework/Versions/A/PlugInKit", - "/System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices", - "/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL", - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib", - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib", - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib", - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib", - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib", - "/usr/lib/libRosetta.dylib", - "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib", - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSCore.framework/Versions/A/MPSCore", - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSImage.framework/Versions/A/MPSImage", - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork", - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix", - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector", - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNDArray.framework/Versions/A/MPSNDArray", - "/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSFunctions.framework/Versions/A/MPSFunctions", - "/System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools", - "/System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary", - "/usr/lib/libIOReport.dylib", - "/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage", - "/System/Library/PrivateFrameworks/PhotosensitivityProcessing.framework/Versions/A/PhotosensitivityProcessing", - "/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL", - "/System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer", - "/System/Library/PrivateFrameworks/FontServices.framework/Versions/A/FontServices", - "/System/Library/Frameworks/UniformTypeIdentifiers.framework/Versions/A/UniformTypeIdentifiers", - "/System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG", - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib", - "/System/Library/PrivateFrameworks/FontServices.framework/libhvf.dylib", - "/System/Library/PrivateFrameworks/FontServices.framework/libXTFontStaticRegistryData.dylib", - "/usr/lib/swift/libswiftMetal.dylib", - "/usr/lib/swift/libswiftsimd.dylib", - "/System/Library/PrivateFrameworks/VideoToolboxParavirtualizationSupport.framework/Versions/A/VideoToolboxParavirtualizationSupport", - "/System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA", - "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATSUI.framework/Versions/A/ATSUI", - "/usr/lib/libcups.2.dylib", - "/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos", - "/System/Library/Frameworks/GSS.framework/Versions/A/GSS", - "/usr/lib/libresolv.9.dylib", - "/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal", - "/System/Library/Frameworks/Kerberos.framework/Versions/A/Libraries/libHeimdalProxy.dylib", - "/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth", - "/System/Library/Frameworks/AVFAudio.framework/Versions/A/AVFAudio", - "/System/Library/PrivateFrameworks/AXCoreUtilities.framework/Versions/A/AXCoreUtilities", - "/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox", - "/System/Library/PrivateFrameworks/AudioSession.framework/Versions/A/AudioSession", - "/System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth", - "/System/Library/PrivateFrameworks/MediaExperience.framework/Versions/A/MediaExperience", - "/System/Library/PrivateFrameworks/AudioSession.framework/libSessionUtility.dylib", - "/System/Library/PrivateFrameworks/AudioResourceArbitration.framework/Versions/A/AudioResourceArbitration", - "/System/Library/PrivateFrameworks/PowerLog.framework/Versions/A/PowerLog", - "/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData", - "/System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth", - "/System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit", - "/System/Library/PrivateFrameworks/CoreUtils.framework/Versions/A/CoreUtils", - "/System/Library/PrivateFrameworks/CoreUtilsExtras.framework/Versions/A/CoreUtilsExtras", - "/System/Library/PrivateFrameworks/IO80211.framework/Versions/A/IO80211", - "/System/Library/PrivateFrameworks/MobileKeyBag.framework/Versions/A/MobileKeyBag", - "/Users/sarah/Desktop/dash/Dash-Web/node_modules/fsevents/build/Release/fse.node" - ] -}
\ No newline at end of file diff --git a/src/client/documents/DocumentTypes.ts b/src/client/documents/DocumentTypes.ts index 4e3496608..b4ad9c17d 100644 --- a/src/client/documents/DocumentTypes.ts +++ b/src/client/documents/DocumentTypes.ts @@ -33,7 +33,6 @@ export enum DocumentType { PRES = 'presentation', PRESELEMENT = 'preselement', COMPARISON = 'comparison', - GROUP = 'group', PUSHPIN = 'pushpin', MAPROUTE = 'maproute', CALENDAR = 'calendar', diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index cf397e85a..ddb6f65b6 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -246,8 +246,8 @@ export class DocumentOptions { _nativeWidth?: NUMt = new NumInfo('native width of document contents (e.g., the pixel width of an image)', false); _nativeHeight?: NUMt = new NumInfo('native height of document contents (e.g., the pixel height of an image)', false); - 'acl-Guest'?: STRt = new StrInfo("permissions granted to users logged in as 'guest' (either view, or private)"); // public permissions - '_acl-Guest'?: string; // public permissions + acl_Guest?: STRt = new StrInfo("permissions granted to users logged in as 'guest' (either view, or private)"); // public permissions + _acl_Guest?: string; // public permissions type?: DTYPEt = new DTypeInfo('type of document', true); type_collection?: COLLt = new CTypeInfo('how collection is rendered'); // sub type of a collection _type_collection?: COLLt = new CTypeInfo('how collection is rendered'); // sub type of a collection @@ -535,6 +535,7 @@ export namespace Docs { { layout: { view: FormattedTextBox, dataField: 'text' }, options: { + acl: '', _height: 35, _xMargin: 10, _yMargin: 10, @@ -550,21 +551,21 @@ export namespace Docs { DocumentType.SEARCH, { layout: { view: SearchBox, dataField: defaultDataKey }, - options: { _width: 400 }, + options: { acl: '', _width: 400 }, }, ], [ DocumentType.IMG, { layout: { view: ImageBox, dataField: defaultDataKey }, - options: { freeform: '', systemIcon: 'BsFileEarmarkImageFill' }, + options: { acl: '', freeform: '', systemIcon: 'BsFileEarmarkImageFill' }, }, ], [ DocumentType.WEB, { layout: { view: WebBox, dataField: defaultDataKey }, - options: { _height: 300, _layout_fitWidth: true, layout_nativeDimEditable: true, layout_reflowVertical: true, waitForDoubleClickToClick: 'always', systemIcon: 'BsGlobe' }, + options: { acl: '', _height: 300, _layout_fitWidth: true, layout_nativeDimEditable: true, layout_reflowVertical: true, waitForDoubleClickToClick: 'always', systemIcon: 'BsGlobe' }, }, ], [ @@ -572,6 +573,7 @@ export namespace Docs { { layout: { view: CollectionView, dataField: defaultDataKey }, options: { + acl: '', _layout_fitWidth: true, freeform: '', _freeform_panX: 0, @@ -588,42 +590,42 @@ export namespace Docs { DocumentType.KVP, { layout: { view: KeyValueBox, dataField: defaultDataKey }, - options: { _layout_fitWidth: true, _height: 150 }, + options: { acl: '', _layout_fitWidth: true, _height: 150 }, }, ], [ DocumentType.VID, { layout: { view: VideoBox, dataField: defaultDataKey }, - options: { _layout_currentTimecode: 0, systemIcon: 'BsFileEarmarkPlayFill' }, + options: { acl: '', _layout_currentTimecode: 0, systemIcon: 'BsFileEarmarkPlayFill' }, }, ], [ DocumentType.AUDIO, { layout: { view: AudioBox, dataField: defaultDataKey }, - options: { _height: 100, layout_fitWidth: true, layout_reflowHorizontal: true, layout_reflowVertical: true, layout_nativeDimEditable: true, systemIcon: 'BsFillVolumeUpFill' }, + options: { acl: '', _height: 100, layout_fitWidth: true, layout_reflowHorizontal: true, layout_reflowVertical: true, layout_nativeDimEditable: true, systemIcon: 'BsFillVolumeUpFill' }, }, ], [ DocumentType.REC, { layout: { view: VideoBox, dataField: defaultDataKey }, - options: { _height: 100, backgroundColor: 'pink', systemIcon: 'BsFillMicFill' }, + options: { acl: '', _height: 100, backgroundColor: 'pink', systemIcon: 'BsFillMicFill' }, }, ], [ DocumentType.PDF, { layout: { view: PDFBox, dataField: defaultDataKey }, - options: { _layout_curPage: 1, _layout_fitWidth: true, layout_nativeDimEditable: true, layout_reflowVertical: true, systemIcon: 'BsFileEarmarkPdfFill' }, + options: { acl: '', _layout_curPage: 1, _layout_fitWidth: true, layout_nativeDimEditable: true, layout_reflowVertical: true, systemIcon: 'BsFileEarmarkPdfFill' }, }, ], [ DocumentType.MAP, { layout: { view: MapBox, dataField: defaultDataKey }, - options: { map: '', _height: 600, _width: 800, layout_reflowHorizontal: true, layout_reflowVertical: true, layout_nativeDimEditable: true, systemIcon: 'BsFillPinMapFill' }, + options: { acl: '', map: '', _height: 600, _width: 800, layout_reflowHorizontal: true, layout_reflowVertical: true, layout_nativeDimEditable: true, systemIcon: 'BsFillPinMapFill' }, }, ], [ @@ -631,6 +633,7 @@ export namespace Docs { { layout: { view: LinkBox, dataField: 'link' }, options: { + acl: '', childDontRegisterViews: true, layout_hideLinkAnchors: true, _height: 1, @@ -647,88 +650,77 @@ export namespace Docs { { data: new List<Doc>(), layout: { view: EmptyBox, dataField: defaultDataKey }, - options: { title: 'Global Script Database' }, + options: { acl: '', title: 'Global Script Database' }, }, ], [ DocumentType.SCRIPTING, { layout: { view: ScriptingBox, dataField: defaultDataKey }, - options: { systemIcon: 'BsFileEarmarkCodeFill' }, + options: { acl: '', systemIcon: 'BsFileEarmarkCodeFill' }, }, ], [ DocumentType.LABEL, { layout: { view: LabelBox, dataField: 'title' }, - options: { _singleLine: true, layout_nativeDimEditable: true, layout_reflowHorizontal: true, layout_reflowVertical: true }, + options: { acl: '', _singleLine: true, layout_nativeDimEditable: true, layout_reflowHorizontal: true, layout_reflowVertical: true }, }, ], [ DocumentType.EQUATION, { layout: { view: EquationBox, dataField: 'text' }, - options: { - fontSize: '14px', - layout_reflowHorizontal: true, - layout_reflowVertical: true, - layout_nativeDimEditable: true, - layout_hideDecorationTitle: true, - systemIcon: 'BsCalculatorFill', - }, // systemIcon: 'BsSuperscript' + BsSubscript + options: { acl: '', fontSize: '14px', layout_reflowHorizontal: true, layout_reflowVertical: true, layout_nativeDimEditable: true, layout_hideDecorationTitle: true, systemIcon: 'BsCalculatorFill' }, // systemIcon: 'BsSuperscript' + BsSubscript }, ], [ DocumentType.FUNCPLOT, { layout: { view: FunctionPlotBox, dataField: defaultDataKey }, - options: { - layout_reflowHorizontal: true, - layout_reflowVertical: true, - layout_nativeDimEditable: true, - }, + options: { acl: '', layout_reflowHorizontal: true, layout_reflowVertical: true, layout_nativeDimEditable: true }, }, ], [ DocumentType.BUTTON, { layout: { view: LabelBox, dataField: 'title' }, - options: { layout_nativeDimEditable: true, layout_reflowHorizontal: true, layout_reflowVertical: true }, + options: { acl: '', layout_nativeDimEditable: true, layout_reflowHorizontal: true, layout_reflowVertical: true }, }, ], [ DocumentType.PRES, { layout: { view: PresBox, dataField: defaultDataKey }, - options: { defaultDoubleClick: 'ignore', hideClickBehaviors: true, layout_hideLinkAnchors: true }, + options: { acl: '', defaultDoubleClick: 'ignore', hideClickBehaviors: true, layout_hideLinkAnchors: true }, }, ], [ DocumentType.FONTICON, { layout: { view: FontIconBox, dataField: 'icon' }, - options: { defaultDoubleClick: 'ignore', waitForDoubleClickToClick: 'never', layout_hideContextMenu: true, layout_hideLinkButton: true, _width: 40, _height: 40 }, + options: { acl: '', defaultDoubleClick: 'ignore', waitForDoubleClickToClick: 'never', layout_hideContextMenu: true, layout_hideLinkButton: true, _width: 40, _height: 40 }, }, ], [ DocumentType.WEBCAM, { layout: { view: RecordingBox, dataField: defaultDataKey }, - options: { systemIcon: 'BsFillCameraVideoFill' }, + options: { acl: '', systemIcon: 'BsFillCameraVideoFill' }, }, ], [ DocumentType.PRESELEMENT, { layout: { view: PresElementBox, dataField: defaultDataKey }, - options: { title: 'pres element template', _layout_fitWidth: true, _xMargin: 0, isTemplateDoc: true, isTemplateForField: 'data' }, + options: { acl: '', title: 'pres element template', _layout_fitWidth: true, _xMargin: 0, isTemplateDoc: true, isTemplateForField: 'data' }, }, ], [ DocumentType.CONFIG, { layout: { view: CollectionView, dataField: defaultDataKey }, - options: { config: '', layout_hideLinkButton: true, layout_unrendered: true }, + options: { acl: '', config: '', layout_hideLinkButton: true, layout_unrendered: true }, }, ], [ @@ -737,6 +729,7 @@ export namespace Docs { // NOTE: this is unused!! ink fields are filled in directly within the InkDocument() method layout: { view: InkingStroke, dataField: 'stroke' }, options: { + acl: '', systemIcon: 'BsFillPencilFill', // layout_nativeDimEditable: true, layout_reflowVertical: true, @@ -751,7 +744,7 @@ export namespace Docs { DocumentType.SCREENSHOT, { layout: { view: ScreenshotBox, dataField: defaultDataKey }, - options: { layout_nativeDimEditable: true, systemIcon: 'BsCameraFill' }, + options: { acl: '', layout_nativeDimEditable: true, systemIcon: 'BsCameraFill' }, }, ], [ @@ -759,35 +752,48 @@ export namespace Docs { { data: '', layout: { view: ComparisonBox, dataField: defaultDataKey }, - options: { backgroundColor: 'gray', dropAction: dropActionType.move, waitForDoubleClickToClick: 'always', layout_reflowHorizontal: true, layout_reflowVertical: true, layout_nativeDimEditable: true, systemIcon: 'BsLayoutSplit' }, + options: { + acl: '', + backgroundColor: 'gray', + dropAction: dropActionType.move, + waitForDoubleClickToClick: 'always', + layout_reflowHorizontal: true, + layout_reflowVertical: true, + layout_nativeDimEditable: true, + systemIcon: 'BsLayoutSplit', + }, }, ], [ DocumentType.GROUPDB, { layout: { view: EmptyBox, dataField: defaultDataKey }, - options: { title: 'Global Group Database' }, - }, - ], - [ - DocumentType.GROUP, - { - layout: { view: EmptyBox, dataField: defaultDataKey }, - options: {}, + options: { acl: '', title: 'Global Group Database' }, }, ], [ DocumentType.DATAVIZ, { layout: { view: DataVizBox, dataField: defaultDataKey }, - options: { dataViz_title: '', dataViz_line: '', dataViz_pie: '', dataViz_histogram: '', dataViz: 'table', _layout_fitWidth: true, layout_reflowHorizontal: true, layout_reflowVertical: true, layout_nativeDimEditable: true }, + options: { + acl: '', + dataViz_title: '', + dataViz_line: '', + dataViz_pie: '', + dataViz_histogram: '', + dataViz: 'table', + _layout_fitWidth: true, + layout_reflowHorizontal: true, + layout_reflowVertical: true, + layout_nativeDimEditable: true, + }, }, ], [ DocumentType.LOADING, { layout: { view: LoadingBox, dataField: '' }, - options: { _layout_fitWidth: true, _fitHeight: true, layout_nativeDimEditable: true }, + options: { acl: '', _layout_fitWidth: true, _fitHeight: true, layout_nativeDimEditable: true }, }, ], [ @@ -795,41 +801,28 @@ export namespace Docs { { data: '', layout: { view: PhysicsSimulationBox, dataField: defaultDataKey, _width: 1000, _height: 800 }, - options: { - _height: 100, - mass1: '', - mass2: '', - layout_nativeDimEditable: true, - position: '', - acceleration: '', - pendulum: '', - spring: '', - wedge: '', - simulation: '', - review: '', - systemIcon: 'BsShareFill', - }, + options: { acl: '', _height: 100, mass1: '', mass2: '', layout_nativeDimEditable: true, position: '', acceleration: '', pendulum: '', spring: '', wedge: '', simulation: '', review: '', systemIcon: 'BsShareFill' }, }, ], [ DocumentType.PUSHPIN, { layout: { view: MapPushpinBox, dataField: defaultDataKey }, - options: {}, + options: { acl: '' }, }, ], [ DocumentType.MAPROUTE, { layout: { view: CollectionView, dataField: defaultDataKey }, - options: {}, + options: { acl: '' }, }, ], [ DocumentType.CALENDAR, { layout: { view: CalendarBox, dataField: defaultDataKey }, - options: {}, + options: { acl: '' }, }, ], ]); @@ -926,7 +919,7 @@ export namespace Docs { type, isBaseProto: true, _width: 300, - 'acl-Guest': SharingPermissions.View, + acl_Guest: SharingPermissions.View, ...(template.options || {}), layout: layout.view?.LayoutString(layout.dataField), data: template.data, @@ -971,8 +964,8 @@ export namespace Docs { const viewKeys = ['x', 'y', 'isSystem']; // keys that should be addded to the view document even though they don't begin with an "_" const { omit: dataProps, extract: viewProps } = OmitKeys(options, viewKeys, '^_'); - // dataProps['acl-Override'] = SharingPermissions.Unset; - dataProps['acl-Guest'] = options['acl-Guest'] ?? (Doc.defaultAclPrivate ? SharingPermissions.None : SharingPermissions.View); + // dataProps.acl_Override = SharingPermissions.Unset; + dataProps.acl_Guest = options.acl_Guest ?? (Doc.defaultAclPrivate ? SharingPermissions.None : SharingPermissions.View); dataProps.isSystem = viewProps.isSystem; dataProps.isDataDoc = true; dataProps.author = ClientUtils.CurrentUserEmail(); @@ -996,7 +989,7 @@ export namespace Docs { if (!noView) { const viewFirstProps: { [id: string]: any } = { author: ClientUtils.CurrentUserEmail() }; - viewFirstProps['acl-Guest'] = options['_acl-Guest'] ?? (Doc.defaultAclPrivate ? SharingPermissions.None : SharingPermissions.View); + viewFirstProps.acl_Guest = options._acl_Guest ?? (Doc.defaultAclPrivate ? SharingPermissions.None : SharingPermissions.View); let viewDoc: Doc; // determines whether viewDoc should be created using placeholder Doc or default if (placeholderDoc) { @@ -1004,7 +997,7 @@ export namespace Docs { placeholderDoc._width = options._width !== undefined ? Number(options._width) : undefined; viewDoc = Doc.assign(placeholderDoc, viewFirstProps, true, true); Array.from(Object.keys(placeholderDoc)) - .filter(key => key.startsWith('acl')) + .filter(key => key.startsWith('acl_')) .forEach(key => { dataDoc[key] = viewDoc[key] = placeholderDoc[key]; }); @@ -1157,8 +1150,8 @@ export namespace Docs { I.rotation = 0; I.defaultDoubleClick = 'ignore'; I.author_date = new DateField(); - I['acl-Guest'] = Doc.defaultAclPrivate ? SharingPermissions.None : SharingPermissions.View; - // I['acl-Override'] = SharingPermissions.Unset; + I.acl_Guest = Doc.defaultAclPrivate ? SharingPermissions.None : SharingPermissions.View; + // I.acl_Override = SharingPermissions.Unset; I[Initializing] = false; return ink; @@ -1335,7 +1328,7 @@ export namespace Docs { const doc = DockDocument( configs.map(c => c.doc), JSON.stringify(layoutConfig), - ClientUtils.CurrentUserEmail() === 'guest' ? options : { 'acl-Guest': SharingPermissions.View, ...options }, + ClientUtils.CurrentUserEmail() === 'guest' ? options : { acl_Guest: SharingPermissions.View, ...options }, id ); configs.forEach(c => { @@ -1539,8 +1532,8 @@ export namespace DocUtils { source, target, { - 'acl-Guest': SharingPermissions.Augment, - '_acl-Guest': SharingPermissions.Augment, + acl_Guest: SharingPermissions.Augment, + _acl_Guest: SharingPermissions.Augment, title: ComputedField.MakeFunction('generateLinkTitle(this)') as any, link_anchor_1_useSmallAnchor: source.useSmallAnchor ? true : undefined, link_anchor_2_useSmallAnchor: target.useSmallAnchor ? true : undefined, diff --git a/src/client/util/CurrentUserUtils.ts b/src/client/util/CurrentUserUtils.ts index eae5b2d6a..00279e7e1 100644 --- a/src/client/util/CurrentUserUtils.ts +++ b/src/client/util/CurrentUserUtils.ts @@ -836,7 +836,7 @@ pie title Minerals in my tap water linkDocs.author = ClientUtils.CurrentUserEmail(); linkDocs.isSystem = true; linkDocs.data = new List<Doc>([]); - linkDocs["acl-Guest"] = SharingPermissions.Augment; + linkDocs.acl_Guest = SharingPermissions.Augment; doc.myLinkDatabase = new PrefetchProxy(linkDocs); } } @@ -857,7 +857,7 @@ pie title Minerals in my tap water // childContextMenuScripts: new List<ScriptField>([addToDashboards!,]), // childContextMenuLabels: new List<string>(["Add to Dashboards",]), // childContextMenuIcons: new List<string>(["user-plus",]), - "acl-Guest": SharingPermissions.Augment, "_acl-Guest": SharingPermissions.Augment, + acl_Guest: SharingPermissions.Augment, _acl_Guest: SharingPermissions.Augment, childDragAction: dropActionType.embed, isSystem: true, childContentPointerEvents: "none", childLimitHeight: 0, _yMargin: 0, _gridGap: 15, childDontRegisterViews:true, // NOTE: treeView_HideTitle & _layout_showTitle is for a TreeView's editable title, _layout_showTitle is for DocumentViews title bar _layout_showTitle: "title", treeView_HideTitle: true, ignoreClick: true, _lockedPosition: true, layout_boxShadow: "0 0", _chromeHidden: true, dontRegisterView: true, diff --git a/src/client/util/ServerStats.tsx b/src/client/util/ServerStats.tsx index 891561245..57363663d 100644 --- a/src/client/util/ServerStats.tsx +++ b/src/client/util/ServerStats.tsx @@ -14,7 +14,7 @@ export class ServerStats extends React.Component<{}> { @observable _stats: { [key: string]: any } | undefined = undefined; // private get linkVisible() { - // return this.targetDoc ? this.targetDoc["acl-" + PublicKey] !== SharingPermissions.None : false; + // return this.targetDoc ? this.targetDoc['acl_' + PublicKey] !== SharingPermissions.None : false; // } constructor(props: {}) { diff --git a/src/client/util/SharingManager.tsx b/src/client/util/SharingManager.tsx index 5b4ac5aff..19a7948e6 100644 --- a/src/client/util/SharingManager.tsx +++ b/src/client/util/SharingManager.tsx @@ -90,7 +90,7 @@ export class SharingManager extends React.Component<{}> { @observable private myDocAcls: boolean = false; // whether the My Docs checkbox is selected or not // private get linkVisible() { - // return this.targetDoc ? this.targetDoc["acl-" + PublicKey] !== SharingPermissions.None : false; + // return this.targetDoc ? this.targetDoc['acl_' + PublicKey] !== SharingPermissions.None : false; // } constructor(props: {}) { @@ -172,10 +172,10 @@ export class SharingManager extends React.Component<{}> { // the list of users shared with const userListContents = users - // .filter(({ user }) => (docs.length > 1 ? commonKeys.includes(`acl-${normalizeEmail(user.email)}`) : docs[0]?.author !== user.email)) + // .filter(({ user }) => (docs.length > 1 ? commonKeys.includes(`acl_${normalizeEmail(user.email)}`) : docs[0]?.author !== user.email)) .filter(({ user }) => docs[0]?.author !== user.email) .map(({ user, linkDatabase, sharingDoc, userColor }) => { - const userKey = `acl-${normalizeEmail(user.email)}`; + const userKey = `acl_${normalizeEmail(user.email)}`; const uniform = docs.every(doc => doc?.[DocAcl]?.[userKey] === docs[0]?.[DocAcl]?.[userKey]); // const permissions = uniform ? StrCast(targetDoc?.[userKey]) : '-multiple-'; let permissions = targetDoc[DocAcl][userKey] ? HierarchyMapping.get(targetDoc[DocAcl][userKey])?.name : StrCast(targetDoc[userKey]); @@ -204,7 +204,7 @@ export class SharingManager extends React.Component<{}> { const sameAuthor = docs.every(doc => doc?.author === docs[0]?.author); // the owner of the doc and the current user are placed at the top of the user list. - const userKey = `acl-${normalizeEmail(ClientUtils.CurrentUserEmail())}`; + const userKey = `acl_${normalizeEmail(ClientUtils.CurrentUserEmail())}`; const curUserPermission = StrCast(targetDoc[userKey]); // const curUserPermission = HierarchyMapping.get(effectiveAcls[0])!.name userListContents.unshift( @@ -230,10 +230,10 @@ export class SharingManager extends React.Component<{}> { ); // the list of groups shared with - const groupListMap: (Doc | { title: string })[] = groups.filter(({ title }) => (docs.length > 1 ? commonKeys.includes(`acl-${normalizeEmail(StrCast(title))}`) : true)); + const groupListMap: (Doc | { title: string })[] = groups.filter(({ title }) => (docs.length > 1 ? commonKeys.includes(`acl_${normalizeEmail(StrCast(title))}`) : true)); groupListMap.unshift({ title: 'Guest' }); // , { title: "ALL" }); const groupListContents = groupListMap.map(group => { - const groupKey = `acl-${StrCast(group.title)}`; + const groupKey = `acl_${StrCast(group.title)}`; const uniform = docs.every(doc => doc?.[DocAcl]?.[groupKey] === docs[0]?.[DocAcl]?.[groupKey]); const permissions = uniform ? StrCast(targetDoc?.[groupKey]) : '-multiple-'; @@ -442,7 +442,7 @@ export class SharingManager extends React.Component<{}> { setInternalSharing = undoable((recipient: ValidatedUser, permission: string, targetDoc: Doc | undefined) => { const { user, sharingDoc } = recipient; const target = targetDoc || this.targetDoc!; - const acl = `acl-${normalizeEmail(user.email)}`; + const acl = `acl_${normalizeEmail(user.email)}`; const docs = SelectionManager.Views.length < 2 ? [target] : SelectionManager.Views.map(docView => docView.Document); docs.map(doc => (this.layoutDocAcls || doc.dockingConfig ? doc : Doc.GetProto(doc))).forEach(doc => { distributeAcls(acl, permission as SharingPermissions, doc, undefined, this.upgradeNested ? true : undefined); @@ -459,7 +459,7 @@ export class SharingManager extends React.Component<{}> { */ setInternalGroupSharing = undoable((group: Doc | { title: string }, permission: string, targetDoc?: Doc) => { const target = targetDoc || this.targetDoc!; - const acl = `acl-${normalizeEmail(StrCast(group.title))}`; + const acl = `acl_${normalizeEmail(StrCast(group.title))}`; const docs = SelectionManager.Views.length < 2 ? [target] : SelectionManager.Views.map(docView => docView.Document); docs.map(doc => (this.layoutDocAcls || doc.dockingConfig ? doc : Doc.GetProto(doc))).forEach(doc => { @@ -578,7 +578,7 @@ export class SharingManager extends React.Component<{}> { } else { docs.forEach(doc => { if (GetEffectiveAcl(doc) === AclAdmin) { - distributeAcls(`acl-${shareWith}`, permission, doc, undefined); + distributeAcls(`acl_${shareWith}`, permission, doc, undefined); } }); } @@ -618,7 +618,7 @@ export class SharingManager extends React.Component<{}> { removeGroup = (group: Doc) => { if (group.docsShared) { DocListCast(group.docsShared).forEach(doc => { - const acl = `acl-${StrCast(group.title)}`; + const acl = `acl_${StrCast(group.title)}`; distributeAcls(acl, SharingPermissions.None, doc); const members: string[] = JSON.parse(StrCast(group.members)); @@ -634,7 +634,7 @@ export class SharingManager extends React.Component<{}> { // if (!targetDoc) { // return; // } - // targetDoc["acl-" + PublicKey] = permission; + // targetDoc['acl_' + PublicKey] = permission; // }s /** diff --git a/src/client/views/DashboardView.tsx b/src/client/views/DashboardView.tsx index 25415a4f0..c4855d2e7 100644 --- a/src/client/views/DashboardView.tsx +++ b/src/client/views/DashboardView.tsx @@ -165,7 +165,7 @@ export class DashboardView extends ObservableReactComponent<{}> { : this.getDashboards(this.selectedDashboardGroup).map(dashboard => { const href = ImageCast(dashboard.thumb)?.url?.href; const shared = Object.keys(dashboard[DocAcl]) - .filter(key => key !== `acl-${normalizeEmail(ClientUtils.CurrentUserEmail())}` && !['acl-Me', 'acl-Guest'].includes(key)) + .filter(key => key !== `acl_${normalizeEmail(ClientUtils.CurrentUserEmail())}` && !['acl_Me', 'acl_Guest'].includes(key)) .some(key => dashboard[DocAcl][key] !== AclPrivate); return ( <div diff --git a/src/client/views/FilterPanel.tsx b/src/client/views/FilterPanel.tsx index 994107c01..ed9fc8dfb 100644 --- a/src/client/views/FilterPanel.tsx +++ b/src/client/views/FilterPanel.tsx @@ -222,7 +222,7 @@ export class FilterPanel extends ObservableReactComponent<filterProps> { <div className="filterBox-treeView"> <div className="filterBox-select"> <div style={{ width: '100%' }}> - <FieldsDropdown Document={this.Document} selectFunc={this.facetClick} showPlaceholder placeholder="add a filter" addedFields={['acl-Guest', LinkedTo]} /> + <FieldsDropdown Document={this.Document} selectFunc={this.facetClick} showPlaceholder placeholder="add a filter" addedFields={['acl_Guest', LinkedTo]} /> </div> {/* THE FOLLOWING CODE SHOULD BE DEVELOPER FOR BOOLEAN EXPRESSION (AND / OR) */} {/* <div className="filterBox-select-bool"> diff --git a/src/client/views/PropertiesView.tsx b/src/client/views/PropertiesView.tsx index 5e1c80f0c..f4ded8367 100644 --- a/src/client/views/PropertiesView.tsx +++ b/src/client/views/PropertiesView.tsx @@ -231,7 +231,7 @@ export class PropertiesView extends ObservableReactComponent<PropertiesViewProps @computed get noviceFields() { const noviceReqFields = ['author', 'author_date', 'tags', '_layout_curPage']; - return this.editableFields(key => key.indexOf('modificationDate') !== -1 || (key[0] === key[0].toUpperCase() && !key.startsWith('acl')), noviceReqFields); + return this.editableFields(key => key.indexOf('modificationDate') !== -1 || (key[0] === key[0].toUpperCase() && !key.startsWith('acl_')), noviceReqFields); } @undoBatch @@ -473,7 +473,7 @@ export class PropertiesView extends ObservableReactComponent<PropertiesViewProps SharingManager.Instance.users.forEach(eachUser => { let userOnDoc = true; if (seldoc) { - if (Doc.GetT(seldoc, 'acl-' + normalizeEmail(eachUser.user.email), 'string', true) === '' || Doc.GetT(seldoc, 'acl-' + normalizeEmail(eachUser.user.email), 'string', true) === undefined) { + if (Doc.GetT(seldoc, 'acl_' + normalizeEmail(eachUser.user.email), 'string', true) === '' || Doc.GetT(seldoc, 'acl_' + normalizeEmail(eachUser.user.email), 'string', true) === undefined) { userOnDoc = false; } } @@ -485,7 +485,7 @@ export class PropertiesView extends ObservableReactComponent<PropertiesViewProps // sorts and then adds each user to the table usersAdded.sort(this.sortUsers); usersAdded.forEach(userEmail => { - const userKey = `acl-${normalizeEmail(userEmail)}`; + const userKey = `acl_${normalizeEmail(userEmail)}`; const aclField = Doc.GetT(this.layoutDocAcls ? target : Doc.GetProto(target), userKey, 'string', true); const permission = StrCast(aclField); individualTableEntries.unshift(this.sharingItem(userEmail, showAdmin, permission!, false)); // adds each user @@ -494,7 +494,7 @@ export class PropertiesView extends ObservableReactComponent<PropertiesViewProps // adds current user let userEmail = ClientUtils.CurrentUserEmail(); if (userEmail === 'guest') userEmail = 'Guest'; - const userKey = `acl-${normalizeEmail(userEmail)}`; + const userKey = `acl_${normalizeEmail(userEmail)}`; if (!usersAdded.includes(userEmail) && userEmail !== 'Guest' && userEmail !== target.author) { let permission; if (this.layoutDocAcls) { @@ -514,7 +514,7 @@ export class PropertiesView extends ObservableReactComponent<PropertiesViewProps groupList.sort(this.sortGroups); groupList.forEach(group => { if (group.title !== 'Guest' && this.selectedDoc) { - const groupKey = 'acl-' + normalizeEmail(StrCast(group.title)); + const groupKey = 'acl_' + normalizeEmail(StrCast(group.title)); if (this.selectedDoc[groupKey] !== '' && this.selectedDoc[groupKey] !== undefined) { let permission; if (this.layoutDocAcls) { @@ -529,7 +529,7 @@ export class PropertiesView extends ObservableReactComponent<PropertiesViewProps }); // guest permission - const guestPermission = StrCast((this.layoutDocAcls ? target : Doc.GetProto(target))['acl-Guest']); + const guestPermission = StrCast((this.layoutDocAcls ? target : Doc.GetProto(target)).acl_Guest); return ( <div> @@ -1733,8 +1733,8 @@ export class PropertiesView extends ObservableReactComponent<PropertiesViewProps } if (this.isPres && PresBox.Instance) { const selectedItem: boolean = PresBox.Instance.selectedArray.size > 0; - const type = [DocumentType.AUDIO, DocumentType.VID].includes(DocCast(PresBox.Instance.activeItem?.annotationOn)?.type as any as DocumentType) - ? (DocCast(PresBox.Instance.activeItem?.annotationOn)?.type as any as DocumentType) + const type = [DocumentType.AUDIO, DocumentType.VID].find(dt => dt === DocCast(PresBox.Instance.activeItem?.annotationOn)?.type) + ? DocCast(PresBox.Instance.activeItem?.annotationOn)?.type : PresBox.targetRenderedDoc(PresBox.Instance.activeItem)?.type; return ( <div className="propertiesView" style={{ width: this._props.width }}> diff --git a/src/client/views/collections/CollectionCarouselView.tsx b/src/client/views/collections/CollectionCarouselView.tsx index 51352d3e2..fda320077 100644 --- a/src/client/views/collections/CollectionCarouselView.tsx +++ b/src/client/views/collections/CollectionCarouselView.tsx @@ -52,7 +52,7 @@ export class CollectionCarouselView extends CollectionSubView() { }; captionStyleProvider = (doc: Doc | undefined, captionProps: Opt<FieldViewProps>, property: string): any => { // first look for properties on the document in the carousel, then fallback to properties on the container - const childValue = doc?.['caption-' + property] ? this._props.styleProvider?.(doc, captionProps, property) : undefined; + const childValue = doc?.['caption_' + property] ? this._props.styleProvider?.(doc, captionProps, property) : undefined; return childValue ?? this._props.styleProvider?.(this.layoutDoc, captionProps, property); }; panelHeight = () => this._props.PanelHeight() - (StrCast(this.layoutDoc._layout_showCaption) ? 50 : 0); diff --git a/src/client/views/collections/CollectionMenu.tsx b/src/client/views/collections/CollectionMenu.tsx index 6dba9e155..f945a7aa4 100644 --- a/src/client/views/collections/CollectionMenu.tsx +++ b/src/client/views/collections/CollectionMenu.tsx @@ -53,7 +53,7 @@ export class CollectionMenu extends AntimodeMenu<CollectionMenuProps> { makeObservable(this); CollectionMenu.Instance = this; this._canFade = false; // don't let the inking menu fade away - this.Pinned = Cast(Doc.UserDoc()['menuCollections-pinned'], 'boolean', true); + this.Pinned = Cast(Doc.UserDoc().menuCollections_pinned, 'boolean', true); this.jumpTo(300, 300); } @@ -71,7 +71,7 @@ export class CollectionMenu extends AntimodeMenu<CollectionMenuProps> { @action toggleMenuPin = () => { - Doc.UserDoc()['menuCollections-pinned'] = this.Pinned = !this.Pinned; + Doc.UserDoc().menuCollections_pinned = this.Pinned = !this.Pinned; if (!this.Pinned && this._left < 0) { this.jumpTo(300, 300); } @@ -280,8 +280,8 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewMenu _saveFilterCommand = { params: ['target'], title: 'save filter', - script: `this.target._childFilters = compareLists(this['target-childFilters'],this.target._childFilters) ? undefined : copyField(this['target-childFilters']); - this.target._searchFilterDocs = compareLists(this['target-searchFilterDocs'],this.target._searchFilterDocs) ? undefined: copyField(this['target-searchFilterDocs']);`, + script: `this.target._childFilters = compareLists(this.target_childFilters,this.target._childFilters) ? undefined : copyField(this.target_childFilters); + this.target._searchFilterDocs = compareLists(this.target_searchFilterDocs,this.target._searchFilterDocs) ? undefined: copyField(this.target_searchFilterDocs);`, immediate: undoBatch(() => { this.target._childFilters = undefined; this.target._searchFilterDocs = undefined; @@ -289,8 +289,8 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewMenu initialize: (button: Doc) => { const activeDash = Doc.ActiveDashboard; if (activeDash) { - button['target-childFilters'] = (Doc.MySearcher._childFilters || activeDash._childFilters) instanceof ObjectField ? ObjectField.MakeCopy((Doc.MySearcher._childFilters || activeDash._childFilters) as any as ObjectField) : undefined; - button['target-searchFilterDocs'] = activeDash._searchFilterDocs instanceof ObjectField ? ObjectField.MakeCopy(activeDash._searchFilterDocs as any as ObjectField) : undefined; + button.target_childFilters = (Doc.MySearcher._childFilters || activeDash._childFilters) instanceof ObjectField ? ObjectField.MakeCopy((Doc.MySearcher._childFilters || activeDash._childFilters) as any as ObjectField) : undefined; + button.target_searchFilterDocs = activeDash._searchFilterDocs instanceof ObjectField ? ObjectField.MakeCopy(activeDash._searchFilterDocs as any as ObjectField) : undefined; } }, }; diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx index a0d84ab28..d6cbe0dab 100644 --- a/src/client/views/collections/CollectionView.tsx +++ b/src/client/views/collections/CollectionView.tsx @@ -70,7 +70,7 @@ export class CollectionView extends ViewBoxAnnotatableComponent<CollectionViewPr } get collectionViewType(): CollectionViewType | undefined { - const viewField = StrCast(this.layoutDoc._type_collection); + const viewField = StrCast(this.layoutDoc._type_collection) as any as CollectionViewType; if (CollectionView._safeMode) { switch (viewField) { case CollectionViewType.Freeform: @@ -79,7 +79,7 @@ export class CollectionView extends ViewBoxAnnotatableComponent<CollectionViewPr default: } // prettier-ignore } - return viewField as any as CollectionViewType; + return viewField; } screenToLocalTransform = () => (this._props.renderDepth ? this.ScreenToLocalBoxXf() : this.ScreenToLocalBoxXf().scale(this._props.PanelWidth() / this.bodyPanelWidth())); diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 986c1e357..c1a889539 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -1664,7 +1664,7 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection doc.x = scr?.[0]; doc.y = scr?.[1]; }); - this._props.addDocTab(childDocs as any as Doc, OpenWhere.inParentFromScreen); + this._props.addDocTab(childDocs, OpenWhere.inParentFromScreen); }; @undoBatch diff --git a/src/client/views/linking/LinkMenuItem.tsx b/src/client/views/linking/LinkMenuItem.tsx index 303ff4b98..278d30d6a 100644 --- a/src/client/views/linking/LinkMenuItem.tsx +++ b/src/client/views/linking/LinkMenuItem.tsx @@ -1,6 +1,5 @@ /* eslint-disable jsx-a11y/no-static-element-interactions */ /* eslint-disable jsx-a11y/click-events-have-key-events */ -import { IconProp } from '@fortawesome/fontawesome-svg-core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { Tooltip } from '@mui/material'; import { action, computed, makeObservable, observable } from 'mobx'; @@ -156,7 +155,7 @@ export class LinkMenuItem extends ObservableReactComponent<LinkMenuItemProps> { @observable _hover = false; docView = () => this._props.docView; render() { - const destinationIcon = Doc.toIcon(this._props.destinationDoc) as any as IconProp; + const destinationIcon = Doc.toIcon(this._props.destinationDoc); const title = StrCast(this._props.destinationDoc.title).length > 18 ? StrCast(this._props.destinationDoc.title).substr(0, 14) + '...' : this._props.destinationDoc.title; diff --git a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx index 6a86af6a7..7b1847ae4 100644 --- a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx +++ b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx @@ -160,7 +160,7 @@ export class CollectionFreeFormDocumentView extends DocComponent<CollectionFreeF const timecode = Math.round(time); Object.keys(vals).forEach(val => { const findexed = Cast(d[`${val}_indexed`], listSpec('string'), []).slice(); - findexed[timecode] = vals[val] as any as string; + findexed[timecode] = vals[val] || ''; d[`${val}_indexed`] = new List<string>(findexed); }); } @@ -169,7 +169,7 @@ export class CollectionFreeFormDocumentView extends DocComponent<CollectionFreeF const timecode = Math.round(time); Object.keys(vals).forEach(val => { const findexed = Cast(d[`${val}_indexed`], listSpec('number'), []).slice(); - findexed[timecode] = vals[val] as any as number; + findexed[timecode] = vals[val] || 0; d[`${val}_indexed`] = new List<number>(findexed); }); } diff --git a/src/client/views/nodes/ImageBox.tsx b/src/client/views/nodes/ImageBox.tsx index db28d0a48..6d3d4be06 100644 --- a/src/client/views/nodes/ImageBox.tsx +++ b/src/client/views/nodes/ImageBox.tsx @@ -6,11 +6,10 @@ import { observer } from 'mobx-react'; import { extname } from 'path'; import * as React from 'react'; import { ClientUtils, DashColor, returnEmptyString, returnFalse, returnOne, returnZero, setupMoveUpEvents } from '../../../ClientUtils'; -import { Doc, Opt } from '../../../fields/Doc'; +import { Doc, DocListCast, Opt } from '../../../fields/Doc'; import { DocData } from '../../../fields/DocSymbols'; import { Id } from '../../../fields/FieldSymbols'; import { InkTool } from '../../../fields/InkField'; -import { List } from '../../../fields/List'; import { ObjectField } from '../../../fields/ObjectField'; import { Cast, ImageCast, NumCast, StrCast } from '../../../fields/Types'; import { ImageField } from '../../../fields/URLField'; @@ -341,7 +340,7 @@ export class ImageBox extends ViewBoxAnnotatableComponent<FieldViewProps>() impl @computed get paths() { const field = Cast(this.dataDoc[this.fieldKey], ImageField, null); // retrieve the primary image URL that is being rendered from the data doc - const alts = this.dataDoc[this.fieldKey + '_alternates'] as any as List<Doc>; // retrieve alternate documents that may be rendered as alternate images + const alts = DocListCast(this.dataDoc[this.fieldKey + '_alternates']); // retrieve alternate documents that may be rendered as alternate images const defaultUrl = new URL(ClientUtils.prepend('/assets/unknown-file-icon-hi.png')); const altpaths = alts diff --git a/src/client/views/nodes/KeyValuePair.tsx b/src/client/views/nodes/KeyValuePair.tsx index f96dd2b76..a9aa017a1 100644 --- a/src/client/views/nodes/KeyValuePair.tsx +++ b/src/client/views/nodes/KeyValuePair.tsx @@ -101,7 +101,7 @@ export class KeyValuePair extends ObservableReactComponent<KeyValuePairProps> { </button> <input className="keyValuePair-td-key-check" type="checkbox" style={hover} onChange={this.handleCheck} ref={this.checkbox} /> <Tooltip title={Object.entries(new DocumentOptions()).find((pair: [string, FInfo]) => pair[0].replace(/^_/, '') === this._props.keyName)?.[1].description ?? ''}> - <div className="keyValuePair-keyField" style={{ marginLeft: 20 * (this._props.keyName.match(/_/g)?.length || 0), color: keyStyle }}> + <div className="keyValuePair-keyField" style={{ marginLeft: 20 * (this._props.keyName.replace(/__/g, '').match(/_/g)?.length || 0), color: keyStyle }}> {'('.repeat(parenCount)} {this._props.keyName} {')'.repeat(parenCount)} diff --git a/src/client/views/nodes/trails/PresBox.tsx b/src/client/views/nodes/trails/PresBox.tsx index ed9635bdd..4fe7ec993 100644 --- a/src/client/views/nodes/trails/PresBox.tsx +++ b/src/client/views/nodes/trails/PresBox.tsx @@ -1607,7 +1607,7 @@ export class PresBox extends ViewBoxBaseComponent<FieldViewProps>() { </div> </Tooltip> </div> - {[DocumentType.AUDIO, DocumentType.VID].includes(targetType as any as DocumentType) ? null : ( + {[DocumentType.AUDIO, DocumentType.VID].find(dt => dt === targetType) ? null : ( <> <div className="ribbon-doubleButton"> <div className="presBox-subheading">Slide Duration</div> diff --git a/src/fields/Doc.ts b/src/fields/Doc.ts index c9aaa5158..9083d6ca3 100644 --- a/src/fields/Doc.ts +++ b/src/fields/Doc.ts @@ -156,9 +156,9 @@ export const ReverseHierarchyMap: Map<string, { level: aclLevel; acl: symbol; im export function updateCachedAcls(doc: Doc) { if (doc) { const target = (doc as any)?.__fieldTuples ?? doc; - const permissions: { [key: string]: symbol } = !target.author || target.author === ClientUtils.CurrentUserEmail() ? { 'acl-Me': AclAdmin } : {}; + const permissions: { [key: string]: symbol } = !target.author || target.author === ClientUtils.CurrentUserEmail() ? { acl_Me: AclAdmin } : {}; Object.keys(target).forEach(key => { - key.startsWith('acl') && (permissions[key] = ReverseHierarchyMap.get(StrCast(target[key]))!.acl); + key.startsWith('acl_') && (permissions[key] = ReverseHierarchyMap.get(StrCast(target[key]))!.acl); }); if (Object.keys(permissions).length || doc[DocAcl]?.length) { runInAction(() => { @@ -382,7 +382,7 @@ export class Doc extends RefField { this[UpdatingFromServer] = true; this[fKey] = value; this[UpdatingFromServer] = false; - if (fKey.startsWith('acl')) { + if (fKey.startsWith('acl_')) { updateCachedAcls(this); } if (prev === AclPrivate && GetEffectiveAcl(this) !== AclPrivate) { @@ -390,7 +390,7 @@ export class Doc extends RefField { } }; const writeMode = DocServer.getFieldWriteMode(fKey); - if (fKey.startsWith('acl') || writeMode !== DocServer.WriteMode.Playground) { + if (fKey.startsWith('acl_') || writeMode !== DocServer.WriteMode.Playground) { delete this[CachedUpdates][fKey]; // eslint-disable-next-line no-await-in-loop await fn(); @@ -832,7 +832,7 @@ export namespace Doc { newLayoutDoc.rootDocument = targetDoc; newLayoutDoc.embedContainer = targetDoc; newLayoutDoc.resolvedDataDoc = dataDoc; - newLayoutDoc['acl-Guest'] = SharingPermissions.Edit; + newLayoutDoc.acl_Guest = SharingPermissions.Edit; if (dataDoc[templateField] === undefined && (templateLayoutDoc[templateField] as any)?.length) { dataDoc[templateField] = ObjectField.MakeCopy(templateLayoutDoc[templateField] as List<Doc>); // ComputedField.MakeFunction(`ObjectField.MakeCopy(templateLayoutDoc["${templateField}"])`, { templateLayoutDoc: Doc.name }, { templateLayoutDoc }); @@ -970,7 +970,7 @@ export namespace Doc { delegate.proto = doc; delegate.author = ClientUtils.CurrentUserEmail(); Object.keys(doc) - .filter(key => key.startsWith('acl')) + .filter(key => key.startsWith('acl_')) .forEach(key => { delegate[key] = doc[key]; }); diff --git a/src/fields/util.ts b/src/fields/util.ts index 72b0ef721..9361430cb 100644 --- a/src/fields/util.ts +++ b/src/fields/util.ts @@ -107,7 +107,7 @@ const _setterImpl = action((target: any, prop: string | symbol | number, valueIn if (value === undefined) (target as Doc|ObjectField)[FieldChanged]?.(undefined, { $unset: { ['fields.' + prop]: '' } }); else (target as Doc|ObjectField)[FieldChanged]?.(undefined, { $set: { ['fields.' + prop]: value instanceof ObjectField ? SerializationHelper.Serialize(value) :value}}); - if (prop === 'author' || prop.toString().startsWith('acl')) updateCachedAcls(target); + if (prop === 'author' || prop.toString().startsWith('acl_')) updateCachedAcls(target); } else { DocServer.registerDocWithCachedUpdate(receiver, prop as string, curValue); } @@ -184,7 +184,7 @@ export function SetCachedGroups(groups: string[]) { } function getEffectiveAcl(target: any, user?: string): symbol { const targetAcls = target[DocAcl]; - if (targetAcls?.['acl-Me'] === AclAdmin || GetCachedGroupByName('Admin')) return AclAdmin; + if (targetAcls?.acl_Me === AclAdmin || GetCachedGroupByName('Admin')) return AclAdmin; const userChecked = user || ClientUtils.CurrentUserEmail(); // if the current user is the author of the document / the current user is a member of the admin group if (targetAcls && Object.keys(targetAcls).length) { @@ -210,7 +210,7 @@ function getEffectiveAcl(target: any, user?: string): symbol { /** * Recursively distributes the access right for a user across the children of a document and its annotations. - * @param key the key storing the access right (e.g. acl-groupname) + * @param key the key storing the access right (e.g. acl_groupname) * @param acl the access right being stored (e.g. "Can Edit") * @param target the document on which this access right is being set * @param visited list of Doc's already distributed to. @@ -219,7 +219,7 @@ function getEffectiveAcl(target: any, user?: string): symbol { */ // eslint-disable-next-line default-param-last export function distributeAcls(key: string, acl: SharingPermissions, target: Doc, visited: Doc[] = [], allowUpgrade?: boolean, layoutOnly = false) { - const selfKey = `acl-${normalizeEmail(ClientUtils.CurrentUserEmail())}`; + const selfKey = `acl_${normalizeEmail(ClientUtils.CurrentUserEmail())}`; if (!target || visited.includes(target) || key === selfKey) return; visited.push(target); @@ -268,15 +268,15 @@ export function distributeAcls(key: string, acl: SharingPermissions, target: Doc * Copies parent's acl fields to the child */ export function inheritParentAcls(parent: Doc, child: Doc, layoutOnly: boolean) { - [...Object.keys(parent), ...(ClientUtils.CurrentUserEmail() !== parent.author ? ['acl-Owner'] : [])] - .filter(key => key.startsWith('acl')) + [...Object.keys(parent), ...(ClientUtils.CurrentUserEmail() !== parent.author ? ['acl_Owner'] : [])] + .filter(key => key.startsWith('acl_')) .forEach(key => { - // if the default acl mode is private, then don't inherit the acl-guest permission, but set it to private. - // const permission: string = key === 'acl-guest' && Doc.defaultAclPrivate ? AclPrivate : parent[key]; - const parAcl = ReverseHierarchyMap.get(StrCast(key === 'acl-Owner' ? (Doc.defaultAclPrivate ? SharingPermissions.None : SharingPermissions.Edit) : parent[key]))?.acl; + // if the default acl mode is private, then don't inherit the acl_guest permission, but set it to private. + // const permission: string = key === 'acl_Guest' && Doc.defaultAclPrivate ? AclPrivate : parent[key]; + const parAcl = ReverseHierarchyMap.get(StrCast(key === 'acl_Owner' ? (Doc.defaultAclPrivate ? SharingPermissions.None : SharingPermissions.Edit) : parent[key]))?.acl; if (parAcl) { const sharePermission = HierarchyMapping.get(parAcl)?.name; - sharePermission && distributeAcls(key === 'acl-Owner' ? `acl-${normalizeEmail(StrCast(parent.author))}` : key, sharePermission, child, undefined, false, layoutOnly); + sharePermission && distributeAcls(key === 'acl_Owner' ? `acl_${normalizeEmail(StrCast(parent.author))}` : key, sharePermission, child, undefined, false, layoutOnly); } }); } @@ -303,7 +303,7 @@ export function setter(target: any, inProp: string | symbol | number, value: any const effectiveAcl = inProp === 'constructor' || typeof inProp === 'symbol' ? AclAdmin : GetPropAcl(target, prop); if (effectiveAcl !== AclEdit && effectiveAcl !== AclAugment && effectiveAcl !== AclAdmin) return true; // if you're trying to change an acl but don't have Admin access / you're trying to change it to something that isn't an acceptable acl, you can't - if (typeof prop === 'string' && prop.startsWith('acl') && (effectiveAcl !== AclAdmin || ![...Object.values(SharingPermissions), undefined].includes(value))) return true; + if (typeof prop === 'string' && prop.startsWith('acl_') && (effectiveAcl !== AclAdmin || ![...Object.values(SharingPermissions), undefined].includes(value))) return true; if (typeof prop === 'string' && prop !== '__id' && prop !== '__fieldTuples' && prop.startsWith('_')) { if (!prop.startsWith('__')) prop = prop.substring(1); diff --git a/src/server/authentication/DashUserModel.ts b/src/server/authentication/DashUserModel.ts index a288bfeab..bfa6d7bdb 100644 --- a/src/server/authentication/DashUserModel.ts +++ b/src/server/authentication/DashUserModel.ts @@ -61,7 +61,7 @@ const userSchema = new mongoose.Schema( * Password hash middleware. */ userSchema.pre('save', function save(next) { - const user = this as any as DashUserModel; + const user = this; if (!user.isModified('password')) { return next(); } @@ -70,7 +70,7 @@ userSchema.pre('save', function save(next) { return next(err); } bcrypt.hash( - user.password, + user.password ?? '', salt, () => {}, (cryptErr: mongoose.Error, hash: string) => { diff --git a/src/server/authentication/Passport.ts b/src/server/authentication/Passport.ts index a5222e531..ca9e3058e 100644 --- a/src/server/authentication/Passport.ts +++ b/src/server/authentication/Passport.ts @@ -18,11 +18,11 @@ passport.deserializeUser<any, any>((id, done) => { passport.use( new LocalStrategy({ usernameField: 'email', passReqToCallback: true }, (req, email, password, done) => { User.findOne({ email: email.toLowerCase() }) - .then((user: any) => { + .then((user: DashUserModel) => { if (!user) { done(undefined, false, { message: 'Invalid email or password' }); // invalid email } else { - (user as any as DashUserModel).comparePassword(password, (error: Error, isMatch: boolean) => { + user.comparePassword(password, (error: Error, isMatch: boolean) => { if (error) return done(error); if (!isMatch) return done(undefined, false, { message: 'Invalid email or password' }); // invalid password // valid authentication HERE |