@quenk/potoo 3.1.2-0 → 3.1.3-0

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.
Files changed (89) hide show
  1. package/lib/actor/address.js +25 -29
  2. package/lib/actor/address.js.map +1 -1
  3. package/lib/actor/flags.js +8 -10
  4. package/lib/actor/flags.js.map +1 -1
  5. package/lib/actor/mailbox.js +3 -4
  6. package/lib/actor/mailbox.js.map +1 -1
  7. package/lib/actor/message.js +3 -4
  8. package/lib/actor/message.js.map +1 -1
  9. package/lib/actor/process/index.js +45 -53
  10. package/lib/actor/process/index.js.map +1 -1
  11. package/lib/actor/process/script.js +37 -46
  12. package/lib/actor/process/script.js.map +1 -1
  13. package/lib/actor/resident/api.d.ts +9 -0
  14. package/lib/actor/resident/api.ts +10 -0
  15. package/lib/actor/resident/case/function.js +10 -11
  16. package/lib/actor/resident/case/function.js.map +1 -1
  17. package/lib/actor/resident/case/index.js +18 -35
  18. package/lib/actor/resident/case/index.js.map +1 -1
  19. package/lib/actor/resident/immutable/callback.js +3 -21
  20. package/lib/actor/resident/immutable/callback.js.map +1 -1
  21. package/lib/actor/resident/immutable/index.js +11 -33
  22. package/lib/actor/resident/immutable/index.js.map +1 -1
  23. package/lib/actor/resident/index.d.ts +2 -0
  24. package/lib/actor/resident/index.js +48 -49
  25. package/lib/actor/resident/index.js.map +1 -1
  26. package/lib/actor/resident/index.ts +13 -0
  27. package/lib/actor/resident/mutable/index.js +12 -28
  28. package/lib/actor/resident/mutable/index.js.map +1 -1
  29. package/lib/actor/resident/scripts.js +62 -96
  30. package/lib/actor/resident/scripts.js.map +1 -1
  31. package/lib/actor/resident/scripts.ts +1 -2
  32. package/lib/actor/resident/task.js +6 -24
  33. package/lib/actor/resident/task.js.map +1 -1
  34. package/lib/actor/system/error.js +3 -4
  35. package/lib/actor/system/error.js.map +1 -1
  36. package/lib/actor/system/vm/conf.js +5 -4
  37. package/lib/actor/system/vm/conf.js.map +1 -1
  38. package/lib/actor/system/vm/event.js +17 -17
  39. package/lib/actor/system/vm/event.js.map +1 -1
  40. package/lib/actor/system/vm/index.d.ts +3 -3
  41. package/lib/actor/system/vm/index.js +201 -284
  42. package/lib/actor/system/vm/index.js.map +1 -1
  43. package/lib/actor/system/vm/index.ts +2 -2
  44. package/lib/actor/system/vm/runtime/context.js +6 -5
  45. package/lib/actor/system/vm/runtime/context.js.map +1 -1
  46. package/lib/actor/system/vm/runtime/error.js +119 -196
  47. package/lib/actor/system/vm/runtime/error.js.map +1 -1
  48. package/lib/actor/system/vm/runtime/heap/ledger.js +58 -64
  49. package/lib/actor/system/vm/runtime/heap/ledger.js.map +1 -1
  50. package/lib/actor/system/vm/runtime/op/actor.js +24 -16
  51. package/lib/actor/system/vm/runtime/op/actor.js.map +1 -1
  52. package/lib/actor/system/vm/runtime/op/base.js +53 -35
  53. package/lib/actor/system/vm/runtime/op/base.js.map +1 -1
  54. package/lib/actor/system/vm/runtime/op/index.js +74 -85
  55. package/lib/actor/system/vm/runtime/op/index.js.map +1 -1
  56. package/lib/actor/system/vm/runtime/op/object.js +14 -11
  57. package/lib/actor/system/vm/runtime/op/object.js.map +1 -1
  58. package/lib/actor/system/vm/runtime/stack/frame.js +93 -110
  59. package/lib/actor/system/vm/runtime/stack/frame.js.map +1 -1
  60. package/lib/actor/system/vm/script/index.js +9 -12
  61. package/lib/actor/system/vm/script/index.js.map +1 -1
  62. package/lib/actor/system/vm/script/info.js +116 -177
  63. package/lib/actor/system/vm/script/info.js.map +1 -1
  64. package/lib/actor/system/vm/scripts/factory.js +12 -15
  65. package/lib/actor/system/vm/scripts/factory.js.map +1 -1
  66. package/lib/actor/system/vm/scripts/index.js +12 -34
  67. package/lib/actor/system/vm/scripts/index.js.map +1 -1
  68. package/lib/actor/system/vm/state.js +40 -40
  69. package/lib/actor/system/vm/state.js.map +1 -1
  70. package/lib/actor/system/vm/thread/index.d.ts +16 -24
  71. package/lib/actor/system/vm/thread/index.js +3 -4
  72. package/lib/actor/system/vm/thread/index.js.map +1 -1
  73. package/lib/actor/system/vm/thread/index.ts +16 -26
  74. package/lib/actor/system/vm/thread/shared/index.d.ts +31 -12
  75. package/lib/actor/system/vm/thread/shared/index.js +130 -127
  76. package/lib/actor/system/vm/thread/shared/index.js.map +1 -1
  77. package/lib/actor/system/vm/thread/shared/index.ts +118 -51
  78. package/lib/actor/system/vm/thread/shared/scheduler.d.ts +38 -0
  79. package/lib/actor/system/vm/thread/shared/scheduler.js +62 -0
  80. package/lib/actor/system/vm/thread/shared/scheduler.js.map +1 -0
  81. package/lib/actor/system/vm/thread/shared/scheduler.ts +84 -0
  82. package/lib/actor/system/vm/type.js +2 -3
  83. package/lib/actor/system/vm/type.js.map +1 -1
  84. package/lib/tsconfig.json +1 -1
  85. package/package.json +2 -2
  86. package/lib/actor/system/vm/thread/shared/runner.d.ts +0 -55
  87. package/lib/actor/system/vm/thread/shared/runner.js +0 -122
  88. package/lib/actor/system/vm/thread/shared/runner.js.map +0 -1
  89. package/lib/actor/system/vm/thread/shared/runner.ts +0 -157
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isGroup = exports.isChild = exports.getId = exports.getParent = exports.make = exports.isRestricted = exports.ADDRESS_RESTRICTED = exports.ADDRESS_EMPTY = exports.ADDRESS_SYSTEM = exports.ADDRESS_DISCARD = exports.SEPERATOR = void 0;
4
- var array_1 = require("@quenk/noni/lib/data/array");
5
- var string_1 = require("@quenk/noni/lib/data/string");
4
+ const array_1 = require("@quenk/noni/lib/data/array");
5
+ const string_1 = require("@quenk/noni/lib/data/string");
6
6
  exports.SEPERATOR = '/';
