@jonloucks/contracts-ts 0.3.0 → 0.5.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 (126) hide show
  1. package/api/AutoClose.d.ts +3 -1
  2. package/api/AutoClose.d.ts.map +1 -1
  3. package/api/AutoClose.js +4 -3
  4. package/api/AutoClose.js.map +1 -1
  5. package/api/AutoCloseFactory.d.ts +12 -1
  6. package/api/AutoCloseFactory.d.ts.map +1 -1
  7. package/api/AutoCloseFactory.js +17 -2
  8. package/api/AutoCloseFactory.js.map +1 -1
  9. package/api/AutoOpen.d.ts +4 -1
  10. package/api/AutoOpen.d.ts.map +1 -1
  11. package/api/AutoOpen.js +3 -2
  12. package/api/AutoOpen.js.map +1 -1
  13. package/api/BindStrategy.d.ts +4 -1
  14. package/api/BindStrategy.d.ts.map +1 -1
  15. package/api/BindStrategy.js +3 -2
  16. package/api/BindStrategy.js.map +1 -1
  17. package/api/Contract.d.ts +7 -0
  18. package/api/Contract.d.ts.map +1 -1
  19. package/api/Contract.js +11 -0
  20. package/api/Contract.js.map +1 -1
  21. package/api/ContractException.d.ts +7 -0
  22. package/api/ContractException.d.ts.map +1 -1
  23. package/api/ContractException.js +11 -1
  24. package/api/ContractException.js.map +1 -1
  25. package/api/ContractFactory.d.ts +7 -0
  26. package/api/ContractFactory.d.ts.map +1 -1
  27. package/api/ContractFactory.js +11 -0
  28. package/api/ContractFactory.js.map +1 -1
  29. package/api/Contracts.d.ts +7 -0
  30. package/api/Contracts.d.ts.map +1 -1
  31. package/api/Contracts.js +12 -0
  32. package/api/Contracts.js.map +1 -1
  33. package/api/ContractsFactory.d.ts +7 -0
  34. package/api/ContractsFactory.d.ts.map +1 -1
  35. package/api/ContractsFactory.js +11 -0
  36. package/api/ContractsFactory.js.map +1 -1
  37. package/api/Lawyer.d.ts +1 -0
  38. package/api/Lawyer.d.ts.map +1 -1
  39. package/api/Promisor.d.ts +5 -1
  40. package/api/Promisor.d.ts.map +1 -1
  41. package/api/Promisor.js +6 -4
  42. package/api/Promisor.js.map +1 -1
  43. package/api/PromisorFactory.d.ts +8 -0
  44. package/api/PromisorFactory.d.ts.map +1 -1
  45. package/api/PromisorFactory.js +16 -2
  46. package/api/PromisorFactory.js.map +1 -1
  47. package/api/Repository.d.ts +8 -0
  48. package/api/Repository.d.ts.map +1 -1
  49. package/api/Repository.js +13 -1
  50. package/api/Repository.js.map +1 -1
  51. package/api/RepositoryFactory.d.ts +8 -0
  52. package/api/RepositoryFactory.d.ts.map +1 -1
  53. package/api/RepositoryFactory.js +16 -2
  54. package/api/RepositoryFactory.js.map +1 -1
  55. package/auxiliary/AtomicBoolean.d.ts +12 -0
  56. package/auxiliary/AtomicBoolean.d.ts.map +1 -1
  57. package/auxiliary/AtomicBoolean.js +13 -1
  58. package/auxiliary/AtomicBoolean.js.map +1 -1
  59. package/auxiliary/AtomicBooleanFactory.d.ts +12 -1
  60. package/auxiliary/AtomicBooleanFactory.d.ts.map +1 -1
  61. package/auxiliary/AtomicBooleanFactory.js +17 -2
  62. package/auxiliary/AtomicBooleanFactory.js.map +1 -1
  63. package/auxiliary/AtomicInteger.d.ts +12 -0
  64. package/auxiliary/AtomicInteger.d.ts.map +1 -1
  65. package/auxiliary/AtomicInteger.js +13 -1
  66. package/auxiliary/AtomicInteger.js.map +1 -1
  67. package/auxiliary/AtomicIntegerFactory.d.ts +12 -1
  68. package/auxiliary/AtomicIntegerFactory.d.ts.map +1 -1
  69. package/auxiliary/AtomicIntegerFactory.js +17 -2
  70. package/auxiliary/AtomicIntegerFactory.js.map +1 -1
  71. package/auxiliary/AtomicReference.d.ts +11 -0
  72. package/auxiliary/AtomicReference.d.ts.map +1 -1
  73. package/auxiliary/AtomicReference.js +13 -1
  74. package/auxiliary/AtomicReference.js.map +1 -1
  75. package/auxiliary/AtomicReferenceFactory.d.ts +11 -0
  76. package/auxiliary/AtomicReferenceFactory.d.ts.map +1 -1
  77. package/auxiliary/AtomicReferenceFactory.js +17 -2
  78. package/auxiliary/AtomicReferenceFactory.js.map +1 -1
  79. package/impl/AtomicBooleanFactory.impl.js +1 -1
  80. package/impl/AtomicBooleanFactory.impl.js.map +1 -1
  81. package/impl/AtomicIntegerFactory.impl.js +1 -1
  82. package/impl/AtomicIntegerFactory.impl.js.map +1 -1
  83. package/impl/AtomicReferenceFactory.impl.js +1 -1
  84. package/impl/AtomicReferenceFactory.impl.js.map +1 -1
  85. package/impl/AutoCloseFactory.impl.js +2 -2
  86. package/impl/AutoCloseFactory.impl.js.map +1 -1
  87. package/impl/AutoCloseMany.impl.js +1 -1
  88. package/impl/AutoCloseMany.impl.js.map +1 -1
  89. package/impl/AutoCloseOne.impl.js +1 -1
  90. package/impl/AutoCloseOne.impl.js.map +1 -1
  91. package/impl/Contracts.impl.js +5 -5
  92. package/impl/Contracts.impl.js.map +1 -1
  93. package/impl/ContractsFactory.impl.js +8 -8
  94. package/impl/ContractsFactory.impl.js.map +1 -1
  95. package/impl/Events.impl.d.ts +2 -2
  96. package/impl/Events.impl.d.ts.map +1 -1
  97. package/impl/Events.impl.js +1 -1
  98. package/impl/Events.impl.js.map +1 -1
  99. package/impl/Idempotent.impl.d.ts +2 -2
  100. package/impl/Idempotent.impl.d.ts.map +1 -1
  101. package/impl/Idempotent.impl.js +1 -1
  102. package/impl/Idempotent.impl.js.map +1 -1
  103. package/impl/LifeCyclePromisor.impl.d.ts.map +1 -1
  104. package/impl/LifeCyclePromisor.impl.js +5 -5
  105. package/impl/LifeCyclePromisor.impl.js.map +1 -1
  106. package/impl/Policy.impl.d.ts +2 -2
  107. package/impl/Policy.impl.d.ts.map +1 -1
  108. package/impl/PromisorFactory.impl.js +4 -4
  109. package/impl/PromisorFactory.impl.js.map +1 -1
  110. package/impl/Repository.impl.js +2 -2
  111. package/impl/Repository.impl.js.map +1 -1
  112. package/impl/RepositoryFactory.impl.js +1 -1
  113. package/impl/RepositoryFactory.impl.js.map +1 -1
  114. package/impl/SingletonPromisor.impl.d.ts.map +1 -1
  115. package/impl/SingletonPromisor.impl.js +2 -2
  116. package/impl/SingletonPromisor.impl.js.map +1 -1
  117. package/impl/Storage.impl.js +1 -1
  118. package/impl/Storage.impl.js.map +1 -1
  119. package/index.d.ts +3 -3
  120. package/index.d.ts.map +1 -1
  121. package/index.js +7 -6
  122. package/index.js.map +1 -1
  123. package/package.json +3 -2
  124. package/version.d.ts.map +1 -1
  125. package/version.js +17 -4
  126. package/version.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PromisorFactory.js","sourceRoot":"","sources":["../../src/api/PromisorFactory.ts"],"names":[],"mappings":";;;AAGA,mFAAwF;AACxF,6DAAwG;AAkDxG;;GAEG;AACU,QAAA,MAAM,GAA4B,IAAI;IAEjD;;OAEG;IACH,aAAa,CAA4B,QAAiB;QACxD,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;IACxG,CAAC;IAED;;OAEG;IACH,cAAc,CAA4B,MAA0B;QAClE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,iBAAiB,EAAC;QAEpC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACjC,CAAC;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,QAAQ,GAA8B,cAAM,CAAC,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"PromisorFactory.js","sourceRoot":"","sources":["../../src/api/PromisorFactory.ts"],"names":[],"mappings":";;;AA4DA,sBAEC;AA3DD,mFAAwF;AACxF,6DAAwG;AAkDxG;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAiB;IACrC,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;AACxG,CAAC;AAED;;;GAGG;AACU,QAAA,MAAM,GAA4B,IAAI;IAEjD;;OAEG;IACH,aAAa,CAA4B,QAAiB;QACxD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,cAAc,CAA4B,MAA0B;QAClE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,iBAAiB,EAAC;QAEpC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACjC,CAAC;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,QAAQ,GAA8B,IAAA,yBAAc,EAAC;IAChE,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC"}
