z
This commit is contained in:
parent
917fb469af
commit
f4b6af771c
10 changed files with 10257 additions and 515 deletions
1
.tokeignore
Normal file
1
.tokeignore
Normal file
|
@ -0,0 +1 @@
|
|||
package-lock.json
|
|
@ -4,6 +4,6 @@ export default class {
|
|||
constructor() {}
|
||||
|
||||
static registerHooks(ct: HookContext) {
|
||||
ct.addSensitivePattern(//);
|
||||
ct.addSensitivePattern(/ /);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
{}
|
465
deno.lock
465
deno.lock
|
@ -1,465 +0,0 @@
|
|||
{
|
||||
"version": "2",
|
||||
"remote": {},
|
||||
"npm": {
|
||||
"specifiers": {
|
||||
"@prisma/client@^4.11.0": "@prisma/client@4.11.0_prisma@4.11.0",
|
||||
"@types/express@^4.17": "@types/express@4.17.17",
|
||||
"express@4.18.2": "express@4.18.2",
|
||||
"prisma@^4.11.0": "prisma@4.11.0",
|
||||
"typescript@^5.0.2": "typescript@5.0.2",
|
||||
"vm2@^3.9.14": "vm2@3.9.14",
|
||||
"wasmoon@1.15.0": "wasmoon@1.15.0"
|
||||
},
|
||||
"packages": {
|
||||
"@prisma/client@4.11.0_prisma@4.11.0": {
|
||||
"integrity": "sha512-0INHYkQIqgAjrt7NzhYpeDQi8x3Nvylc2uDngKyFDDj1tTRQ4uV1HnVmd1sQEraeVAN63SOK0dgCKQHlvjL0KA==",
|
||||
"dependencies": {
|
||||
"@prisma/engines-version": "@prisma/engines-version@4.11.0-57.8fde8fef4033376662cad983758335009d522acb",
|
||||
"prisma": "prisma@4.11.0"
|
||||
}
|
||||
},
|
||||
"@prisma/engines-version@4.11.0-57.8fde8fef4033376662cad983758335009d522acb": {
|
||||
"integrity": "sha512-3Vd8Qq06d5xD8Ch5WauWcUUrsVPdMC6Ge8ILji8RFfyhUpqon6qSyGM0apvr1O8n8qH8cKkEFqRPsYjuz5r83g==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"@prisma/engines@4.11.0": {
|
||||
"integrity": "sha512-0AEBi2HXGV02cf6ASsBPhfsVIbVSDC9nbQed4iiY5eHttW9ZtMxHThuKZE1pnESbr8HRdgmFSa/Kn4OSNYuibg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"@types/body-parser@1.19.2": {
|
||||
"integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
|
||||
"dependencies": {
|
||||
"@types/connect": "@types/connect@3.4.35",
|
||||
"@types/node": "@types/node@18.15.5"
|
||||
}
|
||||
},
|
||||
"@types/connect@3.4.35": {
|
||||
"integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
|
||||
"dependencies": {
|
||||
"@types/node": "@types/node@18.15.5"
|
||||
}
|
||||
},
|
||||
"@types/emscripten@1.39.5": {
|
||||
"integrity": "sha512-DIOOg+POSrYl+OlNRHQuIEqCd8DCtynG57H862UCce16nXJX7J8eWxNGgOcf8Eyge8zXeSs27mz1UcFu8L/L7g==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"@types/express-serve-static-core@4.17.33": {
|
||||
"integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==",
|
||||
"dependencies": {
|
||||
"@types/node": "@types/node@18.15.5",
|
||||
"@types/qs": "@types/qs@6.9.7",
|
||||
"@types/range-parser": "@types/range-parser@1.2.4"
|
||||
}
|
||||
},
|
||||
"@types/express@4.17.17": {
|
||||
"integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
|
||||
"dependencies": {
|
||||
"@types/body-parser": "@types/body-parser@1.19.2",
|
||||
"@types/express-serve-static-core": "@types/express-serve-static-core@4.17.33",
|
||||
"@types/qs": "@types/qs@6.9.7",
|
||||
"@types/serve-static": "@types/serve-static@1.15.1"
|
||||
}
|
||||
},
|
||||
"@types/mime@3.0.1": {
|
||||
"integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"@types/node@18.15.5": {
|
||||
"integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"@types/qs@6.9.7": {
|
||||
"integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"@types/range-parser@1.2.4": {
|
||||
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"@types/serve-static@1.15.1": {
|
||||
"integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==",
|
||||
"dependencies": {
|
||||
"@types/mime": "@types/mime@3.0.1",
|
||||
"@types/node": "@types/node@18.15.5"
|
||||
}
|
||||
},
|
||||
"accepts@1.3.8": {
|
||||
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
|
||||
"dependencies": {
|
||||
"mime-types": "mime-types@2.1.35",
|
||||
"negotiator": "negotiator@0.6.3"
|
||||
}
|
||||
},
|
||||
"acorn-walk@8.2.0": {
|
||||
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"acorn@8.8.2": {
|
||||
"integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"array-flatten@1.1.1": {
|
||||
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"body-parser@1.20.1": {
|
||||
"integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
|
||||
"dependencies": {
|
||||
"bytes": "bytes@3.1.2",
|
||||
"content-type": "content-type@1.0.5",
|
||||
"debug": "debug@2.6.9",
|
||||
"depd": "depd@2.0.0",
|
||||
"destroy": "destroy@1.2.0",
|
||||
"http-errors": "http-errors@2.0.0",
|
||||
"iconv-lite": "iconv-lite@0.4.24",
|
||||
"on-finished": "on-finished@2.4.1",
|
||||
"qs": "qs@6.11.0",
|
||||
"raw-body": "raw-body@2.5.1",
|
||||
"type-is": "type-is@1.6.18",
|
||||
"unpipe": "unpipe@1.0.0"
|
||||
}
|
||||
},
|
||||
"bytes@3.1.2": {
|
||||
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"call-bind@1.0.2": {
|
||||
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
|
||||
"dependencies": {
|
||||
"function-bind": "function-bind@1.1.1",
|
||||
"get-intrinsic": "get-intrinsic@1.2.0"
|
||||
}
|
||||
},
|
||||
"content-disposition@0.5.4": {
|
||||
"integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
|
||||
"dependencies": {
|
||||
"safe-buffer": "safe-buffer@5.2.1"
|
||||
}
|
||||
},
|
||||
"content-type@1.0.5": {
|
||||
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"cookie-signature@1.0.6": {
|
||||
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"cookie@0.5.0": {
|
||||
"integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"debug@2.6.9": {
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dependencies": {
|
||||
"ms": "ms@2.0.0"
|
||||
}
|
||||
},
|
||||
"depd@2.0.0": {
|
||||
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"destroy@1.2.0": {
|
||||
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"ee-first@1.1.1": {
|
||||
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"encodeurl@1.0.2": {
|
||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"escape-html@1.0.3": {
|
||||
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"etag@1.8.1": {
|
||||
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"express@4.18.2": {
|
||||
"integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
|
||||
"dependencies": {
|
||||
"accepts": "accepts@1.3.8",
|
||||
"array-flatten": "array-flatten@1.1.1",
|
||||
"body-parser": "body-parser@1.20.1",
|
||||
"content-disposition": "content-disposition@0.5.4",
|
||||
"content-type": "content-type@1.0.5",
|
||||
"cookie": "cookie@0.5.0",
|
||||
"cookie-signature": "cookie-signature@1.0.6",
|
||||
"debug": "debug@2.6.9",
|
||||
"depd": "depd@2.0.0",
|
||||
"encodeurl": "encodeurl@1.0.2",
|
||||
"escape-html": "escape-html@1.0.3",
|
||||
"etag": "etag@1.8.1",
|
||||
"finalhandler": "finalhandler@1.2.0",
|
||||
"fresh": "fresh@0.5.2",
|
||||
"http-errors": "http-errors@2.0.0",
|
||||
"merge-descriptors": "merge-descriptors@1.0.1",
|
||||
"methods": "methods@1.1.2",
|
||||
"on-finished": "on-finished@2.4.1",
|
||||
"parseurl": "parseurl@1.3.3",
|
||||
"path-to-regexp": "path-to-regexp@0.1.7",
|
||||
"proxy-addr": "proxy-addr@2.0.7",
|
||||
"qs": "qs@6.11.0",
|
||||
"range-parser": "range-parser@1.2.1",
|
||||
"safe-buffer": "safe-buffer@5.2.1",
|
||||
"send": "send@0.18.0",
|
||||
"serve-static": "serve-static@1.15.0",
|
||||
"setprototypeof": "setprototypeof@1.2.0",
|
||||
"statuses": "statuses@2.0.1",
|
||||
"type-is": "type-is@1.6.18",
|
||||
"utils-merge": "utils-merge@1.0.1",
|
||||
"vary": "vary@1.1.2"
|
||||
}
|
||||
},
|
||||
"finalhandler@1.2.0": {
|
||||
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
|
||||
"dependencies": {
|
||||
"debug": "debug@2.6.9",
|
||||
"encodeurl": "encodeurl@1.0.2",
|
||||
"escape-html": "escape-html@1.0.3",
|
||||
"on-finished": "on-finished@2.4.1",
|
||||
"parseurl": "parseurl@1.3.3",
|
||||
"statuses": "statuses@2.0.1",
|
||||
"unpipe": "unpipe@1.0.0"
|
||||
}
|
||||
},
|
||||
"forwarded@0.2.0": {
|
||||
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"fresh@0.5.2": {
|
||||
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"function-bind@1.1.1": {
|
||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"get-intrinsic@1.2.0": {
|
||||
"integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
|
||||
"dependencies": {
|
||||
"function-bind": "function-bind@1.1.1",
|
||||
"has": "has@1.0.3",
|
||||
"has-symbols": "has-symbols@1.0.3"
|
||||
}
|
||||
},
|
||||
"has-symbols@1.0.3": {
|
||||
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"has@1.0.3": {
|
||||
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
||||
"dependencies": {
|
||||
"function-bind": "function-bind@1.1.1"
|
||||
}
|
||||
},
|
||||
"http-errors@2.0.0": {
|
||||
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
|
||||
"dependencies": {
|
||||
"depd": "depd@2.0.0",
|
||||
"inherits": "inherits@2.0.4",
|
||||
"setprototypeof": "setprototypeof@1.2.0",
|
||||
"statuses": "statuses@2.0.1",
|
||||
"toidentifier": "toidentifier@1.0.1"
|
||||
}
|
||||
},
|
||||
"iconv-lite@0.4.24": {
|
||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||
"dependencies": {
|
||||
"safer-buffer": "safer-buffer@2.1.2"
|
||||
}
|
||||
},
|
||||
"inherits@2.0.4": {
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"ipaddr.js@1.9.1": {
|
||||
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"media-typer@0.3.0": {
|
||||
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"merge-descriptors@1.0.1": {
|
||||
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"methods@1.1.2": {
|
||||
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"mime-db@1.52.0": {
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"mime-types@2.1.35": {
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"dependencies": {
|
||||
"mime-db": "mime-db@1.52.0"
|
||||
}
|
||||
},
|
||||
"mime@1.6.0": {
|
||||
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"ms@2.0.0": {
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"ms@2.1.3": {
|
||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"negotiator@0.6.3": {
|
||||
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"object-inspect@1.12.3": {
|
||||
"integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"on-finished@2.4.1": {
|
||||
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
|
||||
"dependencies": {
|
||||
"ee-first": "ee-first@1.1.1"
|
||||
}
|
||||
},
|
||||
"parseurl@1.3.3": {
|
||||
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"path-to-regexp@0.1.7": {
|
||||
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"prisma@4.11.0": {
|
||||
"integrity": "sha512-4zZmBXssPUEiX+GeL0MUq/Yyie4ltiKmGu7jCJFnYMamNrrulTBc+D+QwAQSJ01tyzeGHlD13kOnqPwRipnlNw==",
|
||||
"dependencies": {
|
||||
"@prisma/engines": "@prisma/engines@4.11.0"
|
||||
}
|
||||
},
|
||||
"proxy-addr@2.0.7": {
|
||||
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
|
||||
"dependencies": {
|
||||
"forwarded": "forwarded@0.2.0",
|
||||
"ipaddr.js": "ipaddr.js@1.9.1"
|
||||
}
|
||||
},
|
||||
"qs@6.11.0": {
|
||||
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
||||
"dependencies": {
|
||||
"side-channel": "side-channel@1.0.4"
|
||||
}
|
||||
},
|
||||
"range-parser@1.2.1": {
|
||||
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"raw-body@2.5.1": {
|
||||
"integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
|
||||
"dependencies": {
|
||||
"bytes": "bytes@3.1.2",
|
||||
"http-errors": "http-errors@2.0.0",
|
||||
"iconv-lite": "iconv-lite@0.4.24",
|
||||
"unpipe": "unpipe@1.0.0"
|
||||
}
|
||||
},
|
||||
"safe-buffer@5.2.1": {
|
||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"safer-buffer@2.1.2": {
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"send@0.18.0": {
|
||||
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
|
||||
"dependencies": {
|
||||
"debug": "debug@2.6.9",
|
||||
"depd": "depd@2.0.0",
|
||||
"destroy": "destroy@1.2.0",
|
||||
"encodeurl": "encodeurl@1.0.2",
|
||||
"escape-html": "escape-html@1.0.3",
|
||||
"etag": "etag@1.8.1",
|
||||
"fresh": "fresh@0.5.2",
|
||||
"http-errors": "http-errors@2.0.0",
|
||||
"mime": "mime@1.6.0",
|
||||
"ms": "ms@2.1.3",
|
||||
"on-finished": "on-finished@2.4.1",
|
||||
"range-parser": "range-parser@1.2.1",
|
||||
"statuses": "statuses@2.0.1"
|
||||
}
|
||||
},
|
||||
"serve-static@1.15.0": {
|
||||
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
|
||||
"dependencies": {
|
||||
"encodeurl": "encodeurl@1.0.2",
|
||||
"escape-html": "escape-html@1.0.3",
|
||||
"parseurl": "parseurl@1.3.3",
|
||||
"send": "send@0.18.0"
|
||||
}
|
||||
},
|
||||
"setprototypeof@1.2.0": {
|
||||
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"side-channel@1.0.4": {
|
||||
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
|
||||
"dependencies": {
|
||||
"call-bind": "call-bind@1.0.2",
|
||||
"get-intrinsic": "get-intrinsic@1.2.0",
|
||||
"object-inspect": "object-inspect@1.12.3"
|
||||
}
|
||||
},
|
||||
"statuses@2.0.1": {
|
||||
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"toidentifier@1.0.1": {
|
||||
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"type-is@1.6.18": {
|
||||
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
|
||||
"dependencies": {
|
||||
"media-typer": "media-typer@0.3.0",
|
||||
"mime-types": "mime-types@2.1.35"
|
||||
}
|
||||
},
|
||||
"typescript@5.0.2": {
|
||||
"integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"unpipe@1.0.0": {
|
||||
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"utils-merge@1.0.1": {
|
||||
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"vary@1.1.2": {
|
||||
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"vm2@3.9.14": {
|
||||
"integrity": "sha512-HgvPHYHeQy8+QhzlFryvSteA4uQLBCOub02mgqdR+0bN/akRZ48TGB1v0aCv7ksyc0HXx16AZtMHKS38alc6TA==",
|
||||
"dependencies": {
|
||||
"acorn": "acorn@8.8.2",
|
||||
"acorn-walk": "acorn-walk@8.2.0"
|
||||
}
|
||||
},
|
||||
"wasmoon@1.15.0": {
|
||||
"integrity": "sha512-QU33AnnMTgbcGOJLzcqM2UBcSksmLvwkvB/Bcgkf5hS+EFoHxB6nyiQiDG+ZnALN8mn/ezeeMSm6eY1zs0cKTg==",
|
||||
"dependencies": {
|
||||
"@types/emscripten": "@types/emscripten@1.39.5"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
74
design.md
74
design.md
|
@ -1,21 +1,21 @@
|
|||
- CLI API
|
||||
|
||||
|
||||
- `mznotes install` : Install a script into the database
|
||||
- `mznotes show` : Show the information about a particular node, by ID
|
||||
|
||||
- Database of nodes + code
|
||||
|
||||
|
||||
- Code
|
||||
|
||||
|
||||
- Code is all interface-based. Interface implementations give specific ways
|
||||
behaviors are implemented
|
||||
|
||||
|
||||
- Standard interfaces:
|
||||
|
||||
|
||||
- Indexed
|
||||
|
||||
|
||||
- Node definition
|
||||
|
||||
|
||||
```typescript
|
||||
type Node = {
|
||||
metadata: KVStore,
|
||||
|
@ -23,87 +23,85 @@
|
|||
edges: Set<(EdgeType, Edge)>,
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
- Within the metadata kv store, keys are namespaced, according to the
|
||||
application name. Application names must be registered ahead of time
|
||||
|
||||
|
||||
- Nodes implement interfaces, the code of which is fetched from the internet
|
||||
and validated
|
||||
|
||||
|
||||
- Nodes are namespaced, although namespacing isn't the primary hierarchy
|
||||
protocol.
|
||||
|
||||
|
||||
- This is needed because the database itself has a privileged namespace
|
||||
- The privileged namespace is for keeping track of database state, for
|
||||
example which scripts are trusted
|
||||
|
||||
|
||||
- Database service:
|
||||
|
||||
|
||||
- IFTTT Events
|
||||
|
||||
|
||||
- Local vs. distributed IFTTT events?
|
||||
- Local means that ur particular device is repsonsible for running it
|
||||
- Distributed means any device can consume the event???
|
||||
- is this even a good idea? Maybe just have one dedicated worker
|
||||
device. For example, may not want to run certain automation tasks
|
||||
on phone, while others may only be able to be run on phone
|
||||
|
||||
|
||||
- Cron tasks
|
||||
|
||||
|
||||
- Sync protocol:
|
||||
- After a modification, the modification gets written to a queue
|
||||
- CRDT?
|
||||
|
||||
- Other privileged concepts:
|
||||
|
||||
|
||||
- User: a pub/priv key pair
|
||||
|
||||
- Sample apps
|
||||
|
||||
|
||||
- Content / blob storage
|
||||
|
||||
|
||||
- Exposed interfaces
|
||||
|
||||
|
||||
- `Content`
|
||||
|
||||
- `upload() -> Writer`
|
||||
|
||||
- `get(node_id : NodeId) -> Reader`
|
||||
|
||||
- `Writer`
|
||||
|
||||
- `next_chunk(Vec<u8>)`
|
||||
|
||||
- `Reader`
|
||||
|
||||
- `next_chunk() -> Vec<u8>`
|
||||
|
||||
|
||||
- Personal journaling (like Logseq)
|
||||
|
||||
|
||||
- Weight / fitness tracking
|
||||
|
||||
|
||||
- Calendar app (store events)
|
||||
|
||||
|
||||
- Git app (store code)
|
||||
|
||||
|
||||
- File backup
|
||||
|
||||
|
||||
- Chat / Mail?
|
||||
|
||||
|
||||
- Photo viewer + indexing using ML models for face detection / keywords
|
||||
|
||||
|
||||
- Not sure yet:
|
||||
|
||||
|
||||
- Automatic sharing of database nodes? This seems like a bad idea for
|
||||
multiple reasons. Maybe better to just have a specific app for
|
||||
doing permission models
|
||||
|
||||
- Other concerns
|
||||
|
||||
|
||||
- Local protection using libsecret?
|
||||
|
||||
|
||||
- Migrations?
|
||||
|
||||
|
||||
- If an application needs to migrate its data format, should we formalize
|
||||
this?
|
||||
- Data migrations that don't need to create / delete nodes, only metadata
|
||||
|
||||
- Have the frontend also shipped with the backend?
|
||||
|
||||
- Subset of React components to typecheck against
|
||||
|
|
|
@ -12,4 +12,5 @@
|
|||
|
||||
# Core Library Developers
|
||||
|
||||
- [Notes](./lib/notes.md)
|
||||
- [Library API Reference](./lib/api_reference.md)
|
||||
|
|
10
docs/src/lib/notes.md
Normal file
10
docs/src/lib/notes.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Notes
|
||||
|
||||
### Pattern types
|
||||
|
||||
- Ensures
|
||||
- An "ensures" hook runs whenever a particular metadata key is created, or its
|
||||
value changed.
|
||||
|
||||
- Examples:
|
||||
-
|
10197
package-lock.json
generated
10197
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -13,12 +13,13 @@
|
|||
"devDependencies": {
|
||||
"@types/express": "^4.17.17",
|
||||
"json-schema-static-docs": "^0.23.0",
|
||||
"nativescript": "^8.5.1",
|
||||
"prisma": "^4.11.0",
|
||||
"ts-node": "^10.9.1",
|
||||
"typescript": "^5.0.2",
|
||||
"wetzel": "^0.2.3",
|
||||
"vite": "^4.2.1",
|
||||
"vite-plugin-solid": "^2.6.1"
|
||||
"vite-plugin-solid": "^2.6.1",
|
||||
"wetzel": "^0.2.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "^4.11.0",
|
||||
|
|
|
@ -13,22 +13,19 @@ model Node {
|
|||
label String?
|
||||
implements NodeImplements[]
|
||||
|
||||
fromNodes Graph[] @relation(name: "fromNode")
|
||||
toNodes Graph[] @relation(name: "toNode")
|
||||
fromNodes Edge[] @relation(name: "fromNode")
|
||||
toNodes Edge[] @relation(name: "toNode")
|
||||
|
||||
metadata NodeMeta[]
|
||||
}
|
||||
|
||||
model Edge {
|
||||
id String @id @default(uuid())
|
||||
}
|
||||
|
||||
model Interface {
|
||||
id String @id @default(uuid())
|
||||
implementors NodeImplements[]
|
||||
}
|
||||
|
||||
model Graph {
|
||||
model Edge {
|
||||
id String @id @default(uuid())
|
||||
label String?
|
||||
|
||||
fromId String
|
||||
|
@ -37,7 +34,7 @@ model Graph {
|
|||
toId String
|
||||
toNode Node @relation(name: "toNode", fields: [toId], references: [id])
|
||||
|
||||
@@id([fromId, toId])
|
||||
@@unique([fromId, toId])
|
||||
}
|
||||
|
||||
model NodeMeta {
|
||||
|
@ -80,6 +77,9 @@ model Patterns {
|
|||
id String @id @default(uuid())
|
||||
|
||||
pattern String
|
||||
|
||||
/// Pattern type, see docs for details
|
||||
type String
|
||||
|
||||
appId String
|
||||
app App @relation(fields: [appId], references: [id])
|
||||
|
|
Loading…
Reference in a new issue