@scrypted/server 0.7.91 → 0.7.93

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @scrypted/server might be problematic. Click here for more details.

Files changed (185) hide show
  1. package/package.json +1 -1
  2. package/src/services/addresses.ts +2 -0
  3. package/dist/asynciterable-utils.d.ts +0 -2
  4. package/dist/asynciterable-utils.js +0 -24
  5. package/dist/asynciterable-utils.js.map +0 -1
  6. package/dist/cert.d.ts +0 -6
  7. package/dist/cert.js +0 -75
  8. package/dist/cert.js.map +0 -1
  9. package/dist/collection.d.ts +0 -1
  10. package/dist/collection.js +0 -16
  11. package/dist/collection.js.map +0 -1
  12. package/dist/db-types.d.ts +0 -38
  13. package/dist/db-types.js +0 -45
  14. package/dist/db-types.js.map +0 -1
  15. package/dist/event-registry.d.ts +0 -19
  16. package/dist/event-registry.js +0 -92
  17. package/dist/event-registry.js.map +0 -1
  18. package/dist/http-interfaces.d.ts +0 -3
  19. package/dist/http-interfaces.js +0 -73
  20. package/dist/http-interfaces.js.map +0 -1
  21. package/dist/infer-defaults.d.ts +0 -11
  22. package/dist/infer-defaults.js +0 -119
  23. package/dist/infer-defaults.js.map +0 -1
  24. package/dist/io.d.ts +0 -22
  25. package/dist/io.js +0 -3
  26. package/dist/io.js.map +0 -1
  27. package/dist/level.d.ts +0 -110
  28. package/dist/level.js +0 -135
  29. package/dist/level.js.map +0 -1
  30. package/dist/listen-zero.d.ts +0 -13
  31. package/dist/listen-zero.js +0 -48
  32. package/dist/listen-zero.js.map +0 -1
  33. package/dist/logger.d.ts +0 -29
  34. package/dist/logger.js +0 -78
  35. package/dist/logger.js.map +0 -1
  36. package/dist/media-helpers.d.ts +0 -5
  37. package/dist/media-helpers.js +0 -89
  38. package/dist/media-helpers.js.map +0 -1
  39. package/dist/mixin/mixin-cycle.d.ts +0 -3
  40. package/dist/mixin/mixin-cycle.js +0 -32
  41. package/dist/mixin/mixin-cycle.js.map +0 -1
  42. package/dist/plugin/acl.d.ts +0 -16
  43. package/dist/plugin/acl.js +0 -83
  44. package/dist/plugin/acl.js.map +0 -1
  45. package/dist/plugin/descriptor.d.ts +0 -22
  46. package/dist/plugin/descriptor.js +0 -35
  47. package/dist/plugin/descriptor.js.map +0 -1
  48. package/dist/plugin/media.d.ts +0 -71
  49. package/dist/plugin/media.js +0 -420
  50. package/dist/plugin/media.js.map +0 -1
  51. package/dist/plugin/mediaobject.d.ts +0 -10
  52. package/dist/plugin/mediaobject.js +0 -26
  53. package/dist/plugin/mediaobject.js.map +0 -1
  54. package/dist/plugin/plugin-api.d.ts +0 -106
  55. package/dist/plugin/plugin-api.js +0 -120
  56. package/dist/plugin/plugin-api.js.map +0 -1
  57. package/dist/plugin/plugin-console.d.ts +0 -28
  58. package/dist/plugin/plugin-console.js +0 -291
  59. package/dist/plugin/plugin-console.js.map +0 -1
  60. package/dist/plugin/plugin-debug.d.ts +0 -4
  61. package/dist/plugin/plugin-debug.js +0 -3
  62. package/dist/plugin/plugin-debug.js.map +0 -1
  63. package/dist/plugin/plugin-device.d.ts +0 -54
  64. package/dist/plugin/plugin-device.js +0 -413
  65. package/dist/plugin/plugin-device.js.map +0 -1
  66. package/dist/plugin/plugin-error.d.ts +0 -2
  67. package/dist/plugin/plugin-error.js +0 -7
  68. package/dist/plugin/plugin-error.js.map +0 -1
  69. package/dist/plugin/plugin-host-api.d.ts +0 -43
  70. package/dist/plugin/plugin-host-api.js +0 -177
  71. package/dist/plugin/plugin-host-api.js.map +0 -1
  72. package/dist/plugin/plugin-host.d.ts +0 -45
  73. package/dist/plugin/plugin-host.js +0 -398
  74. package/dist/plugin/plugin-host.js.map +0 -1
  75. package/dist/plugin/plugin-http.d.ts +0 -18
  76. package/dist/plugin/plugin-http.js +0 -120
  77. package/dist/plugin/plugin-http.js.map +0 -1
  78. package/dist/plugin/plugin-lazy-remote.d.ts +0 -31
  79. package/dist/plugin/plugin-lazy-remote.js +0 -75
  80. package/dist/plugin/plugin-lazy-remote.js.map +0 -1
  81. package/dist/plugin/plugin-npm-dependencies.d.ts +0 -8
  82. package/dist/plugin/plugin-npm-dependencies.js +0 -103
  83. package/dist/plugin/plugin-npm-dependencies.js.map +0 -1
  84. package/dist/plugin/plugin-remote-stats.d.ts +0 -8
  85. package/dist/plugin/plugin-remote-stats.js +0 -30
  86. package/dist/plugin/plugin-remote-stats.js.map +0 -1
  87. package/dist/plugin/plugin-remote-websocket.d.ts +0 -29
  88. package/dist/plugin/plugin-remote-websocket.js +0 -152
  89. package/dist/plugin/plugin-remote-websocket.js.map +0 -1
  90. package/dist/plugin/plugin-remote-worker.d.ts +0 -5
  91. package/dist/plugin/plugin-remote-worker.js +0 -348
  92. package/dist/plugin/plugin-remote-worker.js.map +0 -1
  93. package/dist/plugin/plugin-remote.d.ts +0 -75
  94. package/dist/plugin/plugin-remote.js +0 -598
  95. package/dist/plugin/plugin-remote.js.map +0 -1
  96. package/dist/plugin/plugin-repl.d.ts +0 -2
  97. package/dist/plugin/plugin-repl.js +0 -74
  98. package/dist/plugin/plugin-repl.js.map +0 -1
  99. package/dist/plugin/plugin-state-check.d.ts +0 -1
  100. package/dist/plugin/plugin-state-check.js +0 -27
  101. package/dist/plugin/plugin-state-check.js.map +0 -1
  102. package/dist/plugin/plugin-volume.d.ts +0 -3
  103. package/dist/plugin/plugin-volume.js +0 -31
  104. package/dist/plugin/plugin-volume.js.map +0 -1
  105. package/dist/plugin/runtime/child-process-worker.d.ts +0 -20
  106. package/dist/plugin/runtime/child-process-worker.js +0 -42
  107. package/dist/plugin/runtime/child-process-worker.js.map +0 -1
  108. package/dist/plugin/runtime/node-fork-worker.d.ts +0 -9
  109. package/dist/plugin/runtime/node-fork-worker.js +0 -67
  110. package/dist/plugin/runtime/node-fork-worker.js.map +0 -1
  111. package/dist/plugin/runtime/node-thread-worker.d.ts +0 -20
  112. package/dist/plugin/runtime/node-thread-worker.js +0 -73
  113. package/dist/plugin/runtime/node-thread-worker.js.map +0 -1
  114. package/dist/plugin/runtime/python-worker.d.ts +0 -10
  115. package/dist/plugin/runtime/python-worker.js +0 -91
  116. package/dist/plugin/runtime/python-worker.js.map +0 -1
  117. package/dist/plugin/runtime/runtime-worker.d.ts +0 -26
  118. package/dist/plugin/runtime/runtime-worker.js +0 -3
  119. package/dist/plugin/runtime/runtime-worker.js.map +0 -1
  120. package/dist/plugin/socket-serializer.d.ts +0 -5
  121. package/dist/plugin/socket-serializer.js +0 -17
  122. package/dist/plugin/socket-serializer.js.map +0 -1
  123. package/dist/plugin/system.d.ts +0 -39
  124. package/dist/plugin/system.js +0 -216
  125. package/dist/plugin/system.js.map +0 -1
  126. package/dist/rpc-buffer-serializer.d.ts +0 -11
  127. package/dist/rpc-buffer-serializer.js +0 -30
  128. package/dist/rpc-buffer-serializer.js.map +0 -1
  129. package/dist/rpc-serializer.d.ts +0 -24
  130. package/dist/rpc-serializer.js +0 -144
  131. package/dist/rpc-serializer.js.map +0 -1
  132. package/dist/rpc.d.ts +0 -147
  133. package/dist/rpc.js +0 -689
  134. package/dist/rpc.js.map +0 -1
  135. package/dist/runtime.d.ts +0 -103
  136. package/dist/runtime.js +0 -815
  137. package/dist/runtime.js.map +0 -1
  138. package/dist/scrypted-main-exports.d.ts +0 -6
  139. package/dist/scrypted-main-exports.js +0 -57
  140. package/dist/scrypted-main-exports.js.map +0 -1
  141. package/dist/scrypted-main.d.ts +0 -1
  142. package/dist/scrypted-main.js +0 -8
  143. package/dist/scrypted-main.js.map +0 -1
  144. package/dist/scrypted-plugin-main.d.ts +0 -2
  145. package/dist/scrypted-plugin-main.js +0 -43
  146. package/dist/scrypted-plugin-main.js.map +0 -1
  147. package/dist/scrypted-server-main.d.ts +0 -6
  148. package/dist/scrypted-server-main.js +0 -559
  149. package/dist/scrypted-server-main.js.map +0 -1
  150. package/dist/server-settings.d.ts +0 -5
  151. package/dist/server-settings.js +0 -91
  152. package/dist/server-settings.js.map +0 -1
  153. package/dist/services/addresses.d.ts +0 -7
  154. package/dist/services/addresses.js +0 -41
  155. package/dist/services/addresses.js.map +0 -1
  156. package/dist/services/alerts.d.ts +0 -9
  157. package/dist/services/alerts.js +0 -27
  158. package/dist/services/alerts.js.map +0 -1
  159. package/dist/services/cors.d.ts +0 -18
  160. package/dist/services/cors.js +0 -18
  161. package/dist/services/cors.js.map +0 -1
  162. package/dist/services/info.d.ts +0 -5
  163. package/dist/services/info.js +0 -18
  164. package/dist/services/info.js.map +0 -1
  165. package/dist/services/plugin.d.ts +0 -46
  166. package/dist/services/plugin.js +0 -172
  167. package/dist/services/plugin.js.map +0 -1
  168. package/dist/services/service-control.d.ts +0 -8
  169. package/dist/services/service-control.js +0 -39
  170. package/dist/services/service-control.js.map +0 -1
  171. package/dist/services/users.d.ts +0 -19
  172. package/dist/services/users.js +0 -75
  173. package/dist/services/users.js.map +0 -1
  174. package/dist/sleep.d.ts +0 -1
  175. package/dist/sleep.js +0 -8
  176. package/dist/sleep.js.map +0 -1
  177. package/dist/state.d.ts +0 -39
  178. package/dist/state.js +0 -247
  179. package/dist/state.js.map +0 -1
  180. package/dist/threading.d.ts +0 -3
  181. package/dist/threading.js +0 -93
  182. package/dist/threading.js.map +0 -1
  183. package/dist/usertoken.d.ts +0 -11
  184. package/dist/usertoken.js +0 -52
  185. package/dist/usertoken.js.map +0 -1