@@ -48,8 +48,16 @@ export interface Repository extends AutoOpen {
48
48
  */
49
49
  require<T>(contract: Contract<T>): void;
50
50
  }
51
+ /**
52
+ * Type guard for Repository
53
+ *
54
+ * @param value the value to check
55
+ * @return true if value is Repository, false otherwise
56
+ */
57
+ export declare function guard(value: unknown): value is Repository;
51
58
  /**
52
59
  * For creating a Contract for Repository with duck-typing checks.
60
+ * @deprecated use createContract with guard instead
53
61
  */
54
62
  export declare const LAWYER: Lawyer<Repository>;
55
63
  //# sourceMappingURL=Repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/api/Repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,QAAQ,EAA4B,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAIpE;;;;;GAKG;AACH,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAE1C;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IAElG;;;;;;;;;;OAUG;IACH,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAE7F;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,UAAU,CAoBrC,CAAC"}
1
+ {"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/api/Repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAA0B,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,QAAQ,EAA4B,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAIpE;;;;;GAKG;AACH,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAE1C;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IAElG;;;;;;;;;;OAUG;IACH,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAE7F;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACzC;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEzD;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,UAAU,CAoBrC,CAAC"}
package/api/Repository.js CHANGED
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LAWYER = void 0;
4
+ exports.guard = guard;
5
+ const AutoOpen_1 = require("@jonloucks/contracts-ts/api/AutoOpen");
4
6
  const RatifiedContract_1 = require("@jonloucks/contracts-ts/api/RatifiedContract");
5
7
  const Types_1 = require("@jonloucks/contracts-ts/api/Types");
8
+ /**
9
+ * Type guard for Repository
10
+ *
11
+ * @param value the value to check
12
+ * @return true if value is Repository, false otherwise
13
+ */
14
+ function guard(value) {
15
+ return (0, Types_1.hasFunctions)(value, 'store', 'keep', 'check', 'require') && (0, AutoOpen_1.guard)(value);
16
+ }
6
17
  /**
7
18
  * For creating a Contract for Repository with duck-typing checks.
19
+ * @deprecated use createContract with guard instead
8
20
  */
