@e280/stz 0.0.0-2 → 0.0.0-21

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 (148) hide show
  1. package/README.md +170 -0
  2. package/package.json +9 -5
  3. package/s/clone/clone.test.ts +123 -123
  4. package/s/coalesce.ts +6 -0
  5. package/s/data/base-x.ts +164 -0
  6. package/s/data/base58.ts +15 -5
  7. package/s/data/base64.ts +15 -6
  8. package/s/data/base64url.ts +15 -6
  9. package/s/data/bytename/bytename.test.ts +49 -0
  10. package/s/data/{barname/barname.ts → bytename/bytename.ts} +38 -10
  11. package/s/data/bytename/index.ts +4 -0
  12. package/s/data/bytename/thumbprint.test.ts +53 -0
  13. package/s/data/bytename/thumbprint.ts +112 -0
  14. package/s/data/bytes.ts +12 -2
  15. package/s/data/data.test.ts +93 -0
  16. package/s/data/hex.ts +15 -5
  17. package/s/data/txt.ts +14 -4
  18. package/s/deadline.ts +7 -4
  19. package/s/debounce/debounce.test.ts +73 -73
  20. package/s/deep/deep.test.ts +8 -8
  21. package/s/deep/parts/equal.test.ts +123 -124
  22. package/s/{defer-promise.ts → defer.ts} +2 -2
  23. package/s/drill.ts +20 -0
  24. package/s/id-counter.ts +9 -0
  25. package/s/index.ts +12 -2
  26. package/s/is.ts +10 -4
  27. package/s/loopy.ts +12 -0
  28. package/s/map-g.ts +2 -2
  29. package/s/nap.ts +1 -0
  30. package/s/pubsub.ts +20 -2
  31. package/s/tests.test.ts +19 -0
  32. package/x/clone/clone.test.d.ts +15 -1
  33. package/x/clone/clone.test.js +106 -124
  34. package/x/clone/clone.test.js.map +1 -1
  35. package/x/coalesce.d.ts +2 -0
  36. package/x/coalesce.js +5 -0
  37. package/x/coalesce.js.map +1 -0
  38. package/x/data/base-x.d.ts +44 -0
  39. package/x/data/base-x.js +142 -0
  40. package/x/data/base-x.js.map +1 -0
  41. package/x/data/base58.d.ts +5 -1
  42. package/x/data/base58.js +13 -5
  43. package/x/data/base58.js.map +1 -1
  44. package/x/data/base64.d.ts +7 -3
  45. package/x/data/base64.js +13 -5
  46. package/x/data/base64.js.map +1 -1
  47. package/x/data/base64url.d.ts +5 -1
  48. package/x/data/base64url.js +13 -5
  49. package/x/data/base64url.js.map +1 -1
  50. package/x/data/bytename/bytename.d.ts +19 -0
  51. package/x/data/{barname/barname.js → bytename/bytename.js} +27 -11
  52. package/x/data/bytename/bytename.js.map +1 -0
  53. package/x/data/bytename/bytename.test.d.ts +17 -0
  54. package/x/data/bytename/bytename.test.js +41 -0
  55. package/x/data/bytename/bytename.test.js.map +1 -0
  56. package/x/data/bytename/index.d.ts +2 -0
  57. package/x/data/bytename/index.js +3 -0
  58. package/x/data/bytename/index.js.map +1 -0
  59. package/x/data/bytename/thumbprint.d.ts +36 -0
  60. package/x/data/bytename/thumbprint.js +79 -0
  61. package/x/data/bytename/thumbprint.js.map +1 -0
  62. package/x/data/bytename/thumbprint.test.d.ts +24 -0
  63. package/x/data/bytename/thumbprint.test.js +45 -0
  64. package/x/data/bytename/thumbprint.test.js.map +1 -0
  65. package/x/data/bytename/utils/prefixes.js.map +1 -0
  66. package/x/data/bytename/utils/suffixes.js.map +1 -0
  67. package/x/data/bytes.d.ts +3 -2
  68. package/x/data/bytes.js +11 -2
  69. package/x/data/bytes.js.map +1 -1
  70. package/x/data/data.test.d.ts +68 -0
  71. package/x/data/data.test.js +72 -0
  72. package/x/data/data.test.js.map +1 -0
  73. package/x/data/hex.d.ts +8 -4
  74. package/x/data/hex.js +13 -5
  75. package/x/data/hex.js.map +1 -1
  76. package/x/data/txt.d.ts +6 -2
  77. package/x/data/txt.js +12 -4
  78. package/x/data/txt.js.map +1 -1
  79. package/x/deadline.d.ts +3 -2
  80. package/x/deadline.js +8 -4
  81. package/x/deadline.js.map +1 -1
  82. package/x/debounce/debounce.test.d.ts +8 -1
  83. package/x/debounce/debounce.test.js +70 -74
  84. package/x/debounce/debounce.test.js.map +1 -1
  85. package/x/deep/deep.test.d.ts +21 -1
  86. package/x/deep/deep.test.js +5 -9
  87. package/x/deep/deep.test.js.map +1 -1
  88. package/x/deep/parts/equal.test.d.ts +19 -1
  89. package/x/deep/parts/equal.test.js +107 -125
  90. package/x/deep/parts/equal.test.js.map +1 -1
  91. package/x/{defer-promise.d.ts → defer.d.ts} +2 -2
  92. package/x/{defer-promise.js → defer.js} +2 -2
  93. package/x/defer.js.map +1 -0
  94. package/x/drill.d.ts +4 -0
  95. package/x/drill.js +12 -0
  96. package/x/drill.js.map +1 -0
  97. package/x/id-counter.d.ts +5 -0
  98. package/x/id-counter.js +10 -0
  99. package/x/id-counter.js.map +1 -0
  100. package/x/index.d.ts +10 -2
  101. package/x/index.js +10 -2
  102. package/x/index.js.map +1 -1
  103. package/x/is.d.ts +6 -4
  104. package/x/is.js +6 -4
  105. package/x/is.js.map +1 -1
  106. package/x/loopy.d.ts +2 -0
  107. package/x/loopy.js +10 -0
  108. package/x/loopy.js.map +1 -0
  109. package/x/map-g.d.ts +3 -3
  110. package/x/map-g.js +1 -1
  111. package/x/map-g.js.map +1 -1
  112. package/x/nap.d.ts +1 -0
  113. package/x/nap.js +1 -0
  114. package/x/nap.js.map +1 -1
  115. package/x/pubsub.d.ts +11 -0
  116. package/x/pubsub.js +4 -2
  117. package/x/pubsub.js.map +1 -1
  118. package/x/tests.test.js +16 -0
  119. package/x/tests.test.js.map +1 -0
  120. package/readme.md +0 -85
  121. package/s/data/anka.ts +0 -66
  122. package/s/data/barname/badge.ts +0 -78
  123. package/s/data/barname/demo.ts +0 -49
  124. package/s/data/barname/index.ts +0 -4
  125. package/x/data/anka.d.ts +0 -5
  126. package/x/data/anka.js +0 -53
  127. package/x/data/anka.js.map +0 -1
  128. package/x/data/barname/badge.d.ts +0 -25
  129. package/x/data/barname/badge.js +0 -64
  130. package/x/data/barname/badge.js.map +0 -1
  131. package/x/data/barname/barname.d.ts +0 -7
  132. package/x/data/barname/barname.js.map +0 -1
  133. package/x/data/barname/demo.js +0 -45
  134. package/x/data/barname/demo.js.map +0 -1
  135. package/x/data/barname/index.d.ts +0 -2
  136. package/x/data/barname/index.js +0 -3
  137. package/x/data/barname/index.js.map +0 -1
  138. package/x/data/barname/utils/prefixes.js.map +0 -1
  139. package/x/data/barname/utils/suffixes.js.map +0 -1
  140. package/x/defer-promise.js.map +0 -1
  141. /package/{license → LICENSE} +0 -0
  142. /package/s/data/{barname → bytename}/utils/prefixes.ts +0 -0
  143. /package/s/data/{barname → bytename}/utils/suffixes.ts +0 -0
  144. /package/x/data/{barname → bytename}/utils/prefixes.d.ts +0 -0
  145. /package/x/data/{barname → bytename}/utils/prefixes.js +0 -0
  146. /package/x/data/{barname → bytename}/utils/suffixes.d.ts +0 -0
  147. /package/x/data/{barname → bytename}/utils/suffixes.js +0 -0
  148. /package/x/{data/barname/demo.d.ts → tests.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"equal.test.js","sourceRoot":"","sources":["../../../s/deep/parts/equal.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,sCAAsC;AACtC,uCAAuC;AACvC,EAAE;AACF,0BAA0B;AAC1B,EAAE;AACF,uCAAuC;AACvC,6CAA6C;AAC7C,iDAAiD;AACjD,+CAA+C;AAC/C,gDAAgD;AAChD,6CAA6C;AAC7C,MAAM;AACN,EAAE;AACF,8BAA8B;AAC9B,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;AAC7B,mDAAmD;AACnD,oDAAoD;AACpD,MAAM;AACN,EAAE;AACF,qCAAqC;AACrC,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C,+CAA+C;AAC/C,gDAAgD;AAChD,MAAM;AACN,EAAE;AACF,sCAAsC;AACtC,0EAA0E;AAC1E,0EAA0E;AAC1E,0EAA0E;AAC1E,+CAA+C;AAC/C,gDAAgD;AAChD,MAAM;AACN,EAAE;AACF,wCAAwC;AACxC,+DAA+D;AAC/D,+DAA+D;AAC/D,gEAAgE;AAChE,+CAA+C;AAC/C,gDAAgD;AAChD,MAAM;AACN,EAAE;AACF,0CAA0C;AAC1C,+CAA+C;AAC/C,yDAAyD;AACzD,qDAAqD;AACrD,MAAM;AACN,EAAE;AACF,0CAA0C;AAC1C,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD,+CAA+C;AAC/C,gDAAgD;AAChD,MAAM;AACN,EAAE;AACF,wCAAwC;AACxC,mCAAmC;AACnC,mCAAmC;AACnC,sBAAsB;AACtB,sBAAsB;AACtB,iDAAiD;AACjD,MAAM;AACN,EAAE;AACF,gDAAgD;AAChD,0BAA0B;AAC1B,kCAAkC;AAClC,kCAAkC;AAClC,0CAA0C;AAC1C,+CAA+C;AAC/C,gDAAgD;AAChD,MAAM;AACN,EAAE;AACF,sBAAsB;AACtB,6BAA6B;AAC7B,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,gDAAgD;AAChD,iDAAiD;AACjD,OAAO;AACP,EAAE;AACF,6BAA6B;AAC7B,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,gDAAgD;AAChD,iDAAiD;AACjD,OAAO;AACP,EAAE;AACF,6CAA6C;AAC7C,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,gDAAgD;AAChD,iDAAiD;AACjD,OAAO;AACP,EAAE;AACF,2CAA2C;AAC3C,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,gDAAgD;AAChD,iDAAiD;AACjD,OAAO;AACP,EAAE;AACF,mCAAmC;AACnC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,qDAAqD;AACrD,qDAAqD;AACrD,0DAA0D;AAC1D,0DAA0D;AAC1D,0DAA0D;AAC1D,OAAO;AACP,MAAM;AACN,IAAI;AACJ,EAAE"}
1
+ {"version":3,"file":"equal.test.js","sourceRoot":"","sources":["../../../s/deep/parts/equal.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /** a promise which can be resolved from the outside */
2
- export type DeferredPromise<R> = {
2
+ export type Deferred<R> = {
3
3
  promise: Promise<R>;
4
4
  resolve: (result: R) => void;
5
5
  reject: (reason: any) => void;
@@ -7,4 +7,4 @@ export type DeferredPromise<R> = {
7
7
  entangle: (outsidePromise: Promise<R>) => Promise<R>;
8
8
  };
9
9
  /** returns a deferred promise with exposed resolve and reject fns */
10
- export declare function deferPromise<R>(): DeferredPromise<R>;
10
+ export declare function defer<R>(): Deferred<R>;
@@ -1,5 +1,5 @@
1
1
  /** returns a deferred promise with exposed resolve and reject fns */
2
- export function deferPromise() {
2
+ export function defer() {
3
3
  let resolve;
4
4
  let reject;
5
5
  const promise = new Promise((res, rej) => {
@@ -12,4 +12,4 @@ export function deferPromise() {
12
12
  }
13
13
  return { promise, resolve, reject, entangle };
14
14
  }
15
- //# sourceMappingURL=defer-promise.js.map
15
+ //# sourceMappingURL=defer.js.map
package/x/defer.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defer.js","sourceRoot":"","sources":["../s/defer.ts"],"names":[],"mappings":"AAWA,qEAAqE;AACrE,MAAM,UAAU,KAAK;IACpB,IAAI,OAA6B,CAAA;IACjC,IAAI,MAA8B,CAAA;IAElC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,OAAO,GAAG,GAAG,CAAA;QACb,MAAM,GAAG,GAAG,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,SAAS,QAAQ,CAAC,OAAmB;QACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,OAAO,OAAO,CAAA;IACf,CAAC;IAED,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAA;AAC5C,CAAC"}
package/x/drill.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ /** return a value within an object tree, found at the given path. */
2
+ export declare function drill<xResult>(object: {
3
+ [key: string]: any;
4
+ }, path: string[]): xResult;
package/x/drill.js ADDED
@@ -0,0 +1,12 @@
1
+ import { is } from "./is.js";
2
+ /** return a value within an object tree, found at the given path. */
3
+ export function drill(object, path) {
4
+ let current = object;
5
+ for (const key of path) {
6
+ current = current[key];
7
+ if (is.unset(current))
8
+ break;
9
+ }
10
+ return current;
11
+ }
12
+ //# sourceMappingURL=drill.js.map
package/x/drill.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drill.js","sourceRoot":"","sources":["../s/drill.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,EAAE,EAAC,MAAM,SAAS,CAAA;AAE1B,qEAAqE;AACrE,MAAM,UAAU,KAAK,CACnB,MAA4B,EAC5B,IAAc;IAGf,IAAI,OAAO,GAAQ,MAAM,CAAA;IAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QACtB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACpB,MAAK;IACP,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare class IdCounter {
2
+ count: number;
3
+ constructor(count?: number);
4
+ next(): number;
5
+ }
@@ -0,0 +1,10 @@
1
+ export class IdCounter {
2
+ count;
3
+ constructor(count = 0) {
4
+ this.count = count;
5
+ }
6
+ next() {
7
+ return this.count++;
8
+ }
9
+ }
10
+ //# sourceMappingURL=id-counter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-counter.js","sourceRoot":"","sources":["../s/id-counter.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,SAAS;IACF;IAAnB,YAAmB,QAAQ,CAAC;QAAT,UAAK,GAAL,KAAK,CAAI;IAAG,CAAC;IAEhC,IAAI;QACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACD"}
package/x/index.d.ts CHANGED
@@ -1,17 +1,25 @@
1
- export * from "./data/barname/index.js";
1
+ export * from "./data/bytename/index.js";
2
+ export * from "./data/base-x.js";
2
3
  export * from "./data/base58.js";
3
4
  export * from "./data/base64.js";
4
5
  export * from "./data/base64url.js";
5
6
  export * from "./data/bytes.js";
6
7
  export * from "./data/hex.js";
7
8
  export * from "./data/txt.js";
9
+ export * from "./debounce/debounce.js";
10
+ export * from "./debounce/types.js";
11
+ export * from "./deep/deep.js";
12
+ export * from "./coalesce.js";
8
13
  export * from "./concurrent.js";
9
14
  export * from "./deadline.js";
10
15
  export * from "./dedupe.js";
11
- export * from "./defer-promise.js";
16
+ export * from "./defer.js";
17
+ export * from "./drill.js";
12
18
  export * from "./escape-regex.js";
13
19
  export * from "./hat.js";
20
+ export * from "./id-counter.js";
14
21
  export * from "./is.js";
22
+ export * from "./loopy.js";
15
23
  export * from "./map-g.js";
16
24
  export * from "./nap.js";
17
25
  export * from "./ob.js";
package/x/index.js CHANGED
@@ -1,17 +1,25 @@
1
- export * from "./data/barname/index.js";
1
+ export * from "./data/bytename/index.js";
2
+ export * from "./data/base-x.js";
2
3
  export * from "./data/base58.js";
3
4
  export * from "./data/base64.js";
4
5
  export * from "./data/base64url.js";
5
6
  export * from "./data/bytes.js";
6
7
  export * from "./data/hex.js";
7
8
  export * from "./data/txt.js";
9
+ export * from "./debounce/debounce.js";
10
+ export * from "./debounce/types.js";
11
+ export * from "./deep/deep.js";
12
+ export * from "./coalesce.js";
8
13
  export * from "./concurrent.js";
9
14
  export * from "./deadline.js";
10
15
  export * from "./dedupe.js";
11
- export * from "./defer-promise.js";
16
+ export * from "./defer.js";
17
+ export * from "./drill.js";
12
18
  export * from "./escape-regex.js";
13
19
  export * from "./hat.js";
20
+ export * from "./id-counter.js";
14
21
  export * from "./is.js";
22
+ export * from "./loopy.js";
15
23
  export * from "./map-g.js";
16
24
  export * from "./nap.js";
17
25
  export * from "./ob.js";
package/x/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAE7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
package/x/is.d.ts CHANGED
@@ -1,10 +1,12 @@
1
- export declare const is: {
2
- available: <X>(x: X) => x is NonNullable<X>;
3
- unavailable: (x: any) => x is (undefined | null);
1
+ export declare const is: Readonly<{
2
+ set: <X>(x: X) => x is NonNullable<X>;
3
+ unset: (x: any) => x is (undefined | null);
4
4
  boolean: (x: any) => x is boolean;
5
5
  number: (x: any) => x is number;
6
6
  string: (x: any) => x is string;
7
7
  bigint: (x: any) => x is bigint;
8
8
  object: <X>(x: X) => x is object & NonNullable<X>;
9
9
  array: (x: any | any[]) => x is any[];
10
- };
10
+ fn: (x: any) => x is (...a: any[]) => any;
11
+ symbol: (x: any) => x is symbol;
12
+ }>;
package/x/is.js CHANGED
@@ -1,11 +1,13 @@
1
- export const is = {
2
- available: (x) => x !== undefined && x !== null,
3
- unavailable: (x) => x === undefined || x === null,
1
+ export const is = Object.freeze({
2
+ set: (x) => x !== undefined && x !== null,
3
+ unset: (x) => x === undefined || x === null,
4
4
  boolean: (x) => typeof x === "boolean",
5
5
  number: (x) => typeof x === "number",
6
6
  string: (x) => typeof x === "string",
7
7
  bigint: (x) => typeof x === "bigint",
8
8
  object: (x) => typeof x === "object" && x !== null,
9
9
  array: (x) => Array.isArray(x),
10
- };
10
+ fn: (x) => typeof x === "function",
11
+ symbol: (x) => typeof x === "symbol",
12
+ });
11
13
  //# sourceMappingURL=is.js.map
package/x/is.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"is.js","sourceRoot":"","sources":["../s/is.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,EAAE,GAAG;IACjB,SAAS,EAAE,CAAI,CAAI,EAAuB,EAAE,CAC3C,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;IAE9B,WAAW,EAAE,CAAC,CAAM,EAA2B,EAAE,CAChD,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;IAE9B,OAAO,EAAE,CAAC,CAAM,EAAgB,EAAE,CACjC,OAAO,CAAC,KAAK,SAAS;IAEvB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAI,CAAI,EAAgC,EAAE,CACjD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;IAEpC,KAAK,EAAE,CAAC,CAAc,EAAc,EAAE,CACrC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;CACjB,CAAA"}
1
+ {"version":3,"file":"is.js","sourceRoot":"","sources":["../s/is.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,GAAG,EAAE,CAAI,CAAI,EAAuB,EAAE,CACrC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;IAE9B,KAAK,EAAE,CAAC,CAAM,EAA2B,EAAE,CAC1C,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;IAE9B,OAAO,EAAE,CAAC,CAAM,EAAgB,EAAE,CACjC,OAAO,CAAC,KAAK,SAAS;IAEvB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAI,CAAI,EAAgC,EAAE,CACjD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;IAEpC,KAAK,EAAE,CAAC,CAAc,EAAc,EAAE,CACrC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjB,EAAE,EAAE,CAAC,CAAM,EAA6B,EAAE,CACzC,OAAO,CAAC,KAAK,UAAU;IAExB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;CACtB,CAAC,CAAA"}
package/x/loopy.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function loop(n: number): Generator<number, void, unknown>;
2
+ export declare function loop2d([columns, rows]: [number, number]): Generator<[number, number], void, unknown>;
package/x/loopy.js ADDED
@@ -0,0 +1,10 @@
1
+ export function* loop(n) {
2
+ for (let i = 0; i < n; i++)
3
+ yield i;
4
+ }
5
+ export function* loop2d([columns, rows]) {
6
+ for (let y = 0; y < rows; y++)
7
+ for (let x = 0; x < columns; x++)
8
+ yield [x, y];
9
+ }
10
+ //# sourceMappingURL=loopy.js.map
package/x/loopy.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loopy.js","sourceRoot":"","sources":["../s/loopy.ts"],"names":[],"mappings":"AACA,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAS;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QACzB,MAAM,CAAC,CAAA;AACT,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,CAAmB;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE;YAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAA;AACnC,CAAC"}
package/x/map-g.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- /** js map, but with handy methods like `require` and `guarantee` */
1
+ /** extended js map with handy methods like `require` and `guarantee` */
2
2
  export declare class MapG<K, V> extends Map<K, V> {
3
- static require<K, V>(map: Map<K, V>, key: K): V & ({} | null);
3
+ static require<K, V>(map: Map<K, V>, key: K): V;
4
4
  static guarantee<K, V>(map: Map<K, V>, key: K, make: () => V): V;
5
5
  array(): [K, V][];
6
- require(key: K): V & ({} | null);
6
+ require(key: K): V;
7
7
  guarantee(key: K, make: () => V): V;
8
8
  }
9
9
  export type Identifiable<Id = any> = {
package/x/map-g.js CHANGED
@@ -1,4 +1,4 @@
1
- /** js map, but with handy methods like `require` and `guarantee` */
1
+ /** extended js map with handy methods like `require` and `guarantee` */
2
2
  export class MapG extends Map {
3
3
  static require(map, key) {
4
4
  const value = map.get(key);
package/x/map-g.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"map-g.js","sourceRoot":"","sources":["../s/map-g.ts"],"names":[],"mappings":"AACA,oEAAoE;AACpE,MAAM,OAAO,IAAW,SAAQ,GAAS;IACxC,MAAM,CAAC,OAAO,CAAO,GAAc,EAAE,GAAM;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,GAAG,CAAC,CAAA;QACpD,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,CAAC,SAAS,CAAO,GAAc,EAAE,GAAM,EAAE,IAAa;QAC3D,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAExB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,GAAG,IAAI,EAAE,CAAA;YACd,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACpB,CAAC;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAED,KAAK;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,SAAS,CAAC,GAAM,EAAE,IAAa;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC;CACD;AAID,oDAAoD;AACpD,MAAM,OAAO,KAA8B,SAAQ,IAAgB;IAClE,GAAG,CAAC,KAAQ;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,GAAG,CAAC,KAAQ;QACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACzB,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,CAAC,KAAQ;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;CACD"}
1
+ {"version":3,"file":"map-g.js","sourceRoot":"","sources":["../s/map-g.ts"],"names":[],"mappings":"AACA,wEAAwE;AACxE,MAAM,OAAO,IAAW,SAAQ,GAAS;IACxC,MAAM,CAAC,OAAO,CAAO,GAAc,EAAE,GAAM;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,GAAG,CAAC,CAAA;QACpD,OAAO,KAAU,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,SAAS,CAAO,GAAc,EAAE,GAAM,EAAE,IAAa;QAC3D,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAExB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,GAAG,IAAI,EAAE,CAAA;YACd,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACpB,CAAC;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAED,KAAK;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,SAAS,CAAC,GAAM,EAAE,IAAa;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC;CACD;AAID,oDAAoD;AACpD,MAAM,OAAO,KAA8B,SAAQ,IAAgB;IAClE,GAAG,CAAC,KAAQ;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,GAAG,CAAC,KAAQ;QACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACzB,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,CAAC,KAAQ;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;CACD"}
package/x/nap.d.ts CHANGED
@@ -1 +1,2 @@
1
+ /** create a promise that waits for a number of milliseconds. */
1
2
  export declare const nap: (milliseconds?: number) => Promise<void>;
package/x/nap.js CHANGED
@@ -1,2 +1,3 @@
1
+ /** create a promise that waits for a number of milliseconds. */
1
2
  export const nap = (milliseconds = 0) => (new Promise(resolve => setTimeout(resolve, milliseconds)));
2
3
  //# sourceMappingURL=nap.js.map
package/x/nap.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"nap.js","sourceRoot":"","sources":["../s/nap.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,eAAuB,CAAC,EAAE,EAAE,CAAC,CAChD,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAC/D,CAAA"}
1
+ {"version":3,"file":"nap.js","sourceRoot":"","sources":["../s/nap.ts"],"names":[],"mappings":"AACA,gEAAgE;AAChE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,eAAuB,CAAC,EAAE,EAAE,CAAC,CAChD,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAC/D,CAAA"}
package/x/pubsub.d.ts CHANGED
@@ -1,13 +1,24 @@
1
1
  export type Listener<A extends any[]> = (...a: A) => (void | Promise<void>);
2
2
  export interface Xub<A extends any[] = []> {
3
+ /** publish to all subscribed listeners. */
3
4
  pub(...a: A): Promise<void>;
5
+ /** subscribe a listener function. */
4
6
  sub(fn: Listener<A>): () => void;
7
+ /**
8
+ * subscribe a listener function.
9
+ * @alias sub
10
+ */
11
+ on(fn: Listener<A>): () => void;
12
+ /** subscribe a listener function that unsubscribes itself after being invoked. */
5
13
  once(): Promise<A>;
14
+ /** wipe all listeners attached to this. */
6
15
  clear(): void;
7
16
  }
17
+ /** subscriber fn that can be published to. */
8
18
  export interface Sub<A extends any[] = []> extends Xub<A> {
9
19
  (fn: Listener<A>): () => void;
10
20
  }
21
+ /** publisher fn that can be published to. */
11
22
  export interface Pub<A extends any[] = []> extends Xub<A> {
12
23
  (...a: A): Promise<void>;
13
24
  }
package/x/pubsub.js CHANGED
@@ -1,4 +1,4 @@
1
- import { deferPromise } from "./defer-promise.js";
1
+ import { defer } from "./defer.js";
2
2
  export function xub() {
3
3
  const set = new Set();
4
4
  function sub(fn) {
@@ -9,7 +9,7 @@ export function xub() {
9
9
  await Promise.all([...set].map(fn => fn(...a)));
10
10
  }
11
11
  async function once() {
12
- const { promise, resolve } = deferPromise();
12
+ const { promise, resolve } = defer();
13
13
  const unsubscribe = sub((...a) => {
14
14
  resolve(a);
15
15
  unsubscribe();
@@ -21,10 +21,12 @@ export function xub() {
21
21
  }
22
22
  sub.pub = pub;
23
23
  sub.sub = sub;
24
+ sub.on = sub;
24
25
  sub.once = once;
25
26
  sub.clear = clear;
26
27
  pub.pub = pub;
27
28
  pub.sub = sub;
29
+ pub.on = sub;
28
30
  pub.once = once;
29
31
  pub.clear = clear;
30
32
  return [pub, sub];
package/x/pubsub.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../s/pubsub.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAmB/C,MAAM,UAAU,GAAG;IAClB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAe,CAAA;IAElC,SAAS,GAAG,CAAC,EAAe;QAC3B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACX,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,UAAU,GAAG,CAAC,GAAG,CAAI;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,UAAU,IAAI;QAClB,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,YAAY,EAAK,CAAA;QAC5C,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;YAChC,OAAO,CAAC,CAAC,CAAC,CAAA;YACV,WAAW,EAAE,CAAA;QACd,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IACf,CAAC;IAED,SAAS,KAAK;QACb,GAAG,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAEjB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAEjB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAqB,CAAA;AACtC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,GAAG,CAAuB,QAAsB;IAC/D,MAAM,EAAE,GAAG,GAAG,EAAK,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,QAAQ;QACX,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjB,OAAO,EAAE,CAAA;AACV,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,GAAG,CAAuB,QAAsB;IAC/D,MAAM,EAAE,GAAG,GAAG,EAAK,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,QAAQ;QACX,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjB,OAAO,EAAE,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../s/pubsub.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAmChC,MAAM,UAAU,GAAG;IAClB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAe,CAAA;IAElC,SAAS,GAAG,CAAC,EAAe;QAC3B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACX,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,UAAU,GAAG,CAAC,GAAG,CAAI;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,UAAU,IAAI;QAClB,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,KAAK,EAAK,CAAA;QACrC,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;YAChC,OAAO,CAAC,CAAC,CAAC,CAAA;YACV,WAAW,EAAE,CAAA;QACd,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IACf,CAAC;IAED,SAAS,KAAK;QACb,GAAG,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,EAAE,GAAG,GAAG,CAAA;IACZ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAEjB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,EAAE,GAAG,GAAG,CAAA;IACZ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAEjB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAqB,CAAA;AACtC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,GAAG,CAAuB,QAAsB;IAC/D,MAAM,EAAE,GAAG,GAAG,EAAK,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,QAAQ;QACX,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjB,OAAO,EAAE,CAAA;AACV,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,GAAG,CAAuB,QAAsB;IAC/D,MAAM,EAAE,GAAG,GAAG,EAAK,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,QAAQ;QACX,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjB,OAAO,EAAE,CAAA;AACV,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Science } from "@e280/science";
2
+ import clone from "./clone/clone.test.js";
3
+ import thumbprint from "./data/bytename/thumbprint.test.js";
4
+ import debounce from "./debounce/debounce.test.js";
5
+ import bytename from "./data/bytename/bytename.test.js";
6
+ import deep from "./deep/deep.test.js";
7
+ import data from "./data/data.test.js";
8
+ await Science.run({
9
+ clone,
10
+ bytename,
11
+ thumbprint,
12
+ debounce,
13
+ deep,
14
+ data,
15
+ });
16
+ //# sourceMappingURL=tests.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tests.test.js","sourceRoot":"","sources":["../s/tests.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,KAAK,MAAM,uBAAuB,CAAA;AACzC,OAAO,UAAU,MAAM,oCAAoC,CAAA;AAC3D,OAAO,QAAQ,MAAM,6BAA6B,CAAA;AAClD,OAAO,QAAQ,MAAM,kCAAkC,CAAA;AACvD,OAAO,IAAI,MAAM,qBAAqB,CAAA;AACtC,OAAO,IAAI,MAAM,qBAAqB,CAAA;AAEtC,MAAM,OAAO,CAAC,GAAG,CAAC;IACjB,KAAK;IACL,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,IAAI;CACJ,CAAC,CAAA"}
package/readme.md DELETED
@@ -1,85 +0,0 @@
1
-
2
- # `@e280/stz`
3
- standard library of environment-agnostic typescript functions we use basically everywhere
4
-
5
- <br/>
6
-
7
- ## the tools
8
- stz has many more tools than documented below, see their [sourcecode here in s/](./s/)
9
-
10
- ### MapG — an extension of js Map with handy methods
11
- - `map.require`
12
- ```ts
13
- import {MapG} from "@e280/stz"
14
-
15
- const map = new MapG<number, string>([
16
- [1, "hello"],
17
- [2, "world"],
18
- ])
19
-
20
- // throws error if the value is undefined
21
- const value = map.require(1)
22
- ```
23
- - `map.guarantee`
24
- ```ts
25
- // if the value is undefined, the new value "rofl" is set and returned
26
- const value = map.guarantee(3, () => "rofl")
27
- ```
28
-
29
- ### pub and sub — minimal ergonomic event system
30
- - make a publisher fn
31
- ```ts
32
- import {pub} from "@e280/stz"
33
-
34
- // create a pub fn
35
- const sendMessage = pub<[string]>()
36
-
37
- // subscribe to it
38
- sendMessage.sub(m => console.log(m))
39
-
40
- // publish to it
41
- sendMessage("hello")
42
- ```
43
- - make a subscriber fn *(see how it's just the reverse of pub?)*
44
- ```ts
45
- import {sub} from "@e280/stz"
46
-
47
- // create a sub fn
48
- const onMessage = sub<[string]>()
49
-
50
- // subscribe to it
51
- onMessage(m => console.log(m))
52
-
53
- // publish to it
54
- onMessage.pub("hello")
55
- ```
56
- - the pub and sub are the same, but have differing invoke signatures
57
- - i seem to use `sub` more often
58
- - both have some extra functionality
59
- ```ts
60
- // pub fns return a promise, to wait for all async subscribers
61
- await sendMessage("hello")
62
- await onMessage.pub("hello")
63
-
64
- // sub fns return an unsub fn
65
- const unsub1 = onMessage(m => console.log(m))
66
- unsub1() // unsubscribe that listener
67
-
68
- const unsub2 = sendMessage.sub(m => console.log(m))
69
- unsub2() // unsubscribe that listener
70
-
71
- // you can clear all subscribers from a pub or a sub
72
- sendMessage.clear()
73
- onMessage.clear()
74
-
75
- // you can subscribe to only one next call
76
- onMessage.once(m => console.log(m))
77
- sendMessage.once(m => console.log(m))
78
- ```
79
-
80
- <br/>
81
-
82
- ## 💖 made with open source love
83
- reward us with github stars
84
- build with us at https://e280.org/ but only if you're cool
85
-
package/s/data/anka.ts DELETED
@@ -1,66 +0,0 @@
1
-
2
- /*
3
-
4
- "anka" is an alternative to base64 that i totally made up.
5
- - it looks cool because it features characters from the indian subcontinent.
6
- - each byte is represented by one character, which makes a 256 bit id incomparably short at only 32 characters.
7
- - however, it's probably a bad idea, for these negative reasons:
8
- 1. many of these characters are actually 2-or-3-byte sequences (so even though anka is visually more compact than base64 to the user, it's actually more data in terms of bytes).
9
- 2. it's horrible for url-encoding.
10
- 3. it's horrible for trying to manually copy by typing.
11
-
12
- 256-bit anka ids look like this:
13
-
14
- ஒഐওଆઊসਅവஎଉखਬശயഘसചവਭଏரঊझഠடଓઐഴঠണവઞ
15
- ठକநइஎਦਏஒഊটਹஜഴयભকயঙਪഉजकঝഐवઠসഏਓਡਟऋ
16
- થঞठખஉધഫரਜऐફരਪਙਗഭਣഎफઇমએরଔડਉதਤஅदઘച
17
-
18
- */
19
-
20
- import {Bytes} from "./bytes.js"
21
-
22
- const characters = [...new Set([
23
- // devanagari
24
- ..."अआइईउऊऋएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसह",
25
-
26
- // tamil
27
- ..."அஆஇஈஉஊஎஏஐஒஓகஙசஜஞடணதநபமயரலவழளறன",
28
-
29
- // bengali
30
- ..."অআইঈউঊএঐওকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ",
31
-
32
- // gurmukhi
33
- ..."ਅਆਇਈਉਊਏਐਓਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਵਸਹ",
34
-
35
- // malayalam
36
- ..."അആഇഈഉഊഎഏഐഒഓകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരലവശസഹളഴറ",
37
-
38
- // gujarati
39
- ..."અઆઇઈઉઊએઐઓકખગઘઙચછજઝઞટઠડઢણતથદધનપફબભમયરલવશષસહ",
40
-
41
- // odia
42
- ..."ଅଆଇଈଉଊଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଶଷସହ",
43
- ])]
44
-
45
- export const Anka = Object.freeze({
46
-
47
- string(bytes: Uint8Array) {
48
- return [...bytes]
49
- .map(int => characters.at(int))
50
- .join("")
51
- },
52
-
53
- bytes(code: string) {
54
- return new Uint8Array([...code].map(char => {
55
- const index = characters.indexOf(char)
56
- if (index === -1)
57
- throw new Error(`invalid anka character "${char}"`)
58
- return index
59
- }))
60
- },
61
-
62
- random(count = 32) {
63
- return this.string(Bytes.random(count))
64
- },
65
- })
66
-
@@ -1,78 +0,0 @@
1
-
2
- import {Hex} from "../hex.js"
3
- import {Base58} from "../base58.js"
4
- import {Barname} from "./barname.js"
5
-
6
- /**
7
- * Badge is a human-friendly presentation format for arbitrary binary data.
8
- * - looks like "nomluc_rigpem.tg2bjNkjMh1H6M2b2EhD5V4x6XAqx9wyWddsBt"
9
- * - the first bytes are shown in barname format
10
- * - the rest of the data is in base58
11
- * - designed to be a nice way to present 256-bit passport thumbprints
12
- * - can be used for data of different lengths
13
- * - preview size can be customized as 'leadCount', which defaults to 4
14
- */
15
- export class Badge {
16
- static readonly separator = "."
17
- static readonly defaultLeadCount = 4
18
-
19
- readonly hex: string
20
- readonly string: string
21
- readonly preview: string
22
-
23
- constructor(
24
- public readonly bytes: Uint8Array,
25
- public readonly leadCount = Badge.defaultLeadCount,
26
- ) {
27
-
28
- if (leadCount < 1)
29
- throw new Error(`badge leadCount must be greater than 0 (was ${leadCount})`)
30
-
31
- this.hex = Hex.string(this.bytes)
32
- this.preview = Barname.string(this.bytes.slice(0, leadCount))
33
-
34
- this.string = (bytes.length > leadCount)
35
- ? `${this.preview}.${Base58.string(this.bytes.slice(leadCount))}`
36
- : this.preview
37
- }
38
-
39
- static parse(badge: string) {
40
- const [barname, b58] = badge.split(Badge.separator)
41
-
42
- // badge has a base58 component
43
- if (b58) {
44
- const appetizer = Barname.bytes(barname)
45
- const entree = Base58.bytes(b58)
46
- const bytes = new Uint8Array([...appetizer, ...entree])
47
- return new this(bytes, appetizer.length)
48
- }
49
-
50
- // badge is just a barname (no base58 part)
51
- else {
52
- const bytes = Barname.bytes(barname)
53
- return new this(bytes, bytes.length)
54
- }
55
- }
56
-
57
- static fromHex(hex: string, leadCount = this.defaultLeadCount) {
58
- const bytes = Hex.bytes(hex)
59
- return new this(bytes, leadCount)
60
- }
61
-
62
- static string(bytes: Uint8Array, leadCount = this.defaultLeadCount) {
63
- return new this(bytes, leadCount).string
64
- }
65
-
66
- static bytes(badge: string) {
67
- return this.parse(badge)
68
- }
69
-
70
- static hex(badge: string) {
71
- return this.parse(badge).hex
72
- }
73
-
74
- toString() {
75
- return this.string
76
- }
77
- }
78
-
@@ -1,49 +0,0 @@
1
-
2
- import {Hex} from "../hex.js"
3
- import {Badge} from "./badge.js"
4
- import {Bytes} from "../bytes.js"
5
- import {Barname} from "./barname.js"
6
-
7
- for (const _ of Array(2)) {
8
- const string = Barname.random(34)
9
- const bytes = Barname.bytes(string)
10
- const string2 = Barname.string(bytes)
11
- console.log(string.replaceAll(" ", "\n"))
12
- if (string !== string2)
13
- throw new Error("barname fails equality check")
14
- console.log("")
15
- }
16
-
17
- for (const _ of Array(10)) {
18
- const bytes = Bytes.random(32)
19
- const badge = new Badge(bytes)
20
- const bytes2 = badge.bytes
21
- console.log(badge.string)
22
- if (Hex.string(bytes) !== Hex.string(bytes2))
23
- throw new Error("badge fails equality check")
24
- }
25
-
26
- {
27
- console.log("")
28
- const alpha = `
29
- dacsyd_labdun_fipsub_bonmel
30
- fitlys_rovbud_sipnel_sonryx
31
- sitrem_lasdyr_dovpun_nibwep
32
- tippet_mapnub_ticnet_famset
33
- wanteg
34
- `
35
- const bravo = `
36
- dacsyd-labdun-fipsub-bonmel;
37
- [fitlys rovbud sipnel sonryx]
38
- sitrem/lasdyr/dovpun/nibwep
39
- tippet+mapnub+ticnet+famset
40
- wanteg++
41
- `
42
- const alphaHex = Hex.string(Barname.bytes(alpha))
43
- const bravoHex = Hex.string(Barname.bytes(bravo))
44
- if (alphaHex.length === 68 && alphaHex === bravoHex)
45
- console.log("*barname parsing appears resilient to whitespace and garbage*")
46
- else
47
- throw new Error("barname resiliency failure")
48
- }
49
-