7
7
  exports.ADDRESS_DISCARD = '?';
8
8
  exports.ADDRESS_SYSTEM = '$';
@@ -15,35 +15,33 @@ exports.ADDRESS_RESTRICTED = [
15
15
  /**
16
16
  * isRestricted indicates whether an actor id is restricted or not.
17
17
  */
18
- exports.isRestricted = function (id) {
19
- return ((exports.ADDRESS_RESTRICTED.some(function (a) { return id.indexOf(a) > -1; })) && (id !== exports.SEPERATOR));
20
- };
18
+ const isRestricted = (id) => ((exports.ADDRESS_RESTRICTED.some(a => id.indexOf(a) > -1)) && (id !== exports.SEPERATOR));
19
+ exports.isRestricted = isRestricted;
21
20
  /**
22
21
  * make a child address given its id and parent address.
23
22
  */
24
- exports.make = function (parent, id) {
25
- return ((parent === exports.SEPERATOR) || (parent === exports.ADDRESS_EMPTY)) ?
26
- "" + parent + id :
27
- (parent === exports.ADDRESS_SYSTEM) ?
28
- id :
29
- "" + parent + exports.SEPERATOR + id;
30
- };
23
+ const make = (parent, id) => ((parent === exports.SEPERATOR) || (parent === exports.ADDRESS_EMPTY)) ?
24
+ `${parent}${id}` :
25
+ (parent === exports.ADDRESS_SYSTEM) ?
26
+ id :
27
+ `${parent}${exports.SEPERATOR}${id}`;
28
+ exports.make = make;
31
29
  /**
32
30
  * getParent computes the parent of an Address.
33
31
  */
34
- exports.getParent = function (addr) {
32
+ const getParent = (addr) => {
35
33
  if (((addr === exports.ADDRESS_SYSTEM) ||
36
34
  (addr === exports.ADDRESS_EMPTY) ||
37
35
  (addr === exports.ADDRESS_DISCARD) || (addr === exports.SEPERATOR))) {
38
36
  return exports.ADDRESS_SYSTEM;
39
37
  }
40
38
  else {
41
- var b4 = addr.split(exports.SEPERATOR);
39
+ let b4 = addr.split(exports.SEPERATOR);
42
40
  if ((b4.length === 2) && (b4[0] === '')) {
43
41
  return exports.SEPERATOR;
44
42
  }
45
43
  else {
46
- var a = b4
44
+ let a = b4
47
45
  .reverse()
48
46
  .slice(1)
49
47
  .reverse()
@@ -52,27 +50,25 @@ exports.getParent = function (addr) {
52
50
  }
53
51
  }
54
52
  };
53
+ exports.getParent = getParent;
55
54
  /**
56
55
  * getId provides the id part of an actor address.
57
56
  */
58
- exports.getId = function (addr) {
59
- return ((addr === exports.ADDRESS_SYSTEM) ||
60
- (addr === exports.ADDRESS_DISCARD) ||
61
- (addr === exports.ADDRESS_EMPTY) ||
62
- (addr === exports.SEPERATOR)) ?
63
- addr :
64
- array_1.tail(addr.split(exports.SEPERATOR));
65
- };
57
+ const getId = (addr) => ((addr === exports.ADDRESS_SYSTEM) ||
58
+ (addr === exports.ADDRESS_DISCARD) ||
59
+ (addr === exports.ADDRESS_EMPTY) ||
60
+ (addr === exports.SEPERATOR)) ?
61
+ addr :
62
+ (0, array_1.tail)(addr.split(exports.SEPERATOR));
63
+ exports.getId = getId;
66
64
  /**
67
65
  * isChild tests whether an address is a child of the parent address.
68
66
  */
69
- exports.isChild = function (parent, child) {
70
- return (parent === exports.ADDRESS_SYSTEM) || (parent !== child) && string_1.startsWith(child, parent);
71
- };
67
+ const isChild = (parent, child) => (parent === exports.ADDRESS_SYSTEM) || (parent !== child) && (0, string_1.startsWith)(child, parent);
68
+ exports.isChild = isChild;
72
69
  /**
73
70
  * isGroup determines if an address is a group reference.
74
71
  */
75
- exports.isGroup = function (addr) {
76
- return ((addr[0] === '$') && (addr !== '$'));
77
- };
72
+ const isGroup = (addr) => ((addr[0] === '$') && (addr !== '$'));
73
+ exports.isGroup = isGroup;
78
74
  //# sourceMappingURL=address.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["address.ts"],"names":[],"mappings":";;;AAAA,oDAAkD;AAClD,sDAAyD;AAE5C,QAAA,SAAS,GAAG,GAAG,CAAC;AAEhB,QAAA,eAAe,GAAG,GAAG,CAAC;AACtB,QAAA,cAAc,GAAG,GAAG,CAAC;AACrB,QAAA,aAAa,GAAG,EAAE,CAAC;AACnB,QAAA,kBAAkB,GAAG;IAC9B,uBAAe;IACf,sBAAc;IACd,iBAAS;CACZ,CAAC;AAmBF;;GAEG;AACU,QAAA,YAAY,GAAG,UAAC,EAAU;IACnC,OAAA,CAAC,CAAC,0BAAkB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAlB,CAAkB,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,iBAAS,CAAC,CAAC;AAA1E,CAA0E,CAAC;AAE/E;;GAEG;AACU,QAAA,IAAI,GAAG,UAAC,MAAe,EAAE,EAAU;IAC5C,OAAA,CAAC,CAAC,MAAM,KAAK,iBAAS,CAAC,IAAI,CAAC,MAAM,KAAK,qBAAa,CAAC,CAAC,CAAC,CAAC;QACpD,KAAG,MAAM,GAAG,EAAI,CAAC,CAAC;QAClB,CAAC,MAAM,KAAK,sBAAc,CAAC,CAAC,CAAC;YACzB,EAAE,CAAC,CAAC;YACJ,KAAG,MAAM,GAAG,iBAAS,GAAG,EAAI;AAJpC,CAIoC,CAAC;AAEzC;;GAEG;AACU,QAAA,SAAS,GAAG,UAAC,IAAa;IAEnC,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAc,CAAC;QAC1B,CAAC,IAAI,KAAK,qBAAa,CAAC;QACxB,CAAC,IAAI,KAAK,uBAAe,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,CAAC,CAAC,EAAE;QAErD,OAAO,sBAAc,CAAC;KAEzB;SAAM;QAEH,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAS,CAAC,CAAC;QAE/B,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;YAErC,OAAO,iBAAS,CAAC;SAEpB;aAAM;YAEH,IAAI,CAAC,GAAG,EAAE;iBACL,OAAO,EAAE;iBACT,KAAK,CAAC,CAAC,CAAC;iBACR,OAAO,EAAE;iBACT,IAAI,CAAC,iBAAS,CAAC,CAAC;YAErB,OAAO,CAAC,KAAK,qBAAa,CAAC,CAAC,CAAC,sBAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SAGnD;KAEJ;AAEL,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,KAAK,GAAG,UAAC,IAAa;IAC/B,OAAA,CAAC,CAAC,IAAI,KAAK,sBAAc,CAAC;QACtB,CAAC,IAAI,KAAK,uBAAe,CAAC;QAC1B,CAAC,IAAI,KAAK,qBAAa,CAAC;QACxB,CAAC,IAAI,KAAK,iBAAS,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC;QACN,YAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAS,CAAC,CAAC;AAL/B,CAK+B,CAAC;AAEpC;;GAEG;AACU,QAAA,OAAO,GAAG,UAAC,MAAe,EAAE,KAAc;IACnD,OAAA,CAAC,MAAM,KAAK,sBAAc,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,mBAAU,CAAC,KAAK,EAAE,MAAM,CAAC;AAA9E,CAA8E,CAAC;AAEnF;;GAEG;AACU,QAAA,OAAO,GAAG,UAAC,IAAa;IACjC,OAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAArC,CAAqC,CAAA"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["address.ts"],"names":[],"mappings":"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"}
@@ -10,23 +10,21 @@ exports.FLAG_EXIT_AFTER_RUN = 32;
10
10
  /**
11
11
  * isImmutable flag test.
12
12
  */
13
- exports.isImmutable = function (f) {
14
- return (f & exports.FLAG_IMMUTABLE) === exports.FLAG_IMMUTABLE;
15
- };
13
+ const isImmutable = (f) => (f & exports.FLAG_IMMUTABLE) === exports.FLAG_IMMUTABLE;
14
+ exports.isImmutable = isImmutable;
16
15
  /**
17
16
  * isBuffered flag test.
18
17
  */
19
- exports.isBuffered = function (f) {
20
- return (f & exports.FLAG_BUFFERED) === exports.FLAG_BUFFERED;
21
- };
18
+ const isBuffered = (f) => (f & exports.FLAG_BUFFERED) === exports.FLAG_BUFFERED;
19
+ exports.isBuffered = isBuffered;
22
20
  /**
23
21
  * isRouter flag test.
24
22
  */
25
- exports.isRouter = function (f) {
26
- return (f & exports.FLAG_ROUTER) === exports.FLAG_ROUTER;
27
- };
23
+ const isRouter = (f) => (f & exports.FLAG_ROUTER) === exports.FLAG_ROUTER;
24
+ exports.isRouter = isRouter;
28
25
  /**
29
26
  * isResident flag test.
30
27
  */
31
- exports.isResident = function (f) { return (f & exports.FLAG_RESIDENT) === exports.FLAG_RESIDENT; };
28
+ const isResident = (f) => (f & exports.FLAG_RESIDENT) === exports.FLAG_RESIDENT;
29
+ exports.isResident = isResident;
32
30
  //# sourceMappingURL=flags.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flags.js","sourceRoot":"","sources":["flags.ts"],"names":[],"mappings":";;;AACa,QAAA,cAAc,GAAG,CAAC,CAAC;AACnB,QAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,uBAAuB,GAAG,CAAC,CAAA;AAC3B,QAAA,WAAW,GAAG,CAAC,CAAC;AAChB,QAAA,aAAa,GAAG,EAAE,CAAC;AACnB,QAAA,mBAAmB,GAAG,EAAE,CAAC;AAQtC;;GAEG;AACU,QAAA,WAAW,GAAG,UAAC,CAAQ;IAChC,OAAA,CAAC,CAAC,GAAG,sBAAc,CAAC,KAAK,sBAAc;AAAvC,CAAuC,CAAC;AAE5C;;GAEG;AACU,QAAA,UAAU,GAAG,UAAC,CAAQ;IAC/B,OAAA,CAAC,CAAC,GAAG,qBAAa,CAAC,KAAK,qBAAa;AAArC,CAAqC,CAAC;AAE1C;;GAEG;AACU,QAAA,QAAQ,GAAG,UAAC,CAAQ;IAC7B,OAAA,CAAC,CAAC,GAAG,mBAAW,CAAC,KAAK,mBAAW;AAAjC,CAAiC,CAAC;AAEtC;;GAEG;AACU,QAAA,UAAU,GAAG,UAAC,CAAQ,IAAK,OAAA,CAAC,CAAC,GAAG,qBAAa,CAAC,KAAK,qBAAa,EAArC,CAAqC,CAAC"}
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["flags.ts"],"names":[],"mappings":";;;AACa,QAAA,cAAc,GAAG,CAAC,CAAC;AACnB,QAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,uBAAuB,GAAG,CAAC,CAAA;AAC3B,QAAA,WAAW,GAAG,CAAC,CAAC;AAChB,QAAA,aAAa,GAAG,EAAE,CAAC;AACnB,QAAA,mBAAmB,GAAG,EAAE,CAAC;AAQtC;;GAEG;AACI,MAAM,WAAW,GAAG,CAAC,CAAQ,EAAE,EAAE,CACpC,CAAC,CAAC,GAAG,sBAAc,CAAC,KAAK,sBAAc,CAAC;AAD/B,QAAA,WAAW,eACoB;AAE5C;;GAEG;AACI,MAAM,UAAU,GAAG,CAAC,CAAQ,EAAE,EAAE,CACnC,CAAC,CAAC,GAAG,qBAAa,CAAC,KAAK,qBAAa,CAAC;AAD7B,QAAA,UAAU,cACmB;AAE1C;;GAEG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAQ,EAAE,EAAE,CACjC,CAAC,CAAC,GAAG,mBAAW,CAAC,KAAK,mBAAW,CAAC;AADzB,QAAA,QAAQ,YACiB;AAEtC;;GAEG;AACI,MAAM,UAAU,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,qBAAa,CAAC,KAAK,qBAAa,CAAC;AAAjE,QAAA,UAAU,cAAuD"}
@@ -6,13 +6,12 @@ exports.Envelope = void 0;
6
6
  *
7
7
  * Used to internally keep track of message sources and destintations.
8
8
  */
9
- var Envelope = /** @class */ (function () {
10
- function Envelope(to, from, message) {
9
+ class Envelope {
10
+ constructor(to, from, message) {
11
11
  this.to = to;
12
12
  this.from = from;
13
13
  this.message = message;
14
14
  }
15
- return Envelope;
16
- }());
15
+ }
17
16
  exports.Envelope = Envelope;
18
17
  //# sourceMappingURL=mailbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mailbox.js","sourceRoot":"","sources":["mailbox.ts"],"names":[],"mappings":";;;AAOA;;;;GAIG;AACH;IAEE,kBACS,EAAU,EACV,IAAY,EACZ,OAAgB;QAFhB,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IAAI,CAAC;IAEhC,eAAC;AAAD,CAAC,AAPD,IAOC;AAPY,4BAAQ"}
1
+ {"version":3,"file":"mailbox.js","sourceRoot":"","sources":["mailbox.ts"],"names":[],"mappings":";;;AAOA;;;;GAIG;AACH,MAAa,QAAQ;IAEnB,YACS,EAAU,EACV,IAAY,EACZ,OAAgB;QAFhB,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IAAI,CAAC;CAE/B;AAPD,4BAOC"}
@@ -6,13 +6,12 @@ exports.Envelope = void 0;
6
6
  *
7
7
  * Used to internally keep track of message sources and destintations.
8
8
  */
9
- var Envelope = /** @class */ (function () {
10
- function Envelope(to, from, message) {
9
+ class Envelope {
10
+ constructor(to, from, message) {
11
11
  this.to = to;
12
12
  this.from = from;
13
13
  this.message = message;
14
14
  }
15
- return Envelope;
16
- }());
15
+ }
17
16
  exports.Envelope = Envelope;
18
17
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["message.ts"],"names":[],"mappings":";;;AAMA;;;;GAIG;AACH;IAEE,kBACS,EAAU,EACV,IAAY,EACZ,OAAgB;QAFhB,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IAAI,CAAC;IAEhC,eAAC;AAAD,CAAC,AAPD,IAOC;AAPY,4BAAQ"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["message.ts"],"names":[],"mappings":";;;AAMA;;;;GAIG;AACH,MAAa,QAAQ;IAEnB,YACS,EAAU,EACV,IAAY,EACZ,OAAgB;QAFhB,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IAAI,CAAC;CAE/B;AAPD,4BAOC"}
@@ -1,23 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Process = exports.SCRIPT_PATH = void 0;
4
- var path_1 = require("path");
5
- var child_process_1 = require("child_process");
6
- var match_1 = require("@quenk/noni/lib/control/match");
7
- var type_1 = require("@quenk/noni/lib/data/type");
8
- var op_1 = require("../system/vm/runtime/op");
9
- var address_1 = require("../address");
10
- var flags_1 = require("../flags");
11
- var address_2 = require("../address");
12
- exports.SCRIPT_PATH = __dirname + "/../../../lib/actor/process/script.js";
13
- var raiseShape = {
4
+ const path_1 = require("path");
5
+ const child_process_1 = require("child_process");
6
+ const match_1 = require("@quenk/noni/lib/control/match");
7
+ const type_1 = require("@quenk/noni/lib/data/type");
8
+ const op_1 = require("../system/vm/runtime/op");
9
+ const address_1 = require("../address");
10
+ const flags_1 = require("../flags");
11
+ const address_2 = require("../address");
12
+ exports.SCRIPT_PATH = `${__dirname}/../../../lib/actor/process/script.js`;
13
+ const raiseShape = {
14
14
  code: op_1.RAISE,
15
15
  src: String,
16
16
  dest: String,
17
17
  message: String,
18
18
  stack: String
19
19
  };
20
- var tellShape = {
20
+ const tellShape = {
21
21
  code: op_1.SEND,
22
22
  to: String,
23
23
  from: String,
@@ -39,68 +39,60 @@ var tellShape = {
39
39
  * Node's builtin child_process API to monitor and receive
40
40
  * messages from the child process.
41
41
  */
42
- var Process = /** @class */ (function () {
43
- function Process(module, system, script) {
44
- if (script === void 0) { script = exports.SCRIPT_PATH; }
42
+ class Process {
43
+ constructor(module, system, script = exports.SCRIPT_PATH) {
45
44
  this.module = module;
46
45
  this.system = system;
47
46
  this.script = script;
48
47
  this.process = nullHandle;
49
- this.self = function () { return address_2.ADDRESS_DISCARD; };
48
+ this.self = () => address_2.ADDRESS_DISCARD;
50
49
  }
51
- Process.prototype.init = function (c) {
50
+ init(c) {
52
51
  c.flags = c.flags | flags_1.FLAG_IMMUTABLE | flags_1.FLAG_ROUTER;
53
52
  return c;
54
- };
55
- Process.prototype.accept = function (e) {
53
+ }
54
+ accept(e) {
56
55
  this.process.send(e);
57
56
  return this;
58
- };
59
- Process.prototype.notify = function () { };
60
- Process.prototype.stop = function () {
57
+ }
58
+ notify() { }
59
+ stop() {
61
60
  this.process.kill();
62
- };
63
- Process.prototype.start = function (addr) {
64
- var _this = this;
65
- this.self = function () { return addr; };
66
- var p = child_process_1.fork(path_1.resolve(this.script), [], spawnOpts(this));
67
- p.on('error', function (e) { return _this.system.getPlatform().raise(_this, e); });
61
+ }
62
+ start(addr) {
63
+ this.self = () => addr;
64
+ let p = (0, child_process_1.fork)((0, path_1.resolve)(this.script), [], spawnOpts(this));
65
+ p.on('error', e => this.system.getPlatform().raise(this, e));
68
66
  //TODO: What should we do with invalid messages?
69
- p.on('message', function (m) {
70
- return match_1.match(m)
71
- .caseOf(tellShape, handleTell(_this))
72
- .caseOf(raiseShape, handleRaise(_this))
73
- .orElse(function () { })
74
- .end();
75
- });
76
- p.on('exit', function () {
77
- _this.process = nullHandle;
78
- _this.system.getPlatform().kill(_this, _this.self());
67
+ p.on('message', (m) => (0, match_1.match)(m)
68
+ .caseOf(tellShape, handleTell(this))
69
+ .caseOf(raiseShape, handleRaise(this))
70
+ .orElse(() => { })
71
+ .end());
72
+ p.on('exit', () => {
73
+ this.process = nullHandle;
74
+ this.system.getPlatform().kill(this, this.self());
79
75
  });
80
76
  this.process = p;
81
- };
82
- return Process;
83
- }());
77
+ }
78
+ }
84
79
  exports.Process = Process;
85
- var nullHandle = {
86
- send: function () { },
87
- kill: function () { }
80
+ const nullHandle = {
81
+ send() { },
82
+ kill() { }
88
83
  };
89
- var spawnOpts = function (p) { return ({
84
+ const spawnOpts = (p) => ({
90
85
  env: {
91
- POTOO_ACTOR_ID: address_1.getId(p.self()),
86
+ POTOO_ACTOR_ID: (0, address_1.getId)(p.self()),
92
87
  POTOO_ACTOR_ADDRESS: p.self(),
93
88
  POTOO_ACTOR_MODULE: p.module,
94
89
  POTOO_PVM_CONF: process.env.POTOO_PVM_CONF
95
90
  }
96
- }); };
97
- var handleTell = function (p) { return function (m) {
98
- return p.system.getPlatform().tell(m.to, m.message);
99
- }; };
100
- var handleRaise = function (p) { return function (_a) {
101
- var message = _a.message, stack = _a.stack;
102
- var err = new Error(message);
91
+ });
92
+ const handleTell = (p) => (m) => p.system.getPlatform().tell(m.to, m.message);
93
+ const handleRaise = (p) => ({ message, stack }) => {
94
+ let err = new Error(message);
103
95
  err.stack = stack;
104
96
  p.system.getPlatform().raise(p, err);
105
- }; };
97
+ };
106
98
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -1,54 +1,52 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var match_1 = require("@quenk/noni/lib/control/match");
4
- var type_1 = require("@quenk/noni/lib/data/type");
5
- var record_1 = require("@quenk/noni/lib/data/record");
6
- var json_1 = require("@quenk/noni/lib/data/json");
7
- var op_1 = require("../system/vm/runtime/op");
8
- var event_1 = require("../system/vm/event");
9
- var vm_1 = require("../system/vm");
3
+ const match_1 = require("@quenk/noni/lib/control/match");
4
+ const type_1 = require("@quenk/noni/lib/data/type");
5
+ const record_1 = require("@quenk/noni/lib/data/record");
6
+ const json_1 = require("@quenk/noni/lib/data/json");
7
+ const op_1 = require("../system/vm/runtime/op");
8
+ const event_1 = require("../system/vm/event");
9
+ const vm_1 = require("../system/vm");
10
10
  //ENV vars:
11
11
  //POTOO_ACTOR_ID
12
12
  //POTOO_ACTOR_ADDRESS
13
13
  //POTOO_PVM_CONF
14
- var Sys = /** @class */ (function () {
15
- function Sys() {
16
- var _a;
17
- this.vm = vm_1.PVM.create(this, record_1.rmerge(getConf(), {
18
- on: (_a = {},
19
- _a[event_1.EVENT_SEND_FAILED] = function (from, _, to, message) { return process.send({
14
+ class Sys {
15
+ constructor() {
16
+ this.vm = vm_1.PVM.create(this, (0, record_1.rmerge)(getConf(), {
17
+ on: {
18
+ [event_1.EVENT_SEND_FAILED]: (from, _, to, message) => process.send({
20
19
  code: op_1.SEND,
21
- to: to,
22
- from: from,
23
- message: message
24
- }); },
25
- _a)
20
+ to,
21
+ from,
22
+ message
23
+ })
24
+ }
26
25
  }));
27
26
  }
28
- Sys.prototype.getPlatform = function () {
27
+ getPlatform() {
29
28
  return this.vm;
30
- };
31
- return Sys;
32
- }());
33
- var id = process.env.POTOO_ACTOR_ID;
34
- var address = process.env.POTOO_ACTOR_ADDRESS;
35
- var tellShape = {
29
+ }
30
+ }
31
+ const id = process.env.POTOO_ACTOR_ID;
32
+ const address = process.env.POTOO_ACTOR_ADDRESS;
33
+ const tellShape = {
36
34
  to: String,
37
35
  from: String,
38
36
  message: type_1.Any
39
37
  };
40
- var defaultConf = {};
41
- var getConf = function () {
42
- if (type_1.isString(process.env.POTOO_PVM_CONF)) {
43
- var econf = json_1.parse(process.env.POTOO_PVM_CONF);
38
+ const defaultConf = {};
39
+ const getConf = () => {
40
+ if ((0, type_1.isString)(process.env.POTOO_PVM_CONF)) {
41
+ let econf = (0, json_1.parse)(process.env.POTOO_PVM_CONF);
44
42
  if (econf.isRight())
45
43
  return econf.takeRight();
46
44
  }
47
45
  return defaultConf;
48
46
  };
49
- var main = function () {
50
- var sys = new Sys();
51
- process.on('uncaughtException', function (e) {
47
+ const main = () => {
48
+ let sys = new Sys();
49
+ process.on('uncaughtException', e => {
52
50
  process.send({
53
51
  code: op_1.RAISE,
54
52
  message: e.message,
@@ -59,24 +57,17 @@ var main = function () {
59
57
  process.exit(-1);
60
58
  });
61
59
  sys.vm.spawn(sys.vm, {
62
- id: id,
63
- create: function (s) {
60
+ id,
61
+ create: (s) => {
64
62
  //TODO: Handle invalid messages?
65
- process.on('message', function (m) {
66
- return match_1.match(m)
67
- .caseOf(tellShape, filterTell(sys.vm))
68
- .orElse(function () { })
69
- .end();
70
- });
63
+ process.on('message', (m) => (0, match_1.match)(m)
64
+ .caseOf(tellShape, filterTell(sys.vm))
65
+ .orElse(() => { })
66
+ .end());
71
67
  return require(process.env.POTOO_ACTOR_MODULE).create(s);
72
68
  }
73
69
  });
74
70
  };
75
- var filterTell = function (vm) {
76
- return function (_a) {
77
- var to = _a.to, message = _a.message;
78
- return vm.tell(to, message);
79
- };
80
- };
71
+ const filterTell = (vm) => ({ to, message }) => vm.tell(to, message);
81
72
  main();
82
73
  //# sourceMappingURL=script.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["script.ts"],"names":[],"mappings":";;AAAA,uDAAsD;AACtD,kDAA0D;AAC1D,sDAAqD;AACrD,kDAAkD;AAElD,8CAAsD;AACtD,4CAAuD;AAEvD,mCAAmC;AAKnC,WAAW;AACX,gBAAgB;AAChB,qBAAqB;AACrB,gBAAgB;AAEhB;IAAA;;QAEI,OAAE,GAAQ,QAAG,CAAC,MAAM,CAAC,IAAI,EAAE,eAAM,CAAC,OAAO,EAAE,EAAE;YAEzC,EAAE;gBAEE,GAAC,yBAAiB,IAAG,UACjB,IAAa,EACb,CAAS,EACT,EAAW,EACX,OAAgB,IAAK,OAAW,OAAO,CAAC,IAAK,CAAC;oBAE1C,IAAI,EAAE,SAAI;oBACV,EAAE,IAAA;oBACF,IAAI,MAAA;oBACJ,OAAO,SAAA;iBAEV,CAAC,EAPmB,CAOnB;mBAET;SAEJ,CAAC,CAAC,CAAC;IAQR,CAAC;IANG,yBAAW,GAAX;QAEI,OAAO,IAAI,CAAC,EAAE,CAAC;IAEnB,CAAC;IAEL,UAAC;AAAD,CAAC,AA7BD,IA6BC;AAED,IAAM,EAAE,GAAW,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAE9C,IAAM,OAAO,GAAW,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAExD,IAAM,SAAS,GAAG;IAEd,EAAE,EAAE,MAAM;IAEV,IAAI,EAAE,MAAM;IAEZ,OAAO,EAAE,UAAG;CAEf,CAAA;AAED,IAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,IAAM,OAAO,GAAG;IAEZ,IAAI,eAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;QAEtC,IAAI,KAAK,GAAG,YAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE9C,IAAI,KAAK,CAAC,OAAO,EAAE;YAAE,OAAsB,KAAK,CAAC,SAAS,EAAE,CAAC;KAEhE;IAED,OAAO,WAAW,CAAC;AAEvB,CAAC,CAAA;AAED,IAAM,IAAI,GAAG;IAET,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IAEpB,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,UAAA,CAAC;QAElB,OAAO,CAAC,IAAK,CAAC;YAErB,IAAI,EAAE,UAAK;YACX,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,OAAO;SAEhB,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAErB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE;QAEjB,EAAE,IAAA;QAEF,MAAM,EAAE,UAAC,CAAS;YAEd,gCAAgC;YAChC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,UAAC,CAAU;gBAC7B,OAAA,aAAK,CAAC,CAAC,CAAC;qBACH,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;qBACrC,MAAM,CAAC,cAAQ,CAAC,CAAC;qBACjB,GAAG,EAAE;YAHV,CAGU,CAAC,CAAC;YAEhB,OAAO,OAAO,CAAS,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAErE,CAAC;KAEJ,CAAC,CAAC;AAEP,CAAC,CAAA;AAED,IAAM,UAAU,GAAG,UAAC,EAAO;IACvB,OAAA,UAAC,EAAiD;YAA/C,EAAE,QAAA,EAAE,OAAO,aAAA;QAAgD,OAAA,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;IAApB,CAAoB;AAAlF,CAAkF,CAAC;AAEvF,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["script.ts"],"names":[],"mappings":";;AAAA,yDAAsD;AACtD,oDAA0D;AAC1D,wDAAqD;AACrD,oDAAkD;AAElD,gDAAsD;AACtD,8CAAuD;AAEvD,qCAAmC;AAKnC,WAAW;AACX,gBAAgB;AAChB,qBAAqB;AACrB,gBAAgB;AAEhB,MAAM,GAAG;IAAT;QAEI,OAAE,GAAQ,QAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAA,eAAM,EAAC,OAAO,EAAE,EAAE;YAEzC,EAAE,EAAE;gBAEA,CAAC,yBAAiB,CAAC,EAAE,CACjB,IAAa,EACb,CAAS,EACT,EAAW,EACX,OAAgB,EAAE,EAAE,CAAY,OAAO,CAAC,IAAK,CAAC;oBAE1C,IAAI,EAAE,SAAI;oBACV,EAAE;oBACF,IAAI;oBACJ,OAAO;iBAEV,CAAC;aAET;SAEJ,CAAC,CAAC,CAAC;IAQR,CAAC;IANG,WAAW;QAEP,OAAO,IAAI,CAAC,EAAE,CAAC;IAEnB,CAAC;CAEJ;AAED,MAAM,EAAE,GAAW,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAE9C,MAAM,OAAO,GAAW,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAExD,MAAM,SAAS,GAAG;IAEd,EAAE,EAAE,MAAM;IAEV,IAAI,EAAE,MAAM;IAEZ,OAAO,EAAE,UAAG;CAEf,CAAA;AAED,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,OAAO,GAAG,GAAkB,EAAE;IAEhC,IAAI,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;QAEtC,IAAI,KAAK,GAAG,IAAA,YAAK,EAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE9C,IAAI,KAAK,CAAC,OAAO,EAAE;YAAE,OAAsB,KAAK,CAAC,SAAS,EAAE,CAAC;KAEhE;IAED,OAAO,WAAW,CAAC;AAEvB,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,GAAG,EAAE;IAEd,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IAEpB,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE;QAErB,OAAO,CAAC,IAAK,CAAC;YAErB,IAAI,EAAE,UAAK;YACX,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,OAAO;SAEhB,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAErB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE;QAEjB,EAAE;QAEF,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YAElB,gCAAgC;YAChC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAU,EAAE,EAAE,CACjC,IAAA,aAAK,EAAC,CAAC,CAAC;iBACH,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACrC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBACjB,GAAG,EAAE,CAAC,CAAC;YAEhB,OAAO,OAAO,CAAS,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAErE,CAAC;KAEJ,CAAC,CAAC;AAEP,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,EAAO,EAAE,EAAE,CAC3B,CAAC,EAAE,EAAE,EAAE,OAAO,EAAoC,EAAE,EAAE,CAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAEvF,IAAI,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { Err } from '@quenk/noni/lib/control/error';
2
+ import { Future } from '@quenk/noni/lib/control/monad/future';
2
3
  import { Address, AddressMap } from '../address';
3
4
  import { Spawnable, Templates } from '../template';
4
5
  /**
@@ -33,6 +34,14 @@ export interface Api extends Spawner {
33
34
  * kill a child actor.
34
35
  */
35
36
  kill(addr: Address): Api;
37
+ /**
38
+ * wait on a Future to complete blocking the actor until it does.
39
+ *
40
+ * The blocking only occurs in the VM and not the JS event loop. Errors are
41
+ * propagated through the event handling machinery and any return values
42
+ * are ignored.
43
+ */
44
+ wait(ft: Future<void>): void;
36
45
  /**
37
46
  * exit instructs the system to kill off this actor.
38
47
  */
@@ -1,4 +1,5 @@
1
1
  import { Err } from '@quenk/noni/lib/control/error';
2
+ import { Future } from '@quenk/noni/lib/control/monad/future';
2
3
 
3
4
  import { Address, AddressMap } from '../address';
4
5
  import { Spawnable, Templates } from '../template';
@@ -47,6 +48,15 @@ export interface Api extends Spawner {
47
48
  */
48
49
  kill(addr: Address): Api;
49
50
 
51
+ /**
52
+ * wait on a Future to complete blocking the actor until it does.
53
+ *
54
+ * The blocking only occurs in the VM and not the JS event loop. Errors are
55
+ * propagated through the event handling machinery and any return values
56
+ * are ignored.
57
+ */
58
+ wait(ft: Future<void>) : void
59
+
50
60
  /**
51
61
  * exit instructs the system to kill off this actor.
52
62
  */
@@ -7,29 +7,28 @@ exports.CaseFunction = void 0;
7
7
  * It combines mutliple Case classes into one serving effectively as a pattern
8
8
  * matching function.
9
9
  */
10
- var CaseFunction = /** @class */ (function () {
11
- function CaseFunction(cases) {
10
+ class CaseFunction {
11
+ constructor(cases) {
12
12
  this.cases = cases;
13
13
  }
14
14
  /**
15
15
  * test whether at least one of the underlying Case classes will handle the
16
16
  * Message.
17
17
  */
18
- CaseFunction.prototype.test = function (msg) {
19
- return this.cases.some(function (kase) { return kase.test(msg); });
20
- };
18
+ test(msg) {
19
+ return this.cases.some(kase => kase.test(msg));
20
+ }
21
21
  /**
22
22
  * apply the first Case class that will handle the provided Message.
23
23
  *
24
24
  * Throws if none of them will.
25
25
  */
26
- CaseFunction.prototype.apply = function (msg) {
27
- var kase = this.cases.find(function (kase) { return kase.test(msg); });
26
+ apply(msg) {
27
+ let kase = this.cases.find(kase => kase.test(msg));
28
28
  if (!kase)
29
- throw new Error("CaseFunction: No Case patterns match!");
29
+ throw new Error(`CaseFunction: No Case patterns match!`);
30
30
  return kase.apply(msg);
31
- };
32
- return CaseFunction;
33
- }());
31
+ }
32
+ }
34
33
  exports.CaseFunction = CaseFunction;
35
34
  //# sourceMappingURL=function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"function.js","sourceRoot":"","sources":["function.ts"],"names":[],"mappings":";;;AAIA;;;;;GAKG;AACH;IAEI,sBAAmB,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;IAAI,CAAC;IAExC;;;OAGG;IACH,2BAAI,GAAJ,UAAK,GAAY;QAEb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAd,CAAc,CAAC,CAAC;IAEnD,CAAC;IAED;;;;OAIG;IACH,4BAAK,GAAL,UAAM,GAAY;QAEd,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAd,CAAc,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEpE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE3B,CAAC;IAEL,mBAAC;AAAD,CAAC,AA7BD,IA6BC;AA7BY,oCAAY"}
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["function.ts"],"names":[],"mappings":";;;AAIA;;;;;GAKG;AACH,MAAa,YAAY;IAErB,YAAmB,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;IAAI,CAAC;IAExC;;;OAGG;IACH,IAAI,CAAC,GAAY;QAEb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAEnD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAY;QAEd,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEpE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE3B,CAAC;CAEJ;AA7BD,oCA6BC"}