9
21
  exports.LAWYER = new class {
10
22
  /**
11
23
  * Lawyer.isDeliverable override
12
24
  */
13
25
  isDeliverable(instance) {
14
- return (0, Types_1.hasFunctions)(instance, 'store', 'keep', 'check', 'require', 'open');
26
+ return guard(instance);
15
27
  }
16
28
  /**
17
29
  * Lawyer.createContract override
@@ -1 +1 @@
1
- {"version":3,"file":"Repository.js","sourceRoot":"","sources":["../../src/api/Repository.ts"],"names":[],"mappings":";;;AAMA,mFAAwF;AACxF,6DAA+E;AAmD/E;;GAEG;AACU,QAAA,MAAM,GAAuB,IAAI;IAE5C;;OAEG;IACH,aAAa,CAAuB,QAAiB;QACnD,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,cAAc,CAAuB,MAAsC;QACzE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,EAAE,CAAA;QAE7C,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,YAAY,EAAC;QAC/B,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QAEjC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACjC,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"Repository.js","sourceRoot":"","sources":["../../src/api/Repository.ts"],"names":[],"mappings":";;;AAgEA,sBAEC;AAjED,mEAAwF;AAKxF,mFAAwF;AACxF,6DAA+E;AAmD/E;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,KAAc;IAClC,OAAO,IAAA,oBAAY,EAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,IAAA,gBAAa,EAAC,KAAK,CAAC,CAAC;AAC1F,CAAC;AAED;;;GAGG;AACU,QAAA,MAAM,GAAuB,IAAI;IAE5C;;OAEG;IACH,aAAa,CAAuB,QAAiB;QACnD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,cAAc,CAAuB,MAAsC;QACzE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,EAAE,CAAA;QAE7C,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,YAAY,EAAC;QAC/B,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QAEjC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACjC,CAAC;CACF,CAAC"}
@@ -11,8 +11,16 @@ export interface RepositoryFactory {
11
11
  */
12
12
  create(): RequiredType<Repository>;
13
13
  }
14
+ /**
15
+ * Type guard for RepositoryFactory
16
+ *
17
+ * @param value the value to check
18
+ * @return true if value is RepositoryFactory, false otherwise
19
+ */
20
+ export declare function guard(value: unknown): value is RepositoryFactory;
14
21
  /**
15
22
  * For creating a Contract for RepositoryFactory with duck-typing checks.
23
+ * @deprecated use createContract with guard instead
16
24
  */
17
25
  export declare const LAWYER: Lawyer<RepositoryFactory>;