@@ -1,91 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.getHostAddresses = exports.getIpAddress = exports.SCRYPTED_DEBUG_PORT = exports.SCRYPTED_SECURE_PORT = exports.SCRYPTED_INSECURE_PORT = void 0;
30
- const os_1 = __importDefault(require("os"));
31
- const nodeIp = __importStar(require("ip"));
32
- exports.SCRYPTED_INSECURE_PORT = parseInt(process.env.SCRYPTED_INSECURE_PORT) || 11080;
33
- exports.SCRYPTED_SECURE_PORT = parseInt(process.env.SCRYPTED_SECURE_PORT) || 10443;
34
- exports.SCRYPTED_DEBUG_PORT = parseInt(process.env.SCRYPTED_DEBUG_PORT) || 10081;
35
- function getIpAddress() {
36
- return nodeIp.address();
37
- }
38
- exports.getIpAddress = getIpAddress;
39
- function normalizeFamilyNodeV18(family) {
40
- if (family === 'IPv4')
41
- return 4;
42
- if (family === 'IPv6')
43
- return 6;
44
- return family;
45
- }
46
- function nodeIpAddress(family) {
47
- // https://chromium.googlesource.com/external/webrtc/+/master/rtc_base/network.cc#236
48
- const costlyNetworks = ["ipsec", "tun", "utun", "tap"];
49
- const ignoreNetworks = [
50
- // seen these on macos
51
- 'llw',
52
- 'awdl',
53
- ...costlyNetworks,
54
- ];
55
- const interfaces = os_1.default.networkInterfaces();
56
- const all = Object.keys(interfaces)
57
- .map((nic) => {
58
- for (const costly of ignoreNetworks) {
59
- if (nic.startsWith(costly)) {
60
- return {
61
- nic,
62
- addresses: [],
63
- };
64
- }
65
- }
66
- const addresses = interfaces[nic].filter((details) => normalizeFamilyNodeV18(details.family) === family
67
- && !nodeIp.isLoopback(details.address));
68
- return {
69
- nic,
70
- addresses: addresses.map((address) => address.address),
71
- };
72
- })
73
- .filter((address) => !!address);
74
- // os.networkInterfaces doesn't actually return addresses in a good order.
75
- // have seen instances where en0 (ethernet) is after en1 (wlan), etc.
76
- // eth0 > eth1
77
- all.sort((a, b) => a.nic.localeCompare(b.nic));
78
- return Object.values(all)
79
- .map((entry) => entry.addresses)
80
- .flat();
81
- }
82
- function getHostAddresses(useIpv4, useIpv6) {
83
- const address = [];
84
- if (useIpv4)
85
- address.push(...nodeIpAddress(4));
86
- if (useIpv6)
87
- address.push(...nodeIpAddress(6));
88
- return address;
89
- }
90
- exports.getHostAddresses = getHostAddresses;
91
- //# sourceMappingURL=server-settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-settings.js","sourceRoot":"","sources":["../src/server-settings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,2CAA6B;AAEhB,QAAA,sBAAsB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC;AAC/E,QAAA,oBAAoB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC;AAC3E,QAAA,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC;AAEtF,SAAgB,YAAY;IACxB,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;AAC5B,CAAC;AAFD,oCAEC;AAED,SAAS,sBAAsB,CAAC,MAAqB;IACjD,IAAI,MAAM,KAAK,MAAM;QACjB,OAAO,CAAC,CAAC;IACb,IAAI,MAAM,KAAK,MAAM;QACjB,OAAO,CAAC,CAAC;IACb,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACjC,qFAAqF;IACrF,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG;QACnB,sBAAsB;QACtB,KAAK;QACL,MAAM;QAEN,GAAG,cAAc;KACpB,CAAC;IAEF,MAAM,UAAU,GAAG,YAAE,CAAC,iBAAiB,EAAE,CAAC;IAE1C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SAC9B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACT,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE;YACjC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACxB,OAAO;oBACH,GAAG;oBACH,SAAS,EAAE,EAAE;iBAChB,CAAC;aACL;SACJ;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAE,CAAC,MAAM,CACrC,CAAC,OAAO,EAAE,EAAE,CACR,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM;eAC9C,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAC7C,CAAC;QACF,OAAO;YACH,GAAG;YACH,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;SACzD,CAAC;IACN,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEpC,0EAA0E;IAC1E,qEAAqE;IACrE,cAAc;IACd,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;SACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;SAC/B,IAAI,EAAE,CAAC;AAChB,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB,EAAE,OAAgB;IAC/D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC;AACnB,CAAC;AALD,4CAKC"}
@@ -1,7 +0,0 @@
1
- import { ScryptedRuntime } from "../runtime";
2
- export declare class AddressSettings {
3
- scrypted: ScryptedRuntime;
4
- constructor(scrypted: ScryptedRuntime);
5
- setLocalAddresses(addresses: string[]): Promise<void>;
6
- getLocalAddresses(raw?: boolean): Promise<string[]>;
7
- }
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AddressSettings = void 0;
7
- const db_types_1 = require("../db-types");
8
- const os_1 = __importDefault(require("os"));
9
- class AddressSettings {
10
- scrypted;
11
- constructor(scrypted) {
12
- this.scrypted = scrypted;
13
- }
14
- async setLocalAddresses(addresses) {
15
- const localAddresses = new db_types_1.Settings();
16
- localAddresses._id = 'localAddresses';
17
- localAddresses.value = addresses;
18
- await this.scrypted.datastore.upsert(localAddresses);
19
- }
20
- async getLocalAddresses(raw) {
21
- const settings = await this.scrypted.datastore.tryGet(db_types_1.Settings, 'localAddresses');
22
- if (!settings?.value?.[0])
23
- return;
24
- const ret = [];
25
- const networkInterfaces = os_1.default.networkInterfaces();
26
- for (const addressOrInterface of settings.value) {
27
- const nif = networkInterfaces[addressOrInterface];
28
- if (!raw && nif) {
29
- for (const addr of nif) {
30
- ret.push(addr.address);
31
- }
32
- }
33
- else {
34
- ret.push(addressOrInterface);
35
- }
36
- }
37
- return ret;
38
- }
39
- }
40
- exports.AddressSettings = AddressSettings;
41
- //# sourceMappingURL=addresses.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../src/services/addresses.ts"],"names":[],"mappings":";;;;;;AAAA,0CAAuC;AAEvC,4CAAoB;AAEpB,MAAa,eAAe;IACL;IAAnB,YAAmB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC5C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAmB;QACvC,MAAM,cAAc,GAAG,IAAI,mBAAQ,EAAE,CAAC;QACtC,cAAc,CAAC,GAAG,GAAG,gBAAgB,CAAC;QACtC,cAAc,CAAC,KAAK,GAAG,SAAS,CAAC;QACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAa;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAQ,EAAE,gBAAgB,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACrB,OAAO;QAEX,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,MAAM,iBAAiB,GAAG,YAAE,CAAC,iBAAiB,EAAE,CAAC;QACjD,KAAK,MAAM,kBAAkB,IAAI,QAAQ,CAAC,KAAK,EAAE;YAC7C,MAAM,GAAG,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;gBACb,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;oBACpB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC1B;aACJ;iBACI;gBACD,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAChC;SACJ;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAhCD,0CAgCC"}
@@ -1,9 +0,0 @@
1
- import { ScryptedAlert } from "../db-types";
2
- import { ScryptedRuntime } from "../runtime";
3
- export declare class Alerts {
4
- scrypted: ScryptedRuntime;
5
- constructor(scrypted: ScryptedRuntime);
6
- getAlerts(): Promise<ScryptedAlert[]>;
7
- removeAlert(alert: ScryptedAlert): Promise<void>;
8
- clearAlerts(): Promise<void>;
9
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Alerts = void 0;
4
- const db_types_1 = require("../db-types");
5
- class Alerts {
6
- scrypted;
7
- constructor(scrypted) {
8
- this.scrypted = scrypted;
9
- }
10
- async getAlerts() {
11
- const ret = [];
12
- for await (const alert of this.scrypted.datastore.getAll(db_types_1.ScryptedAlert)) {
13
- ret.push(alert);
14
- }
15
- return ret;
16
- }
17
- async removeAlert(alert) {
18
- await this.scrypted.datastore.removeId(db_types_1.ScryptedAlert, alert._id);
19
- this.scrypted.stateManager.notifyInterfaceEvent(null, 'Logger', undefined);
20
- }
21
- async clearAlerts() {
22
- await this.scrypted.datastore.removeAll(db_types_1.ScryptedAlert);
23
- this.scrypted.stateManager.notifyInterfaceEvent(null, 'Logger', undefined);
24
- }
25
- }
26
- exports.Alerts = Alerts;
27
- //# sourceMappingURL=alerts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../src/services/alerts.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAG5C,MAAa,MAAM;IACI;IAAnB,YAAmB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC5C,CAAC;IAED,KAAK,CAAC,SAAS;QACX,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAa,CAAC,EAAE;YACrE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnB;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,KAAoB;QAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAe,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IACD,KAAK,CAAC,WAAW;QACb,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAa,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAe,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;CACJ;AAnBD,wBAmBC"}
@@ -1,18 +0,0 @@
1
- import { ScryptedRuntime } from "../runtime";
2
- export declare class CORSControl {
3
- runtime: ScryptedRuntime;
4
- origins: {
5
- [id: string]: string[];
6
- };
7
- constructor(runtime: ScryptedRuntime);
8
- getCORS(id: string): Promise<string[]>;
9
- setCORS(id: string, origins: string[]): Promise<void>;
10
- }
11
- export interface CORSServerLegacy {
12
- tag: string;
13
- server: string;
14
- }
15
- export interface CORSControlLegacy {
16
- getCORS(): Promise<CORSServerLegacy[]>;
17
- setCORS(servers: CORSServerLegacy[]): Promise<void>;
18
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CORSControl = void 0;
4
- class CORSControl {
5
- runtime;
6
- origins = {};
7
- constructor(runtime) {
8
- this.runtime = runtime;
9
- }
10
- async getCORS(id) {
11
- return this.origins[id] || [];
12
- }
13
- async setCORS(id, origins) {
14
- this.origins[id] = origins;
15
- }
16
- }
17
- exports.CORSControl = CORSControl;
18
- //# sourceMappingURL=cors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/services/cors.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IAKD;IAJnB,OAAO,GAEH,EAAE,CAAC;IAEP,YAAmB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,OAAiB;QACvC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IAC/B,CAAC;CACJ;AAfD,kCAeC"}
@@ -1,5 +0,0 @@
1
- /// <reference types="node" />
2
- export declare class Info {
3
- getVersion(): Promise<any>;
4
- getScryptedEnv(): Promise<NodeJS.ProcessEnv>;
5
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Info = void 0;
4
- class Info {
5
- async getVersion() {
6
- return require('../../package.json').version;
7
- }
8
- async getScryptedEnv() {
9
- const ret = {};
10
- for (const key of Object.keys(process.env)) {
11
- if (key.startsWith('SCRYPTED_'))
12
- ret[key] = process.env[key];
13
- }
14
- return ret;
15
- }
16
- }
17
- exports.Info = Info;
18
- //# sourceMappingURL=info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/services/info.ts"],"names":[],"mappings":";;;AAAA,MAAa,IAAI;IACb,KAAK,CAAC,UAAU;QACZ,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,GAAG,GAAsB,EAAE,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACxC,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC3B,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACnC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAbD,oBAaC"}
@@ -1,46 +0,0 @@
1
- /// <reference types="node" />
2
- import { ScryptedNativeId } from "@scrypted/types";
3
- import { ScryptedRuntime } from "../runtime";
4
- export declare class PluginComponent {
5
- scrypted: ScryptedRuntime;
6
- constructor(scrypted: ScryptedRuntime);
7
- renameDeviceId(id: string, newId: string): Promise<void>;
8
- getStorage(id: string): {
9
- [key: string]: string;
10
- };
11
- setStorage(id: string, storage: {
12
- [key: string]: string;
13
- }): Promise<void>;
14
- setMixins(id: string, mixins: string[]): Promise<void>;
15
- getIdForPluginId(pluginId: string): Promise<string>;
16
- getIdForNativeId(pluginId: string, nativeId: ScryptedNativeId): Promise<string>;
17
- reload(pluginId: string): Promise<void>;
18
- kill(pluginId: string): Promise<void>;
19
- getPackageJson(pluginId: string): Promise<any>;
20
- getDeviceInfo(id: string): Promise<{
21
- mixins: any;
22
- pluginId: string;
23
- storage: {
24
- [key: string]: string;
25
- };
26
- nativeId: string;
27
- }>;
28
- getPluginInfo(pluginId: string): Promise<{
29
- pid: number;
30
- stats: {
31
- cpuUsage: NodeJS.CpuUsage;
32
- memoryUsage: NodeJS.MemoryUsage;
33
- };
34
- rpcObjects: number;
35
- packageJson: any;
36
- pendingResults: number;
37
- id: string;
38
- }>;
39
- installNpm(pkg: string, version?: string): Promise<void>;
40
- npmInfo(endpoint: string): Promise<any>;
41
- updatePlugins(): Promise<void>;
42
- clearConsole(id: string): Promise<void>;
43
- getRemoteServicePort(pluginId: string, name: string, ...args: any[]): Promise<number>;
44
- setHostParam(pluginId: string, name: string, param?: any): Promise<void>;
45
- getHostParam(pluginId: string, name: string): Promise<any>;
46
- }
@@ -1,172 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PluginComponent = void 0;
7
- const types_1 = require("@scrypted/types");
8
- const db_types_1 = require("../db-types");
9
- const state_1 = require("../state");
10
- const axios_1 = __importDefault(require("axios"));
11
- const semver_1 = __importDefault(require("semver"));
12
- const sleep_1 = require("../sleep");
13
- const mixin_cycle_1 = require("../mixin/mixin-cycle");
14
- class PluginComponent {
15
- scrypted;
16
- constructor(scrypted) {
17
- this.scrypted = scrypted;
18
- }
19
- async renameDeviceId(id, newId) {
20
- const pluginDevice = this.scrypted.findPluginDeviceById(id);
21
- await this.kill(pluginDevice.pluginId);
22
- // wait for everything to settle.
23
- await (0, sleep_1.sleep)(2000);
24
- // removing will also clear the state.
25
- const { state } = pluginDevice;
26
- await this.scrypted.removeDevice(pluginDevice);
27
- pluginDevice._id = newId;
28
- pluginDevice.state = state;
29
- await this.scrypted.datastore.upsert(pluginDevice);
30
- this.scrypted.pluginDevices[pluginDevice._id] = pluginDevice;
31
- await this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
32
- await this.reload(pluginDevice.pluginId);
33
- }
34
- getStorage(id) {
35
- return this.scrypted.findPluginDeviceById(id)?.storage || {};
36
- }
37
- async setStorage(id, storage) {
38
- const pluginDevice = this.scrypted.findPluginDeviceById(id);
39
- pluginDevice.storage = storage;
40
- await this.scrypted.datastore.upsert(pluginDevice);
41
- const host = this.scrypted.getPluginHostForDeviceId(id);
42
- await host?.remote?.setNativeId?.(pluginDevice.nativeId, pluginDevice._id, storage);
43
- this.scrypted.stateManager.notifyInterfaceEvent(pluginDevice, 'Storage', undefined);
44
- }
45
- async setMixins(id, mixins) {
46
- mixins = mixins || [];
47
- if ((0, mixin_cycle_1.hasMixinCycle)(this.scrypted, id, mixins)) {
48
- const message = `setMixins: ${id} has a mixin cycle. Cancelling change.`;
49
- console.warn(message);
50
- throw new Error(message);
51
- }
52
- const pluginDevice = this.scrypted.findPluginDeviceById(id);
53
- this.scrypted.stateManager.setPluginDeviceState(pluginDevice, types_1.ScryptedInterfaceProperty.mixins, [...new Set(mixins)]);
54
- this.scrypted.stateManager.updateDescriptor(pluginDevice);
55
- await this.scrypted.datastore.upsert(pluginDevice);
56
- // device may not exist, so force creation.
57
- this.scrypted.rebuildPluginDeviceMixinTable(id);
58
- this.scrypted.getDevice(id);
59
- await this.scrypted.devices[id]?.handler?.ensureProxy();
60
- }
61
- async getIdForPluginId(pluginId) {
62
- return this.scrypted.findPluginDevice(pluginId)?._id;
63
- }
64
- async getIdForNativeId(pluginId, nativeId) {
65
- return this.scrypted.findPluginDevice(pluginId, nativeId)?._id;
66
- }
67
- async reload(pluginId) {
68
- const plugin = await this.scrypted.datastore.tryGet(db_types_1.Plugin, pluginId);
69
- this.scrypted.runPlugin(plugin);
70
- }
71
- async kill(pluginId) {
72
- return this.scrypted.plugins[pluginId]?.kill();
73
- }
74
- // TODO: Remove this, ScryptedPlugin exists now.
75
- // 12/29/2022
76
- async getPackageJson(pluginId) {
77
- return this.scrypted.getPackageJson(pluginId);
78
- }
79
- async getDeviceInfo(id) {
80
- const pluginDevice = this.scrypted.findPluginDeviceById(id);
81
- if (!pluginDevice)
82
- throw new Error(`device ${id} does not exist`);
83
- return {
84
- mixins: (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.mixins) || [],
85
- pluginId: pluginDevice.pluginId,
86
- storage: pluginDevice.storage,
87
- nativeId: pluginDevice.nativeId,
88
- };
89
- }
90
- async getPluginInfo(pluginId) {
91
- const packageJson = await this.getPackageJson(pluginId);
92
- const host = this.scrypted.plugins[pluginId];
93
- let rpcObjects = 0;
94
- let pendingResults = 0;
95
- if (host.peer) {
96
- rpcObjects = host.peer.localProxied.size + Object.keys(host.peer.remoteWeakProxies).length;
97
- pendingResults = Object.keys(host.peer.pendingResults).length;
98
- }
99
- return {
100
- pid: host?.worker?.pid,
101
- stats: host?.stats,
102
- rpcObjects,
103
- packageJson,
104
- pendingResults,
105
- id: this.scrypted.findPluginDevice(pluginId)._id,
106
- };
107
- }
108
- async installNpm(pkg, version) {
109
- await this.scrypted.installNpm(pkg, version);
110
- }
111
- async npmInfo(endpoint) {
112
- const response = await (0, axios_1.default)(`https://registry.npmjs.org/${endpoint}`);
113
- return response.data;
114
- }
115
- async updatePlugins() {
116
- console.log('updating plugins');
117
- for (const [plugin, host] of Object.entries(this.scrypted.plugins)) {
118
- try {
119
- const registry = await this.npmInfo(plugin);
120
- const version = registry['dist-tags'].latest;
121
- if (registry?.versions?.[version]?.deprecated) {
122
- console.log('plugin deprecated, uninstalling:', plugin);
123
- await this.scrypted.removeDevice(this.scrypted.findPluginDevice(plugin));
124
- continue;
125
- }
126
- if (!semver_1.default.gt(version, host.packageJson.version)) {
127
- console.log('plugin up to date:', plugin);
128
- continue;
129
- }
130
- console.log('updating plugin', plugin);
131
- await this.installNpm(plugin);
132
- }
133
- catch (e) {
134
- console.warn('plugin update check or installation failed', e);
135
- }
136
- }
137
- console.log('done updating plugins');
138
- }
139
- async clearConsole(id) {
140
- const pluginDevice = this.scrypted.findPluginDeviceById(id);
141
- const consoleServer = await this.scrypted.plugins[pluginDevice.pluginId].consoleServer;
142
- consoleServer.clear(pluginDevice.nativeId);
143
- }
144
- async getRemoteServicePort(pluginId, name, ...args) {
145
- if (name === 'console') {
146
- const consoleServer = await this.scrypted.plugins[pluginId].consoleServer;
147
- return consoleServer.readPort;
148
- }
149
- if (name === 'console-writer') {
150
- const consoleServer = await this.scrypted.plugins[pluginId].consoleServer;
151
- return consoleServer.writePort;
152
- }
153
- return this.scrypted.plugins[pluginId].remote.getServicePort(name, ...args);
154
- }
155
- async setHostParam(pluginId, name, param) {
156
- const host = this.scrypted.plugins[pluginId];
157
- if (!host)
158
- return;
159
- const key = `oob-param-${name}`;
160
- if (param === undefined)
161
- delete host.peer.params[key];
162
- else
163
- host.peer.params[key] = param;
164
- }
165
- async getHostParam(pluginId, name) {
166
- const host = this.scrypted.plugins[pluginId];
167
- const key = `oob-param-${name}`;
168
- return host?.peer?.params?.[key];
169
- }
170
- }
171
- exports.PluginComponent = PluginComponent;
172
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/services/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { ScryptedRuntime } from "../runtime";
2
- export declare class ServiceControl {
3
- scrypted: ScryptedRuntime;
4
- constructor(scrypted: ScryptedRuntime);
5
- exit(): Promise<void>;
6
- restart(): Promise<void>;
7
- update(): Promise<any>;
8
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ServiceControl = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const axios_1 = __importDefault(require("axios"));
9
- class ServiceControl {
10
- scrypted;
11
- constructor(scrypted) {
12
- this.scrypted = scrypted;
13
- }
14
- async exit() {
15
- fs_1.default.writeFileSync('.exit', '');
16
- this.restart();
17
- }
18
- async restart() {
19
- process.exit();
20
- }
21
- async update() {
22
- const webhookUpdate = process.env.SCRYPTED_WEBHOOK_UPDATE;
23
- if (webhookUpdate) {
24
- const webhookUpdateAuthorization = process.env.SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION;
25
- const response = await axios_1.default.get(webhookUpdate, {
26
- headers: {
27
- Authorization: webhookUpdateAuthorization,
28
- }
29
- });
30
- return response.data;
31
- }
32
- else {
33
- fs_1.default.writeFileSync('.update', '');
34
- this.restart();
35
- }
36
- }
37
- }
38
- exports.ServiceControl = ServiceControl;
39
- //# sourceMappingURL=service-control.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-control.js","sourceRoot":"","sources":["../../src/services/service-control.ts"],"names":[],"mappings":";;;;;;AACA,4CAAoB;AACpB,kDAA0B;AAE1B,MAAa,cAAc;IACJ;IAAnB,YAAmB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC5C,CAAC;IAED,KAAK,CAAC,IAAI;QACN,YAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;QAC1D,IAAI,aAAa,EAAE;YACf,MAAM,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC;YACrF,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,aAAa,EAAE;gBAC5C,OAAO,EAAE;oBACL,aAAa,EAAE,0BAA0B;iBAC5C;aACJ,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAAC;SACxB;aACI;YACD,YAAE,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;IACL,CAAC;CACJ;AA7BD,wCA6BC"}
@@ -1,19 +0,0 @@
1
- import { ScryptedUser } from "../db-types";
2
- import { ScryptedRuntime } from "../runtime";
3
- export declare class UsersService {
4
- scrypted: ScryptedRuntime;
5
- users: Map<string, ScryptedUser>;
6
- usersPromise: Promise<ScryptedUser[]>;
7
- constructor(scrypted: ScryptedRuntime);
8
- private ensureUsersPromise;
9
- private updateUsersPromise;
10
- getAllUsers(): Promise<{
11
- username: string;
12
- admin: boolean;
13
- }[]>;
14
- removeUser(username: string): Promise<void>;
15
- removeAllUsers(): Promise<void>;
16
- addUserInternal(username: string, password: string, aclId: string): Promise<ScryptedUser>;
17
- addUser(username: string, password: string, aclId: string): Promise<void>;
18
- }
19
- export declare function setScryptedUserPassword(user: ScryptedUser, password: string, timestamp: number): void;
@@ -1,75 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.setScryptedUserPassword = exports.UsersService = void 0;
7
- const db_types_1 = require("../db-types");
8
- const crypto_1 = __importDefault(require("crypto"));
9
- class UsersService {
10
- scrypted;
11
- users = new Map();
12
- usersPromise;
13
- constructor(scrypted) {
14
- this.scrypted = scrypted;
15
- }
16
- async ensureUsersPromise() {
17
- if (!this.usersPromise) {
18
- this.usersPromise = (async () => {
19
- const users = new Map();
20
- for await (const user of this.scrypted.datastore.getAll(db_types_1.ScryptedUser)) {
21
- users.set(user._id, user);
22
- }
23
- this.users = users;
24
- return [...this.users.values()];
25
- })();
26
- }
27
- return this.usersPromise;
28
- }
29
- updateUsersPromise() {
30
- this.usersPromise = Promise.resolve([...this.users.values()]);
31
- }
32
- async getAllUsers() {
33
- const users = await this.ensureUsersPromise();
34
- return users.map(user => ({
35
- username: user._id,
36
- admin: !user.aclId,
37
- }));
38
- }
39
- async removeUser(username) {
40
- await this.ensureUsersPromise();
41
- await this.scrypted.datastore.removeId(db_types_1.ScryptedUser, username);
42
- this.users.delete(username);
43
- this.updateUsersPromise();
44
- }
45
- async removeAllUsers() {
46
- await this.ensureUsersPromise();
47
- await this.scrypted.datastore.removeAll(db_types_1.ScryptedUser);
48
- this.users.clear();
49
- this.updateUsersPromise();
50
- }
51
- async addUserInternal(username, password, aclId) {
52
- await this.ensureUsersPromise();
53
- const user = new db_types_1.ScryptedUser();
54
- user._id = username;
55
- user.aclId = aclId;
56
- user.token = crypto_1.default.randomBytes(16).toString('hex');
57
- setScryptedUserPassword(user, password, Date.now());
58
- await this.scrypted.datastore.upsert(user);
59
- this.users.set(username, user);
60
- this.updateUsersPromise();
61
- return user;
62
- }
63
- async addUser(username, password, aclId) {
64
- await this.addUserInternal(username, password, aclId);
65
- }
66
- }
67
- exports.UsersService = UsersService;
68
- function setScryptedUserPassword(user, password, timestamp) {
69
- user.salt = crypto_1.default.randomBytes(64).toString('base64');
70
- user.passwordHash = crypto_1.default.createHash('sha256').update(user.salt + password).digest().toString('hex');
71
- user.passwordDate = timestamp;
72
- user.token = crypto_1.default.randomBytes(16).toString('hex');
73
- }
74
- exports.setScryptedUserPassword = setScryptedUserPassword;
75
- //# sourceMappingURL=users.js.map