18
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"RepositoryFactory.d.ts","sourceRoot":"","sources":["../../src/api/RepositoryFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA4B,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAgB,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAEhC;;OAEG;IACH,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAoB5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAA2B,CAAC"}
1
+ {"version":3,"file":"RepositoryFactory.d.ts","sourceRoot":"","sources":["../../src/api/RepositoryFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA4B,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAgB,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAEhC;;OAEG;IACH,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAEhE;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAoB5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAG7D,CAAC"}
@@ -1,17 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CONTRACT = exports.LAWYER = void 0;
4
+ exports.guard = guard;
4
5
  const RatifiedContract_1 = require("@jonloucks/contracts-ts/api/RatifiedContract");
5
6
  const Types_1 = require("@jonloucks/contracts-ts/api/Types");
7
+ /**
8
+ * Type guard for RepositoryFactory
9
+ *
10
+ * @param value the value to check
11
+ * @return true if value is RepositoryFactory, false otherwise
12
+ */
13
+ function guard(value) {
14
+ return (0, Types_1.hasFunctions)(value, "create");
15
+ }
6
16
  /**
7
17
  * For creating a Contract for RepositoryFactory with duck-typing checks.
18
+ * @deprecated use createContract with guard instead
8
19
  */
9
20
  exports.LAWYER = new class {
10
21
  /**
11
22
  * Lawyer.isDeliverable override
12
23
  */
13
24
  isDeliverable(instance) {
14
- return (0, Types_1.hasFunctions)(instance, "create");
25
+ return guard(instance);
15
26
  }
16
27
  /**
17
28
  * Lawyer.createContract override
@@ -26,5 +37,8 @@ exports.LAWYER = new class {
26
37
  /**
27
38
  * The factory Contract for creating new Repository instances.
28
39
  */
29
- exports.CONTRACT = exports.LAWYER.createContract();
40
+ exports.CONTRACT = (0, RatifiedContract_1.create)({
41
+ test: guard,
42
+ name: "RepositoryFactory"
43
+ });
30
44
  //# sourceMappingURL=RepositoryFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RepositoryFactory.js","sourceRoot":"","sources":["../../src/api/RepositoryFactory.ts"],"names":[],"mappings":";;;AAEA,mFAAwF;AAExF,6DAA6F;AAa7F;;GAEG;AACU,QAAA,MAAM,GAA8B,IAAI;IAEnD;;OAEG;IACH,aAAa,CAA8B,QAAiB;QAC1D,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,cAAc,CAA8B,MAA0B;QACpE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,mBAAmB,EAAC;QAEtC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACjC,CAAC;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,QAAQ,GAA8C,cAAM,CAAC,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"RepositoryFactory.js","sourceRoot":"","sources":["../../src/api/RepositoryFactory.ts"],"names":[],"mappings":";;;AAuBA,sBAEC;AAvBD,mFAAwF;AAExF,6DAA6F;AAa7F;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,KAAc;IAClC,OAAO,IAAA,oBAAY,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACU,QAAA,MAAM,GAA8B,IAAI;IAEnD;;OAEG;IACH,aAAa,CAA8B,QAAiB;QAC1D,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,cAAc,CAA8B,MAA0B;QACpE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,mBAAmB,EAAC;QAEtC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACjC,CAAC;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,QAAQ,GAA8C,IAAA,yBAAc,EAAC;IAChF,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { Lawyer } from "@jonloucks/contracts-ts/api/Lawyer";
2
+ import { OptionalType } from "@jonloucks/contracts-ts/api/Types";
2
3
  /**
3
4
  * Responsibility: An atomic boolean interface for thread-safe boolean operations.
4
5
  */
@@ -26,8 +27,19 @@ export interface AtomicBoolean {
26
27
  */
27
28
  [Symbol.toPrimitive](hint: string): string | boolean | number;
28
29
  }
30
+ /**
31
+ * Type guard for AtomicBoolean interface.
32
+ *
33
+ * @param instance the instance to check
34
+ * @returns true if the instance implements AtomicBoolean
35
+ */
36
+ export declare function guard(instance: unknown): instance is OptionalType<AtomicBoolean>;
37
+ /** @deprecated use guard instead
38
+ */
39
+ export { guard as isAtomicBoolean };
29
40
  /**
30
41
  * For creating a Contract for AtomicBoolean with duck-typing checks.
42
+ * @deprecated create a contract using typeGuard directly
31
43
  */
32
44
  export declare const LAWYER: Lawyer<AtomicBoolean>;
33
45
  //# sourceMappingURL=AtomicBoolean.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicBoolean.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicBoolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAE1B;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC;IAEf;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7B;;;;;;OAMG;IACH,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;IAElE;;;OAGG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACjE;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,aAAa,CAoBxC,CAAC"}
1
+ {"version":3,"file":"AtomicBoolean.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicBoolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,aAAa;IAE1B;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC;IAEf;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7B;;;;;;OAMG;IACH,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;IAElE;;;OAGG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,aAAa,CAAC,CAEhF;AAED;GACG;AACH,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,CAAA;AAEnC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,aAAa,CAoBxC,CAAC"}
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LAWYER = void 0;
4
+ exports.guard = guard;
5
+ exports.isAtomicBoolean = guard;
4
6
  const RatifiedContract_1 = require("@jonloucks/contracts-ts/api/RatifiedContract");
5
7
  const Types_1 = require("@jonloucks/contracts-ts/api/Types");
8
+ /**
9
+ * Type guard for AtomicBoolean interface.
10
+ *
11
+ * @param instance the instance to check
12
+ * @returns true if the instance implements AtomicBoolean
13
+ */
14
+ function guard(instance) {
15
+ return (0, Types_1.hasFunctions)(instance, "compareAndSet", "get", "set");
16
+ }
6
17
  /**
7
18
  * For creating a Contract for AtomicBoolean with duck-typing checks.
19
+ * @deprecated create a contract using typeGuard directly
8
20
  */
9
21
  exports.LAWYER = new class {
10
22
  /**
11
23
  * Lawyer.isDeliverable override
12
24
  */
13
25
  isDeliverable(instance) {
14
- return (0, Types_1.hasFunctions)(instance, "compareAndSet", "get", "set");
26
+ return guard(instance);
15
27
  }
16
28
  /**
17
29
  * Lawyer.createContract override
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicBoolean.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicBoolean.ts"],"names":[],"mappings":";;;AAEA,mFAAwF;AACxF,6DAA+E;AAkC/E;;GAEG;AACU,QAAA,MAAM,GAA0B,IAAI;IAE7C;;OAEG;IACH,aAAa,CAA0B,QAAiB;QACpD,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,cAAc,CAA0B,MAA0B;QAC9D,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,eAAe,EAAC;QAElC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"AtomicBoolean.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicBoolean.ts"],"names":[],"mappings":";;;AA2CA,sBAEC;AAIiB,gCAAe;AA/CjC,mFAAwF;AACxF,6DAA+E;AAkC/E;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAiB;IACnC,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAMD;;;GAGG;AACU,QAAA,MAAM,GAA0B,IAAI;IAE7C;;OAEG;IACH,aAAa,CAA0B,QAAiB;QACpD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,cAAc,CAA0B,MAA0B;QAC9D,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,eAAe,EAAC;QAElC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Contract } from "@jonloucks/contracts-ts/api/Contract";
2
2
  import { Lawyer } from "@jonloucks/contracts-ts/api/Lawyer";
3
- import { RequiredType } from "@jonloucks/contracts-ts/api/Types";
3
+ import { OptionalType, RequiredType } from "@jonloucks/contracts-ts/api/Types";
4
4
  import { AtomicBoolean } from "@jonloucks/contracts-ts/auxiliary/AtomicBoolean";
5
5
  /**
6
6
  * Factory interface for creating AtomicBoolean instances.
@@ -12,8 +12,19 @@ export interface AtomicBooleanFactory {
12
12
  */
13
13
  create(initialValue?: boolean): RequiredType<AtomicBoolean>;
14
14
  }
15
+ /**
16
+ * Type guard for AtomicBooleanFactory interface.
17
+ *
18
+ * @param instance the instance to check
19
+ * @returns true if the instance implements AtomicBooleanFactory
20
+ */
21
+ export declare function guard(instance: unknown): instance is OptionalType<AtomicBooleanFactory>;
22
+ /** @deprecated use guard instead
23
+ */
24
+ export { guard as isAtomicBooleanFactory };
15
25
  /**
16
26
  * For creating a Contract for AtomicBoolean with duck-typing checks.
27
+ * @deprecated use CONTRACT instead
17
28
  */
18
29
  export declare const LAWYER: Lawyer<AtomicBooleanFactory>;
19
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicBooleanFactory.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicBooleanFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA4B,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAgB,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEjC;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;CAC/D;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAoB/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAA2B,CAAC"}
1
+ {"version":3,"file":"AtomicBooleanFactory.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicBooleanFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA4B,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEnC;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;CAC7D;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,oBAAoB,CAAC,CAEvF;AAED;GACG;AACH,OAAO,EAAE,KAAK,IAAI,sBAAsB,EAAE,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAoB/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAGlD,CAAC"}
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CONTRACT = exports.LAWYER = void 0;
4
+ exports.guard = guard;
5
+ exports.isAtomicBooleanFactory = guard;
4
6
  const RatifiedContract_1 = require("@jonloucks/contracts-ts/api/RatifiedContract");
5
7
  const Types_1 = require("@jonloucks/contracts-ts/api/Types");
8
+ /**
9
+ * Type guard for AtomicBooleanFactory interface.
10
+ *
11
+ * @param instance the instance to check
12
+ * @returns true if the instance implements AtomicBooleanFactory
13
+ */
14
+ function guard(instance) {
15
+ return (0, Types_1.hasFunctions)(instance, "create");
16
+ }
6
17
  /**
7
18
  * For creating a Contract for AtomicBoolean with duck-typing checks.
19
+ * @deprecated use CONTRACT instead
8
20
  */
9
21
  exports.LAWYER = new class {
10
22
  /**
11
23
  * Lawyer.isDeliverable override
12
24
  */
13
25
  isDeliverable(instance) {
14
- return (0, Types_1.hasFunctions)(instance, "create");
26
+ return guard(instance);
15
27
  }
16
28
  /**
17
29
  * Lawyer.createContract override
@@ -26,5 +38,8 @@ exports.LAWYER = new class {
26
38
  /**
27
39
  * The factory Contract for creating new AtomicBoolean instances.
28
40
  */
29
- exports.CONTRACT = exports.LAWYER.createContract();
41
+ exports.CONTRACT = (0, RatifiedContract_1.create)({
42
+ test: guard,
43
+ name: "AtomicBooleanFactory"
44
+ });
30
45
  //# sourceMappingURL=AtomicBooleanFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicBooleanFactory.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicBooleanFactory.ts"],"names":[],"mappings":";;;AAEA,mFAAwF;AACxF,6DAA6F;AAe7F;;GAEG;AACU,QAAA,MAAM,GAAiC,IAAI;IAEpD;;OAEG;IACH,aAAa,CAAiC,QAAiB;QAC3D,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,cAAc,CAAiC,MAA0B;QACrE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,sBAAsB,EAAC;QAEzC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAC;AAEF;;GAEG;AACU,QAAA,QAAQ,GAAmC,cAAM,CAAC,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"AtomicBooleanFactory.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicBooleanFactory.ts"],"names":[],"mappings":";;;AAwBA,sBAEC;AAIiB,uCAAsB;AA5BxC,mFAAwF;AACxF,6DAA6F;AAe7F;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAiB;IACrC,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAMD;;;GAGG;AACU,QAAA,MAAM,GAAiC,IAAI;IAEtD;;OAEG;IACH,aAAa,CAAiC,QAAiB;QAC7D,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,cAAc,CAAiC,MAA0B;QACvE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,sBAAsB,EAAC;QAEzC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACjC,CAAC;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,QAAQ,GAAmC,IAAA,yBAAc,EAAC;IACrE,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { Lawyer } from "@jonloucks/contracts-ts/api/Lawyer";
2
+ import { OptionalType } from "@jonloucks/contracts-ts/api/Types";
2
3
  /**
3
4
  * Responsibility: An atomic integer interface for thread-safe integer operations.
4
5
  */
@@ -35,8 +36,19 @@ export interface AtomicInteger {
35
36
  */
36
37
  [Symbol.toPrimitive](hint: string): string | number | boolean;
37
38
  }
39
+ /**
40
+ * Type guard for AtomicInteger interface.
41
+ *
42
+ * @param instance the instance to check
43
+ * @returns true if the instance implements AtomicInteger
44
+ */
45
+ export declare function guard(instance: unknown): instance is OptionalType<AtomicInteger>;
46
+ /** @deprecated use guard instead
47
+ */
48
+ export { guard as isAtomicInteger };
38
49
  /**
39
50
  * For creating a Contract for AtomicInteger with duck-typing checks.
51
+ * @deprecated create a contract using guard directly
40
52
  */
41
53
  export declare const LAWYER: Lawyer<AtomicInteger>;
42
54
  //# sourceMappingURL=AtomicInteger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicInteger.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicInteger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAE1B;;OAEG;IACH,GAAG,IAAI,MAAM,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhE;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACjE;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,aAAa,CAoBxC,CAAC"}
1
+ {"version":3,"file":"AtomicInteger.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicInteger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,aAAa;IAE1B;;OAEG;IACH,GAAG,IAAI,MAAM,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhE;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,aAAa,CAAC,CAEhF;AAED;GACG;AACH,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,CAAA;AAEnC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,aAAa,CAoBxC,CAAC"}
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LAWYER = void 0;
4
+ exports.guard = guard;
5
+ exports.isAtomicInteger = guard;
4
6
  const RatifiedContract_1 = require("@jonloucks/contracts-ts/api/RatifiedContract");
5
7
  const Types_1 = require("@jonloucks/contracts-ts/api/Types");
8
+ /**
9
+ * Type guard for AtomicInteger interface.
10
+ *
11
+ * @param instance the instance to check
12
+ * @returns true if the instance implements AtomicInteger
13
+ */
14
+ function guard(instance) {
15
+ return (0, Types_1.hasFunctions)(instance, "compareAndSet", "incrementAndGet", "decrementAndGet", "get", "set");
16
+ }
6
17
  /**
7
18
  * For creating a Contract for AtomicInteger with duck-typing checks.
19
+ * @deprecated create a contract using guard directly
8
20
  */
9
21
  exports.LAWYER = new class {
10
22
  /**
11
23
  * Lawyer.isDeliverable override
12
24
  */
13
25
  isDeliverable(instance) {
14
- return (0, Types_1.hasFunctions)(instance, "compareAndSet", "incrementAndGet", "decrementAndGet", "get", "set");
26
+ return guard(instance);
15
27
  }
16
28
  /**
17
29
  * Lawyer.createContract override
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicInteger.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicInteger.ts"],"names":[],"mappings":";;;AAEA,mFAAwF;AACxF,6DAA+E;AA6C/E;;GAEG;AACU,QAAA,MAAM,GAA0B,IAAI;IAE7C;;OAEG;IACH,aAAa,CAA0B,QAAiB;QACpD,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvG,CAAC;IAED;;OAEG;IACH,cAAc,CAA0B,MAA0B;QAC9D,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,eAAe,EAAC;QAElC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"AtomicInteger.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicInteger.ts"],"names":[],"mappings":";;;AAsDA,sBAEC;AAIiB,gCAAe;AA1DjC,mFAAwF;AACxF,6DAA+E;AA6C/E;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAiB;IACnC,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACvG,CAAC;AAMD;;;GAGG;AACU,QAAA,MAAM,GAA0B,IAAI;IAE7C;;OAEG;IACH,aAAa,CAA0B,QAAiB;QACpD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,cAAc,CAA0B,MAA0B;QAC9D,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,eAAe,EAAC;QAElC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Contract } from "@jonloucks/contracts-ts/api/Contract";
2
2
  import { Lawyer } from "@jonloucks/contracts-ts/api/Lawyer";
3
- import { RequiredType } from "@jonloucks/contracts-ts/api/Types";
3
+ import { OptionalType, RequiredType } from "@jonloucks/contracts-ts/api/Types";
4
4
  import { AtomicInteger } from "@jonloucks/contracts-ts/auxiliary/AtomicInteger";
5
5
  /**
6
6
  * Factory interface for creating AtomicInteger instances.
@@ -12,8 +12,19 @@ export interface AtomicIntegerFactory {
12
12
  */
13
13
  create(initialValue?: number): RequiredType<AtomicInteger>;
14
14
  }
15
+ /**
16
+ * Type guard for AtomicIntegerFactory interface.
17
+ *
18
+ * @param instance the instance to check
19
+ * @returns true if the instance implements AtomicIntegerFactory
20
+ */
21
+ export declare function guard(instance: unknown): instance is OptionalType<AtomicIntegerFactory>;
22
+ /** @deprecated use guard instead
23
+ */
24
+ export { guard as isAtomicIntegerFactory };
15
25
  /**
16
26
  * For creating a Contract for AtomicInteger with duck-typing checks.
27
+ * @deprecated use createContract instead with guard
17
28
  */
18
29
  export declare const LAWYER: Lawyer<AtomicIntegerFactory>;
19
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicIntegerFactory.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicIntegerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA4B,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAgB,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEjC;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAoB/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAA2B,CAAC"}
1
+ {"version":3,"file":"AtomicIntegerFactory.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicIntegerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA4B,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEjC;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;CAC9D;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,oBAAoB,CAAC,CAEvF;AAED;GACG;AACH,OAAO,EAAE,KAAK,IAAI,sBAAsB,EAAE,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAoB/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAGlD,CAAC"}
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CONTRACT = exports.LAWYER = void 0;
4
+ exports.guard = guard;
5
+ exports.isAtomicIntegerFactory = guard;
4
6
  const RatifiedContract_1 = require("@jonloucks/contracts-ts/api/RatifiedContract");
5
7
  const Types_1 = require("@jonloucks/contracts-ts/api/Types");
8
+ /**
9
+ * Type guard for AtomicIntegerFactory interface.
10
+ *
11
+ * @param instance the instance to check
12
+ * @returns true if the instance implements AtomicIntegerFactory
13
+ */
14
+ function guard(instance) {
15
+ return (0, Types_1.hasFunctions)(instance, 'create');
16
+ }
6
17
  /**
7
18
  * For creating a Contract for AtomicInteger with duck-typing checks.
19
+ * @deprecated use createContract instead with guard
8
20
  */
9
21
  exports.LAWYER = new class {
10
22
  /**
11
23
  * Lawyer.isDeliverable override
12
24
  */
13
25
  isDeliverable(instance) {
14
- return (0, Types_1.hasFunctions)(instance, 'create');
26
+ return guard(instance);
15
27
  }
16
28
  /**
17
29
  * Lawyer.createContract override
@@ -26,5 +38,8 @@ exports.LAWYER = new class {
26
38
  /**
27
39
  * The factory Contract for creating new AtomicInteger instances.
28
40
  */
29
- exports.CONTRACT = exports.LAWYER.createContract();
41
+ exports.CONTRACT = (0, RatifiedContract_1.create)({
42
+ test: guard,
43
+ name: "AtomicIntegerFactory"
44
+ });
30
45
  //# sourceMappingURL=AtomicIntegerFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicIntegerFactory.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicIntegerFactory.ts"],"names":[],"mappings":";;;AAEA,mFAAwF;AACxF,6DAA6F;AAe7F;;GAEG;AACU,QAAA,MAAM,GAAiC,IAAI;IAEpD;;OAEG;IACH,aAAa,CAAiC,QAAiB;QAC3D,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,cAAc,CAAiC,MAA0B;QACrE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,sBAAsB,EAAC;QAEzC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAC;AAEF;;GAEG;AACU,QAAA,QAAQ,GAAmC,cAAM,CAAC,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"AtomicIntegerFactory.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicIntegerFactory.ts"],"names":[],"mappings":";;;AAwBA,sBAEC;AAIiB,uCAAsB;AA5BxC,mFAAwF;AACxF,6DAA6F;AAe7F;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAiB;IACnC,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAMD;;;GAGG;AACU,QAAA,MAAM,GAAiC,IAAI;IAEpD;;OAEG;IACH,aAAa,CAAiC,QAAiB;QAC3D,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,cAAc,CAAiC,MAA0B;QACrE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,sBAAsB,EAAC;QAEzC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAC;AAEF;;GAEG;AACU,QAAA,QAAQ,GAAmC,IAAA,yBAAc,EAAC;IACnE,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,sBAAsB;CAC/B,CAAC,CAAC"}
@@ -22,8 +22,19 @@ export interface AtomicReference<T> {
22
22
  */
23
23
  compareAndSet(expectedValue: OptionalType<T>, newValue: OptionalType<T>): boolean;
24
24
  }
25
+ /**
26
+ * Type guard for AtomicReference interface.
27
+ *
28
+ * @param instance the instance to check
29
+ * @returns true if the instance implements AtomicReference
30
+ */
31
+ export declare function guard<T>(instance: unknown): instance is OptionalType<AtomicReference<T>>;
32
+ /** @deprecated use guard instead
33
+ */
34
+ export { guard as isAtomicReference };
25
35
  /**
26
36
  * For creating a Contract for AtomicReference with duck-typing checks.
37
+ * @deprecated create a contract using typeGuard directly
27
38
  */
28
39
  export declare const LAWYER: Lawyer<AtomicReference<unknown>>;
29
40
  //# sourceMappingURL=AtomicReference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicReference.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicReference.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAE/E;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAE9B;;OAEG;IACH,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAEvB;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAEpC;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CACrF;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAoBnD,CAAA"}
1
+ {"version":3,"file":"AtomicReference.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicReference.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAE/E;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAE9B;;OAEG;IACH,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAEvB;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAEpC;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CACrF;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAExF;AAED;GACG;AACH,OAAO,EAAE,KAAK,IAAI,iBAAiB,EAAE,CAAA;AAErC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAoBnD,CAAA"}
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LAWYER = void 0;
4
+ exports.guard = guard;
5
+ exports.isAtomicReference = guard;
4
6
  const RatifiedContract_1 = require("@jonloucks/contracts-ts/api/RatifiedContract");
5
7
  const Types_1 = require("@jonloucks/contracts-ts/api/Types");
8
+ /**
9
+ * Type guard for AtomicReference interface.
10
+ *
11
+ * @param instance the instance to check
12
+ * @returns true if the instance implements AtomicReference
13
+ */
14
+ function guard(instance) {
15
+ return (0, Types_1.hasFunctions)(instance, "compareAndSet", "get", "set");
16
+ }
6
17
  /**
7
18
  * For creating a Contract for AtomicReference with duck-typing checks.
19
+ * @deprecated create a contract using typeGuard directly
8
20
  */
9
21
  exports.LAWYER = new class {
10
22
  /**
11
23
  * Lawyer.isDeliverable override
12
24
  */
13
25
  isDeliverable(instance) {
14
- return (0, Types_1.hasFunctions)(instance, "compareAndSet", "get", "set");
26
+ return guard(instance);
15
27
  }
16
28
  /**
17
29
  * Lawyer.createContract override
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicReference.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicReference.ts"],"names":[],"mappings":";;;AAEA,mFAAwF;AACxF,6DAA+E;AA4B/E;;GAEG;AACU,QAAA,MAAM,GAAqC,IAAI;IAExD;;OAEG;IACH,aAAa,CAAqC,QAAiB;QAC/D,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,cAAc,CAAqC,MAA0B;QACzE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,iBAAiB,EAAC;QAEpC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAA"}
1
+ {"version":3,"file":"AtomicReference.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicReference.ts"],"names":[],"mappings":";;;AAqCA,sBAEC;AAIiB,kCAAiB;AAzCnC,mFAAwF;AACxF,6DAA+E;AA4B/E;;;;;GAKG;AACH,SAAgB,KAAK,CAAI,QAAiB;IACtC,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAMD;;;GAGG;AACU,QAAA,MAAM,GAAqC,IAAI;IAExD;;OAEG;IACH,aAAa,CAAqC,QAAiB;QAC/D,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,cAAc,CAAqC,MAA0B;QACzE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,iBAAiB,EAAC;QAEpC,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAA"}
@@ -12,8 +12,19 @@ export interface AtomicReferenceFactory {
12
12
  */
13
13
  create<T>(intialValue?: OptionalType<T>): RequiredType<AtomicReference<T>>;
14
14
  }
15
+ /**
16
+ * Type guard for AtomicReferenceFactory interface.
17
+ *
18
+ * @param instance the instance to check
19
+ * @returns true if the instance implements AtomicReferenceFactory
20
+ */
21
+ export declare function guard(instance: unknown): instance is OptionalType<AtomicReferenceFactory>;
22
+ /** @deprecated use guard instead
23
+ */
24
+ export { guard as isAtomicReferenceFactory };
15
25
  /**
16
26
  * For creating a Contract for AtomicReferenceFactory with duck-typing checks.
27
+ * @deprecated use createContract with guard instead
17
28
  */
18
29
  export declare const LAWYER: Lawyer<AtomicReferenceFactory>;
19
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicReferenceFactory.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicReferenceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA4B,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IAEnC;;;OAGG;IACH,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,sBAAsB,CAoBjD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,sBAAsB,CAA2B,CAAC"}
1
+ {"version":3,"file":"AtomicReferenceFactory.d.ts","sourceRoot":"","sources":["../../src/auxiliary/AtomicReferenceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA4B,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAgB,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IAEnC;;;OAGG;IACH,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,sBAAsB,CAAC,CAEzF;AAED;GACG;AACH,OAAO,EAAE,KAAK,IAAI,wBAAwB,EAAE,CAAA;AAC5C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,sBAAsB,CAoBjD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,sBAAsB,CAGpD,CAAC"}
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CONTRACT = exports.LAWYER = void 0;
4
+ exports.guard = guard;
5
+ exports.isAtomicReferenceFactory = guard;
4
6
  const RatifiedContract_1 = require("@jonloucks/contracts-ts/api/RatifiedContract");
5
7
  const Types_1 = require("@jonloucks/contracts-ts/api/Types");
8
+ /**
9
+ * Type guard for AtomicReferenceFactory interface.
10
+ *
11
+ * @param instance the instance to check
12
+ * @returns true if the instance implements AtomicReferenceFactory
13
+ */
14
+ function guard(instance) {
15
+ return (0, Types_1.hasFunctions)(instance, "create");
16
+ }
6
17
  /**
7
18
  * For creating a Contract for AtomicReferenceFactory with duck-typing checks.
19
+ * @deprecated use createContract with guard instead
8
20
  */
9
21
  exports.LAWYER = new class {
10
22
  /**
11
23
  * Lawyer.isDeliverable override
12
24
  */
13
25
  isDeliverable(instance) {
14
- return (0, Types_1.hasFunctions)(instance, "create");
26
+ return guard(instance);
15
27
  }
16
28
  /**
17
29
  * Lawyer.createContract override
@@ -26,5 +38,8 @@ exports.LAWYER = new class {
26
38
  /**
27
39
  * The factory Contract for creating new AtomicReference instances.
28
40
  */
29
- exports.CONTRACT = exports.LAWYER.createContract();
41
+ exports.CONTRACT = (0, RatifiedContract_1.create)({
42
+ test: guard,
43
+ name: "AtomicReferenceFactory"
44
+ });
30
45
  //# sourceMappingURL=AtomicReferenceFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicReferenceFactory.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicReferenceFactory.ts"],"names":[],"mappings":";;;AAEA,mFAAwF;AACxF,6DAA6F;AAe7F;;GAEG;AACU,QAAA,MAAM,GAAmC,IAAI;IAEtD;;OAEG;IACH,aAAa,CAAmC,QAAiB;QAC7D,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,cAAc,CAAmC,MAA0B;QACvE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,wBAAwB,EAAC;QAE3C,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAA;AAED;;GAEG;AACU,QAAA,QAAQ,GAAqC,cAAM,CAAC,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"AtomicReferenceFactory.js","sourceRoot":"","sources":["../../src/auxiliary/AtomicReferenceFactory.ts"],"names":[],"mappings":";;;AAwBA,sBAEC;AAIiB,yCAAwB;AA5B1C,mFAAwF;AACxF,6DAA6F;AAe7F;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAiB;IACnC,OAAO,IAAA,oBAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAKD;;;GAGG;AACU,QAAA,MAAM,GAAmC,IAAI;IAEtD;;OAEG;IACH,aAAa,CAAmC,QAAiB;QAC7D,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,cAAc,CAAmC,MAA0B;QACvE,MAAM,IAAI,GAAsB,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;QAEpD,IAAI,CAAC,IAAI,KAAT,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC,aAAa,EAAC;QACjC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,wBAAwB,EAAC;QAE3C,OAAO,IAAA,yBAAc,EAAI,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ,CAAA;AAED;;GAEG;AACU,QAAA,QAAQ,GAAqC,IAAA,yBAAc,EAAC;IACrE,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,wBAAwB;CACjC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.create = create;
4
- const AtomicBoolean_impl_1 = require("@jonloucks/contracts-ts/impl/AtomicBoolean.impl");
4
+ const AtomicBoolean_impl_1 = require("./AtomicBoolean.impl");
5
5
  /**
6
6
  * Factory method to create an AtomicBooleanFactory
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicBooleanFactory.impl.js","sourceRoot":"","sources":["../../src/impl/AtomicBooleanFactory.impl.ts"],"names":[],"mappings":";;AAWA,wBAEC;AATD,wFAAgG;AAEhG;;;;GAIG;AACH,SAAgB,MAAM;IACpB,OAAO,wBAAwB,CAAC,cAAc,EAAE,CAAC;AACnD,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,MAAM,wBAAwB;IAE5B;;OAEG;IACH,MAAM,CAAC,YAAsB;QAC3B,OAAO,IAAA,2BAAmB,EAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED;IACA,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,wBAAwB,EAAE,CAAC;IACxC,CAAC;CACF;AAAA,CAAC"}
1
+ {"version":3,"file":"AtomicBooleanFactory.impl.js","sourceRoot":"","sources":["../../src/impl/AtomicBooleanFactory.impl.ts"],"names":[],"mappings":";;AAWA,wBAEC;AATD,6DAAqE;AAErE;;;;GAIG;AACH,SAAgB,MAAM;IACpB,OAAO,wBAAwB,CAAC,cAAc,EAAE,CAAC;AACnD,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,MAAM,wBAAwB;IAE5B;;OAEG;IACH,MAAM,CAAC,YAAsB;QAC3B,OAAO,IAAA,2BAAmB,EAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED;IACA,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,wBAAwB,EAAE,CAAC;IACxC,CAAC;CACF;AAAA,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.create = create;
4
- const AtomicInteger_impl_1 = require("@jonloucks/contracts-ts/impl/AtomicInteger.impl");
4
+ const AtomicInteger_impl_1 = require("./AtomicInteger.impl");
5
5
  /**
6
6
  * Factory method to create an AtomicIntegerFactory
7
7
  *