@nice2dev/ui-graphics 1.3.15 → 1.3.17
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.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/animation/AnimatedPerson.js +470 -143
- package/dist/cjs/animation/AnimationEditor.js +289 -101
- package/dist/cjs/animation/Audience.js +83 -61
- package/dist/cjs/animation/BodyRenderer.js +69 -28
- package/dist/cjs/animation/animationHelper.js +281 -288
- package/dist/cjs/animation/characterTypes.js +200 -203
- package/dist/cjs/animation/choreoDSL.js +205 -219
- package/dist/cjs/animation/choreography.js +4 -32
- package/dist/cjs/animation/karaokeIntegration.js +68 -77
- package/dist/cjs/animation/lottieExport.js +108 -114
- package/dist/cjs/animation/motionPath.js +225 -248
- package/dist/cjs/animation/physics.js +227 -254
- package/dist/cjs/animation/rig/RigPlayer.js +53 -56
- package/dist/cjs/animation/rig/RiggedBody.js +71 -26
- package/dist/cjs/animation/rig/choreoRigBridge.js +72 -77
- package/dist/cjs/animation/rig/ik.js +13 -18
- package/dist/cjs/animation/rig/poseOps.js +34 -41
- package/dist/cjs/animation/rig/presets.js +64 -72
- package/dist/cjs/animation/rig/rigMath.js +25 -32
- package/dist/cjs/animation/rig/rigTypes.js +59 -63
- package/dist/cjs/animation/shapes/arms.js +31 -13
- package/dist/cjs/animation/shapes/eyes.js +129 -47
- package/dist/cjs/animation/shapes/hair.js +72 -45
- package/dist/cjs/animation/shapes/heads.js +131 -57
- package/dist/cjs/animation/shapes/headwear.js +47 -38
- package/dist/cjs/animation/shapes/legs.js +31 -13
- package/dist/cjs/animation/shapes/mouths.js +120 -44
- package/dist/cjs/animation/shapes/noses.js +80 -25
- package/dist/cjs/animation/shapes/outfits.js +101 -39
- package/dist/cjs/animation/shapes/torsos.js +15 -11
- package/dist/cjs/animation/spineExport.js +103 -121
- package/dist/cjs/core/LocalUI.js +108 -43
- package/dist/cjs/core/NiceBrushEngine.js +758 -552
- package/dist/cjs/core/collaboration.js +249 -251
- package/dist/cjs/core/colorBlindness.js +100 -115
- package/dist/cjs/core/dragDrop.js +155 -158
- package/dist/cjs/core/editorAsk.js +51 -41
- package/dist/cjs/core/fixes.js +140 -171
- package/dist/cjs/core/gridGuides.js +166 -201
- package/dist/cjs/core/historyVisual.js +156 -135
- package/dist/cjs/core/i18n.js +13 -14
- package/dist/cjs/core/integrations.js +238 -249
- package/dist/cjs/core/minimap.js +149 -151
- package/dist/cjs/core/plugins.js +98 -113
- package/dist/cjs/core/rtl.js +71 -83
- package/dist/cjs/core/shortcuts.js +196 -225
- package/dist/cjs/core/theme.js +142 -149
- package/dist/cjs/core/yjsCollaboration.js +232 -293
- package/dist/cjs/design/design-tools.js +12 -22
- package/dist/cjs/font/NiceFontEditor.js +877 -316
- package/dist/cjs/font/fontFormatUtils.js +388 -448
- package/dist/cjs/game/GameAsset2dEditor.js +1201 -392
- package/dist/cjs/game/GameAsset2dEditor.module.css.js +146 -5
- package/dist/cjs/game/gameAssetTypes.js +7 -16
- package/dist/cjs/game/gameAssetUtils.js +390 -413
- package/dist/cjs/game/useGameAssetEditor.js +820 -763
- package/dist/cjs/index.js +81 -84
- package/dist/cjs/nice2dev-ui-graphics.css +1 -1
- package/dist/cjs/node_modules/lib0/array.js +8 -70
- package/dist/cjs/node_modules/lib0/binary.js +3 -20
- package/dist/cjs/node_modules/lib0/broadcastchannel.js +24 -86
- package/dist/cjs/node_modules/lib0/buffer.js +15 -82
- package/dist/cjs/node_modules/lib0/conditions.js +3 -16
- package/dist/cjs/node_modules/lib0/decoding.js +108 -287
- package/dist/cjs/node_modules/lib0/dom.js +14 -44
- package/dist/cjs/node_modules/lib0/encoding.js +68 -418
- package/dist/cjs/node_modules/lib0/environment.js +26 -92
- package/dist/cjs/node_modules/lib0/error.js +5 -29
- package/dist/cjs/node_modules/lib0/function.js +27 -66
- package/dist/cjs/node_modules/lib0/iterator.js +8 -33
- package/dist/cjs/node_modules/lib0/logging.common.js +12 -22
- package/dist/cjs/node_modules/lib0/logging.js +32 -71
- package/dist/cjs/node_modules/lib0/map.js +16 -86
- package/dist/cjs/node_modules/lib0/math.js +3 -32
- package/dist/cjs/node_modules/lib0/number.js +4 -15
- package/dist/cjs/node_modules/lib0/object.js +14 -88
- package/dist/cjs/node_modules/lib0/observable.js +38 -78
- package/dist/cjs/node_modules/lib0/pair.js +3 -20
- package/dist/cjs/node_modules/lib0/prng.js +8 -77
- package/dist/cjs/node_modules/lib0/promise.js +6 -30
- package/dist/cjs/node_modules/lib0/random.js +8 -23
- package/dist/cjs/node_modules/lib0/schema.js +313 -687
- package/dist/cjs/node_modules/lib0/set.js +3 -10
- package/dist/cjs/node_modules/lib0/storage.js +20 -55
- package/dist/cjs/node_modules/lib0/string.js +17 -72
- package/dist/cjs/node_modules/lib0/symbol.js +2 -12
- package/dist/cjs/node_modules/lib0/time.js +2 -15
- package/dist/cjs/node_modules/lib0/trait/equality.js +3 -28
- package/dist/cjs/node_modules/lib0/url.js +4 -18
- package/dist/cjs/node_modules/lib0/webcrypto.js +2 -5
- package/dist/cjs/node_modules/y-protocols/auth.js +5 -19
- package/dist/cjs/node_modules/y-protocols/awareness.js +53 -116
- package/dist/cjs/node_modules/y-protocols/sync.js +16 -103
- package/dist/cjs/node_modules/y-websocket/src/y-websocket.js +77 -219
- package/dist/cjs/node_modules/yjs/dist/yjs.js +2128 -4868
- package/dist/cjs/photo/FilterThumb.js +37 -25
- package/dist/cjs/photo/NiceAITools.js +679 -467
- package/dist/cjs/photo/PhotoEditor.js +34 -20
- package/dist/cjs/photo/PhotoEditor.module.css.js +296 -5
- package/dist/cjs/photo/PhotoEditorCanvas.js +250 -91
- package/dist/cjs/photo/PhotoEditorLeftPanel.js +1086 -224
- package/dist/cjs/photo/PhotoEditorToolbar.js +135 -19
- package/dist/cjs/photo/photoEditorActions.js +89 -72
- package/dist/cjs/photo/photoEditorTypes.js +29 -32
- package/dist/cjs/photo/photoFilters.js +959 -985
- package/dist/cjs/photo/photoOverlays.js +899 -945
- package/dist/cjs/photo/photoSelection.js +427 -499
- package/dist/cjs/photo/usePhotoEditor.js +739 -741
- package/dist/cjs/pixel/HSVPicker.js +191 -175
- package/dist/cjs/pixel/PixelEditor.js +159 -48
- package/dist/cjs/pixel/PixelEditor.module.css.js +209 -5
- package/dist/cjs/pixel/PixelEditorCanvas.js +29 -16
- package/dist/cjs/pixel/PixelEditorMenuBar.js +160 -162
- package/dist/cjs/pixel/PixelEditorRightPanel.js +377 -45
- package/dist/cjs/pixel/PixelEditorStatusBar.js +47 -20
- package/dist/cjs/pixel/PixelEditorTimeline.js +106 -23
- package/dist/cjs/pixel/PixelEditorToolbar.js +99 -21
- package/dist/cjs/pixel/SpriteGeneratorPanel.js +483 -303
- package/dist/cjs/pixel/animalGeneratorPresets.js +776 -601
- package/dist/cjs/pixel/asepriteFormat.js +511 -560
- package/dist/cjs/pixel/buildingGeneratorPresets.js +693 -520
- package/dist/cjs/pixel/characterGeneratorPresets.js +644 -544
- package/dist/cjs/pixel/pixel-pro.js +52 -63
- package/dist/cjs/pixel/pixelEditorExports.js +388 -428
- package/dist/cjs/pixel/pixelEditorTypes.js +91 -108
- package/dist/cjs/pixel/pixelEditorUtils.js +519 -561
- package/dist/cjs/pixel/spriteGeneratorCore.js +206 -257
- package/dist/cjs/pixel/usePixelEditor.js +1321 -1343
- package/dist/cjs/texture/Nice3DTexturePainter.js +707 -440
- package/dist/cjs/ui/NiceUIDesigner.js +954 -527
- package/dist/cjs/vector/NiceSvgToCode.js +586 -446
- package/dist/cjs/vector/VectorEditor.js +290 -117
- package/dist/cjs/vector/VectorEditor.module.css.js +86 -5
- package/dist/cjs/vector/VectorEditorMenuBar.js +333 -275
- package/dist/cjs/vector/VectorEditorRightPanel.js +1094 -371
- package/dist/cjs/vector/VectorEditorShapeRenderer.js +198 -60
- package/dist/cjs/vector/VectorEditorStatusBar.js +39 -13
- package/dist/cjs/vector/useVectorEditor.js +848 -889
- package/dist/cjs/vector/vectorAnimation.js +110 -137
- package/dist/cjs/vector/vectorBooleanOps.js +398 -485
- package/dist/cjs/vector/vectorEditorExport.js +201 -203
- package/dist/cjs/vector/vectorEditorImport.js +173 -189
- package/dist/cjs/vector/vectorEditorTypes.js +42 -49
- package/dist/cjs/vector/vectorGradients.js +151 -174
- package/dist/cjs/vector/vectorIconExport.js +52 -59
- package/dist/cjs/vector/vectorIconImport.js +169 -219
- package/dist/esm/animation/AnimatedPerson.js +470 -141
- package/dist/esm/animation/AnimationEditor.js +290 -100
- package/dist/esm/animation/Audience.js +83 -59
- package/dist/esm/animation/BodyRenderer.js +71 -25
- package/dist/esm/animation/animationHelper.js +284 -287
- package/dist/esm/animation/characterTypes.js +204 -202
- package/dist/esm/animation/choreoDSL.js +212 -218
- package/dist/esm/animation/choreography.js +8 -31
- package/dist/esm/animation/karaokeIntegration.js +74 -76
- package/dist/esm/animation/lottieExport.js +112 -113
- package/dist/esm/animation/motionPath.js +235 -247
- package/dist/esm/animation/physics.js +235 -253
- package/dist/esm/animation/rig/RigPlayer.js +53 -54
- package/dist/esm/animation/rig/RiggedBody.js +71 -24
- package/dist/esm/animation/rig/choreoRigBridge.js +74 -76
- package/dist/esm/animation/rig/ik.js +14 -17
- package/dist/esm/animation/rig/poseOps.js +37 -40
- package/dist/esm/animation/rig/presets.js +70 -71
- package/dist/esm/animation/rig/rigMath.js +28 -31
- package/dist/esm/animation/rig/rigTypes.js +62 -62
- package/dist/esm/animation/shapes/arms.js +32 -12
- package/dist/esm/animation/shapes/eyes.js +135 -46
- package/dist/esm/animation/shapes/hair.js +80 -44
- package/dist/esm/animation/shapes/heads.js +140 -56
- package/dist/esm/animation/shapes/headwear.js +54 -37
- package/dist/esm/animation/shapes/legs.js +32 -12
- package/dist/esm/animation/shapes/mouths.js +127 -43
- package/dist/esm/animation/shapes/noses.js +87 -24
- package/dist/esm/animation/shapes/outfits.js +106 -38
- package/dist/esm/animation/shapes/torsos.js +16 -10
- package/dist/esm/animation/spineExport.js +106 -120
- package/dist/esm/core/LocalUI.js +111 -42
- package/dist/esm/core/NiceBrushEngine.js +761 -551
- package/dist/esm/core/collaboration.js +255 -250
- package/dist/esm/core/colorBlindness.js +106 -114
- package/dist/esm/core/dragDrop.js +157 -157
- package/dist/esm/core/editorAsk.js +53 -40
- package/dist/esm/core/fixes.js +145 -170
- package/dist/esm/core/gridGuides.js +178 -200
- package/dist/esm/core/historyVisual.js +158 -134
- package/dist/esm/core/i18n.js +15 -13
- package/dist/esm/core/integrations.js +244 -248
- package/dist/esm/core/minimap.js +151 -150
- package/dist/esm/core/plugins.js +102 -112
- package/dist/esm/core/rtl.js +77 -82
- package/dist/esm/core/shortcuts.js +200 -224
- package/dist/esm/core/theme.js +150 -148
- package/dist/esm/core/yjsCollaboration.js +240 -292
- package/dist/esm/design/design-tools.js +13 -21
- package/dist/esm/font/NiceFontEditor.js +880 -315
- package/dist/esm/font/fontFormatUtils.js +394 -447
- package/dist/esm/game/GameAsset2dEditor.js +1202 -391
- package/dist/esm/game/GameAsset2dEditor.module.css.js +146 -3
- package/dist/esm/game/gameAssetTypes.js +8 -15
- package/dist/esm/game/gameAssetUtils.js +408 -412
- package/dist/esm/game/useGameAssetEditor.js +821 -762
- package/dist/esm/index.js +332 -69
- package/dist/esm/nice2dev-ui-graphics.css +1 -1
- package/dist/esm/node_modules/lib0/array.js +15 -69
- package/dist/esm/node_modules/lib0/binary.js +14 -19
- package/dist/esm/node_modules/lib0/broadcastchannel.js +27 -85
- package/dist/esm/node_modules/lib0/buffer.js +20 -80
- package/dist/esm/node_modules/lib0/conditions.js +4 -15
- package/dist/esm/node_modules/lib0/decoding.js +128 -286
- package/dist/esm/node_modules/lib0/dom.js +20 -43
- package/dist/esm/node_modules/lib0/encoding.js +90 -415
- package/dist/esm/node_modules/lib0/environment.js +33 -91
- package/dist/esm/node_modules/lib0/error.js +8 -28
- package/dist/esm/node_modules/lib0/function.js +31 -65
- package/dist/esm/node_modules/lib0/iterator.js +11 -32
- package/dist/esm/node_modules/lib0/logging.common.js +22 -21
- package/dist/esm/node_modules/lib0/logging.js +44 -70
- package/dist/esm/node_modules/lib0/map.js +21 -85
- package/dist/esm/node_modules/lib0/math.js +9 -31
- package/dist/esm/node_modules/lib0/number.js +7 -14
- package/dist/esm/node_modules/lib0/object.js +26 -87
- package/dist/esm/node_modules/lib0/observable.js +40 -77
- package/dist/esm/node_modules/lib0/pair.js +5 -19
- package/dist/esm/node_modules/lib0/prng.js +15 -76
- package/dist/esm/node_modules/lib0/promise.js +7 -29
- package/dist/esm/node_modules/lib0/random.js +10 -22
- package/dist/esm/node_modules/lib0/schema.js +367 -686
- package/dist/esm/node_modules/lib0/set.js +4 -9
- package/dist/esm/node_modules/lib0/storage.js +23 -54
- package/dist/esm/node_modules/lib0/string.js +26 -71
- package/dist/esm/node_modules/lib0/symbol.js +3 -11
- package/dist/esm/node_modules/lib0/time.js +3 -14
- package/dist/esm/node_modules/lib0/trait/equality.js +5 -27
- package/dist/esm/node_modules/lib0/url.js +5 -17
- package/dist/esm/node_modules/lib0/webcrypto.js +3 -4
- package/dist/esm/node_modules/y-protocols/auth.js +7 -18
- package/dist/esm/node_modules/y-protocols/awareness.js +58 -115
- package/dist/esm/node_modules/y-protocols/sync.js +26 -102
- package/dist/esm/node_modules/y-websocket/src/y-websocket.js +82 -218
- package/dist/esm/node_modules/yjs/dist/yjs.js +2263 -4899
- package/dist/esm/photo/FilterThumb.js +37 -23
- package/dist/esm/photo/NiceAITools.js +685 -466
- package/dist/esm/photo/PhotoEditor.js +34 -18
- package/dist/esm/photo/PhotoEditor.module.css.js +296 -3
- package/dist/esm/photo/PhotoEditorCanvas.js +250 -89
- package/dist/esm/photo/PhotoEditorLeftPanel.js +1086 -222
- package/dist/esm/photo/PhotoEditorToolbar.js +135 -17
- package/dist/esm/photo/photoEditorActions.js +93 -71
- package/dist/esm/photo/photoEditorTypes.js +32 -31
- package/dist/esm/photo/photoFilters.js +967 -984
- package/dist/esm/photo/photoOverlays.js +913 -944
- package/dist/esm/photo/photoSelection.js +438 -498
- package/dist/esm/photo/usePhotoEditor.js +740 -740
- package/dist/esm/pixel/HSVPicker.js +192 -174
- package/dist/esm/pixel/PixelEditor.js +160 -47
- package/dist/esm/pixel/PixelEditor.module.css.js +209 -3
- package/dist/esm/pixel/PixelEditorCanvas.js +29 -14
- package/dist/esm/pixel/PixelEditorMenuBar.js +160 -160
- package/dist/esm/pixel/PixelEditorRightPanel.js +377 -43
- package/dist/esm/pixel/PixelEditorStatusBar.js +47 -18
- package/dist/esm/pixel/PixelEditorTimeline.js +106 -21
- package/dist/esm/pixel/PixelEditorToolbar.js +99 -19
- package/dist/esm/pixel/SpriteGeneratorPanel.js +483 -301
- package/dist/esm/pixel/animalGeneratorPresets.js +782 -600
- package/dist/esm/pixel/asepriteFormat.js +517 -559
- package/dist/esm/pixel/buildingGeneratorPresets.js +699 -519
- package/dist/esm/pixel/characterGeneratorPresets.js +650 -543
- package/dist/esm/pixel/pixel-pro.js +53 -62
- package/dist/esm/pixel/pixelEditorExports.js +397 -427
- package/dist/esm/pixel/pixelEditorTypes.js +103 -107
- package/dist/esm/pixel/pixelEditorUtils.js +551 -560
- package/dist/esm/pixel/spriteGeneratorCore.js +223 -256
- package/dist/esm/pixel/usePixelEditor.js +1322 -1342
- package/dist/esm/texture/Nice3DTexturePainter.js +709 -439
- package/dist/esm/ui/NiceUIDesigner.js +957 -526
- package/dist/esm/vector/NiceSvgToCode.js +589 -445
- package/dist/esm/vector/VectorEditor.js +291 -116
- package/dist/esm/vector/VectorEditor.module.css.js +86 -3
- package/dist/esm/vector/VectorEditorMenuBar.js +333 -273
- package/dist/esm/vector/VectorEditorRightPanel.js +1094 -369
- package/dist/esm/vector/VectorEditorShapeRenderer.js +199 -59
- package/dist/esm/vector/VectorEditorStatusBar.js +39 -11
- package/dist/esm/vector/useVectorEditor.js +849 -888
- package/dist/esm/vector/vectorAnimation.js +115 -136
- package/dist/esm/vector/vectorBooleanOps.js +401 -484
- package/dist/esm/vector/vectorEditorExport.js +207 -202
- package/dist/esm/vector/vectorEditorImport.js +174 -188
- package/dist/esm/vector/vectorEditorTypes.js +50 -48
- package/dist/esm/vector/vectorGradients.js +158 -173
- package/dist/esm/vector/vectorIconExport.js +53 -58
- package/dist/esm/vector/vectorIconImport.js +171 -218
- package/package.json +9 -15
|
@@ -1,105 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
* @module map
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @template K
|
|
11
|
-
* @template V
|
|
12
|
-
* @typedef {Map<K,V>} GlobalMap
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Creates a new Map instance.
|
|
17
|
-
*
|
|
18
|
-
* @function
|
|
19
|
-
* @return {Map<any, any>}
|
|
20
|
-
*
|
|
21
|
-
* @function
|
|
22
|
-
*/
|
|
23
|
-
const create = () => new Map();
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Copy a Map object into a fresh Map object.
|
|
27
|
-
*
|
|
28
|
-
* @function
|
|
29
|
-
* @template K,V
|
|
30
|
-
* @param {Map<K,V>} m
|
|
31
|
-
* @return {Map<K,V>}
|
|
32
|
-
*/
|
|
33
|
-
const copy = m => {
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const create = () => /* @__PURE__ */ new Map();
|
|
4
|
+
const copy = (m) => {
|
|
34
5
|
const r = create();
|
|
35
|
-
m.forEach((v, k) => {
|
|
36
|
-
|
|
6
|
+
m.forEach((v, k) => {
|
|
7
|
+
r.set(k, v);
|
|
8
|
+
});
|
|
9
|
+
return r;
|
|
37
10
|
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
* ```js
|
|
43
|
-
* const listeners = map.setIfUndefined(events, 'eventName', set.create)
|
|
44
|
-
* listeners.add(listener)
|
|
45
|
-
* ```
|
|
46
|
-
*
|
|
47
|
-
* @function
|
|
48
|
-
* @template {Map<any, any>} MAP
|
|
49
|
-
* @template {MAP extends Map<any,infer V> ? function():V : unknown} CF
|
|
50
|
-
* @param {MAP} map
|
|
51
|
-
* @param {MAP extends Map<infer K,any> ? K : unknown} key
|
|
52
|
-
* @param {CF} createT
|
|
53
|
-
* @return {ReturnType<CF>}
|
|
54
|
-
*/
|
|
55
|
-
const setIfUndefined = (map, key, createT) => {
|
|
56
|
-
let set = map.get(key);
|
|
57
|
-
if (set === undefined) {
|
|
58
|
-
map.set(key, set = createT());
|
|
11
|
+
const setIfUndefined = (map2, key, createT) => {
|
|
12
|
+
let set = map2.get(key);
|
|
13
|
+
if (set === void 0) {
|
|
14
|
+
map2.set(key, set = createT());
|
|
59
15
|
}
|
|
60
|
-
return set
|
|
16
|
+
return set;
|
|
61
17
|
};
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.
|
|
65
|
-
*
|
|
66
|
-
* @function
|
|
67
|
-
* @template K
|
|
68
|
-
* @template V
|
|
69
|
-
* @template R
|
|
70
|
-
* @param {Map<K,V>} m
|
|
71
|
-
* @param {function(V,K):R} f
|
|
72
|
-
* @return {Array<R>}
|
|
73
|
-
*/
|
|
74
18
|
const map = (m, f) => {
|
|
75
19
|
const res = [];
|
|
76
20
|
for (const [key, value] of m) {
|
|
77
21
|
res.push(f(value, key));
|
|
78
22
|
}
|
|
79
|
-
return res
|
|
23
|
+
return res;
|
|
80
24
|
};
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Tests whether any key-value pairs pass the test implemented by `f(value, key)`.
|
|
84
|
-
*
|
|
85
|
-
* @todo should rename to some - similarly to Array.some
|
|
86
|
-
*
|
|
87
|
-
* @function
|
|
88
|
-
* @template K
|
|
89
|
-
* @template V
|
|
90
|
-
* @param {Map<K,V>} m
|
|
91
|
-
* @param {function(V,K):boolean} f
|
|
92
|
-
* @return {boolean}
|
|
93
|
-
*/
|
|
94
25
|
const any = (m, f) => {
|
|
95
26
|
for (const [key, value] of m) {
|
|
96
27
|
if (f(value, key)) {
|
|
97
|
-
return true
|
|
28
|
+
return true;
|
|
98
29
|
}
|
|
99
30
|
}
|
|
100
|
-
return false
|
|
31
|
+
return false;
|
|
101
32
|
};
|
|
102
|
-
|
|
103
33
|
exports.any = any;
|
|
104
34
|
exports.copy = copy;
|
|
105
35
|
exports.create = create;
|
|
@@ -1,40 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Common Math expressions.
|
|
5
|
-
*
|
|
6
|
-
* @module math
|
|
7
|
-
*/
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
9
3
|
const floor = Math.floor;
|
|
10
4
|
const abs = Math.abs;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @function
|
|
14
|
-
* @param {number} a
|
|
15
|
-
* @param {number} b
|
|
16
|
-
* @return {number} The smaller element of a and b
|
|
17
|
-
*/
|
|
18
5
|
const min = (a, b) => a < b ? a : b;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* @function
|
|
22
|
-
* @param {number} a
|
|
23
|
-
* @param {number} b
|
|
24
|
-
* @return {number} The bigger element of a and b
|
|
25
|
-
*/
|
|
26
6
|
const max = (a, b) => a > b ? a : b;
|
|
27
|
-
|
|
28
7
|
const pow = Math.pow;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Check whether n is negative, while considering the -0 edge case. While `-0 < 0` is false, this
|
|
32
|
-
* function returns true for -0,-1,,.. and returns false for 0,1,2,...
|
|
33
|
-
* @param {number} n
|
|
34
|
-
* @return {boolean} Wether n is negative. This function also distinguishes between -0 and +0
|
|
35
|
-
*/
|
|
36
|
-
const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0;
|
|
37
|
-
|
|
8
|
+
const isNegativeZero = (n) => n !== 0 ? n < 0 : 1 / n < 0;
|
|
38
9
|
exports.abs = abs;
|
|
39
10
|
exports.floor = floor;
|
|
40
11
|
exports.isNegativeZero = isNegativeZero;
|
|
@@ -1,20 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Utility helpers for working with numbers.
|
|
7
|
-
*
|
|
8
|
-
* @module number
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const math = require("./math.js");
|
|
12
4
|
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
|
|
13
5
|
const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER;
|
|
14
|
-
|
|
15
|
-
/* c8 ignore next */
|
|
16
|
-
const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num);
|
|
17
|
-
|
|
6
|
+
const isInteger = Number.isInteger || ((num) => typeof num === "number" && isFinite(num) && math.floor(num) === num);
|
|
18
7
|
exports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;
|
|
19
8
|
exports.MIN_SAFE_INTEGER = MIN_SAFE_INTEGER;
|
|
20
9
|
exports.isInteger = isInteger;
|
|
@@ -1,122 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @param {any} o
|
|
7
|
-
* @return {o is { [k:string]:any }}
|
|
8
|
-
*/
|
|
9
|
-
const isObject = o => typeof o === 'object';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Object.assign
|
|
13
|
-
*/
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const equality = require("./trait/equality.js");
|
|
4
|
+
const isObject = (o) => typeof o === "object";
|
|
14
5
|
const assign = Object.assign;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @param {Object<string,any>} obj
|
|
18
|
-
*/
|
|
19
6
|
const keys = Object.keys;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @template V
|
|
23
|
-
* @param {{[k:string]:V}} obj
|
|
24
|
-
* @param {function(V,string):any} f
|
|
25
|
-
*/
|
|
26
7
|
const forEach = (obj, f) => {
|
|
27
8
|
for (const key in obj) {
|
|
28
9
|
f(obj[key], key);
|
|
29
10
|
}
|
|
30
11
|
};
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* @todo implement mapToArray & map
|
|
34
|
-
*
|
|
35
|
-
* @template R
|
|
36
|
-
* @param {Object<string,any>} obj
|
|
37
|
-
* @param {function(any,string):R} f
|
|
38
|
-
* @return {Array<R>}
|
|
39
|
-
*/
|
|
40
12
|
const map = (obj, f) => {
|
|
41
13
|
const results = [];
|
|
42
14
|
for (const key in obj) {
|
|
43
15
|
results.push(f(obj[key], key));
|
|
44
16
|
}
|
|
45
|
-
return results
|
|
17
|
+
return results;
|
|
46
18
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* @param {Object<string,any>} obj
|
|
50
|
-
* @return {number}
|
|
51
|
-
*/
|
|
52
|
-
const size = obj => keys(obj).length;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* @param {Object|null|undefined} obj
|
|
56
|
-
*/
|
|
57
|
-
const isEmpty = obj => {
|
|
58
|
-
// eslint-disable-next-line no-unreachable-loop
|
|
19
|
+
const size = (obj) => keys(obj).length;
|
|
20
|
+
const isEmpty = (obj) => {
|
|
59
21
|
for (const _k in obj) {
|
|
60
|
-
return false
|
|
22
|
+
return false;
|
|
61
23
|
}
|
|
62
|
-
return true
|
|
24
|
+
return true;
|
|
63
25
|
};
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* @template {{ [key:string|number|symbol]: any }} T
|
|
67
|
-
* @param {T} obj
|
|
68
|
-
* @param {(v:T[keyof T],k:keyof T)=>boolean} f
|
|
69
|
-
* @return {boolean}
|
|
70
|
-
*/
|
|
71
26
|
const every = (obj, f) => {
|
|
72
27
|
for (const key in obj) {
|
|
73
28
|
if (!f(obj[key], key)) {
|
|
74
|
-
return false
|
|
29
|
+
return false;
|
|
75
30
|
}
|
|
76
31
|
}
|
|
77
|
-
return true
|
|
32
|
+
return true;
|
|
78
33
|
};
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Calls `Object.prototype.hasOwnProperty`.
|
|
82
|
-
*
|
|
83
|
-
* @param {any} obj
|
|
84
|
-
* @param {string|number|symbol} key
|
|
85
|
-
* @return {boolean}
|
|
86
|
-
*/
|
|
87
34
|
const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* @param {Object<string,any>} a
|
|
91
|
-
* @param {Object<string,any>} b
|
|
92
|
-
* @return {boolean}
|
|
93
|
-
*/
|
|
94
|
-
const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && equality.equals(b[key], val)));
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Make an object immutable. This hurts performance and is usually not needed if you perform good
|
|
98
|
-
* coding practices.
|
|
99
|
-
*/
|
|
35
|
+
const equalFlat = (a, b) => a === b || size(a) === size(b) && every(a, (val, key) => (val !== void 0 || hasProperty(b, key)) && equality.equals(b[key], val));
|
|
100
36
|
const freeze = Object.freeze;
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Make an object and all its children immutable.
|
|
104
|
-
* This *really* hurts performance and is usually not needed if you perform good coding practices.
|
|
105
|
-
*
|
|
106
|
-
* @template {any} T
|
|
107
|
-
* @param {T} o
|
|
108
|
-
* @return {Readonly<T>}
|
|
109
|
-
*/
|
|
110
37
|
const deepFreeze = (o) => {
|
|
111
38
|
for (const key in o) {
|
|
112
39
|
const c = o[key];
|
|
113
|
-
if (typeof c ===
|
|
40
|
+
if (typeof c === "object" || typeof c === "function") {
|
|
114
41
|
deepFreeze(o[key]);
|
|
115
42
|
}
|
|
116
43
|
}
|
|
117
|
-
return freeze(o)
|
|
44
|
+
return freeze(o);
|
|
118
45
|
};
|
|
119
|
-
|
|
120
46
|
exports.assign = assign;
|
|
121
47
|
exports.deepFreeze = deepFreeze;
|
|
122
48
|
exports.equalFlat = equalFlat;
|
|
@@ -1,75 +1,60 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Observable class prototype.
|
|
9
|
-
*
|
|
10
|
-
* @module observable
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Handles named events.
|
|
16
|
-
* @experimental
|
|
17
|
-
*
|
|
18
|
-
* This is basically a (better typed) duplicate of Observable, which will replace Observable in the
|
|
19
|
-
* next release.
|
|
20
|
-
*
|
|
21
|
-
* @template {{[key in keyof EVENTS]: function(...any):void}} EVENTS
|
|
22
|
-
*/
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const map = require("./map.js");
|
|
4
|
+
const set = require("./set.js");
|
|
5
|
+
const array = require("./array.js");
|
|
23
6
|
class ObservableV2 {
|
|
24
|
-
constructor
|
|
25
|
-
/**
|
|
26
|
-
* Some desc.
|
|
27
|
-
* @type {Map<string, Set<any>>}
|
|
28
|
-
*/
|
|
7
|
+
constructor() {
|
|
29
8
|
this._observers = map.create();
|
|
30
9
|
}
|
|
31
|
-
|
|
32
10
|
/**
|
|
33
11
|
* @template {keyof EVENTS & string} NAME
|
|
34
12
|
* @param {NAME} name
|
|
35
13
|
* @param {EVENTS[NAME]} f
|
|
36
14
|
*/
|
|
37
|
-
on
|
|
38
|
-
map.setIfUndefined(
|
|
39
|
-
|
|
15
|
+
on(name, f) {
|
|
16
|
+
map.setIfUndefined(
|
|
17
|
+
this._observers,
|
|
18
|
+
/** @type {string} */
|
|
19
|
+
name,
|
|
20
|
+
set.create
|
|
21
|
+
).add(f);
|
|
22
|
+
return f;
|
|
40
23
|
}
|
|
41
|
-
|
|
42
24
|
/**
|
|
43
25
|
* @template {keyof EVENTS & string} NAME
|
|
44
26
|
* @param {NAME} name
|
|
45
27
|
* @param {EVENTS[NAME]} f
|
|
46
28
|
*/
|
|
47
|
-
once
|
|
48
|
-
/**
|
|
49
|
-
* @param {...any} args
|
|
50
|
-
*/
|
|
29
|
+
once(name, f) {
|
|
51
30
|
const _f = (...args) => {
|
|
52
|
-
this.off(
|
|
31
|
+
this.off(
|
|
32
|
+
name,
|
|
33
|
+
/** @type {any} */
|
|
34
|
+
_f
|
|
35
|
+
);
|
|
53
36
|
f(...args);
|
|
54
37
|
};
|
|
55
|
-
this.on(
|
|
38
|
+
this.on(
|
|
39
|
+
name,
|
|
40
|
+
/** @type {any} */
|
|
41
|
+
_f
|
|
42
|
+
);
|
|
56
43
|
}
|
|
57
|
-
|
|
58
44
|
/**
|
|
59
45
|
* @template {keyof EVENTS & string} NAME
|
|
60
46
|
* @param {NAME} name
|
|
61
47
|
* @param {EVENTS[NAME]} f
|
|
62
48
|
*/
|
|
63
|
-
off
|
|
49
|
+
off(name, f) {
|
|
64
50
|
const observers = this._observers.get(name);
|
|
65
|
-
if (observers !==
|
|
51
|
+
if (observers !== void 0) {
|
|
66
52
|
observers.delete(f);
|
|
67
53
|
if (observers.size === 0) {
|
|
68
54
|
this._observers.delete(name);
|
|
69
55
|
}
|
|
70
56
|
}
|
|
71
57
|
}
|
|
72
|
-
|
|
73
58
|
/**
|
|
74
59
|
* Emit a named event. All registered event listeners that listen to the
|
|
75
60
|
* specified name will receive the event.
|
|
@@ -80,69 +65,48 @@ class ObservableV2 {
|
|
|
80
65
|
* @param {NAME} name The event name.
|
|
81
66
|
* @param {Parameters<EVENTS[NAME]>} args The arguments that are applied to the event listener.
|
|
82
67
|
*/
|
|
83
|
-
emit
|
|
84
|
-
|
|
85
|
-
return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))
|
|
68
|
+
emit(name, args) {
|
|
69
|
+
return array.from((this._observers.get(name) || map.create()).values()).forEach((f) => f(...args));
|
|
86
70
|
}
|
|
87
|
-
|
|
88
|
-
destroy () {
|
|
71
|
+
destroy() {
|
|
89
72
|
this._observers = map.create();
|
|
90
73
|
}
|
|
91
74
|
}
|
|
92
|
-
|
|
93
|
-
/* c8 ignore start */
|
|
94
|
-
/**
|
|
95
|
-
* Handles named events.
|
|
96
|
-
*
|
|
97
|
-
* @deprecated
|
|
98
|
-
* @template N
|
|
99
|
-
*/
|
|
100
75
|
class Observable {
|
|
101
|
-
constructor
|
|
102
|
-
/**
|
|
103
|
-
* Some desc.
|
|
104
|
-
* @type {Map<N, any>}
|
|
105
|
-
*/
|
|
76
|
+
constructor() {
|
|
106
77
|
this._observers = map.create();
|
|
107
78
|
}
|
|
108
|
-
|
|
109
79
|
/**
|
|
110
80
|
* @param {N} name
|
|
111
81
|
* @param {function} f
|
|
112
82
|
*/
|
|
113
|
-
on
|
|
83
|
+
on(name, f) {
|
|
114
84
|
map.setIfUndefined(this._observers, name, set.create).add(f);
|
|
115
85
|
}
|
|
116
|
-
|
|
117
86
|
/**
|
|
118
87
|
* @param {N} name
|
|
119
88
|
* @param {function} f
|
|
120
89
|
*/
|
|
121
|
-
once
|
|
122
|
-
/**
|
|
123
|
-
* @param {...any} args
|
|
124
|
-
*/
|
|
90
|
+
once(name, f) {
|
|
125
91
|
const _f = (...args) => {
|
|
126
92
|
this.off(name, _f);
|
|
127
93
|
f(...args);
|
|
128
94
|
};
|
|
129
95
|
this.on(name, _f);
|
|
130
96
|
}
|
|
131
|
-
|
|
132
97
|
/**
|
|
133
98
|
* @param {N} name
|
|
134
99
|
* @param {function} f
|
|
135
100
|
*/
|
|
136
|
-
off
|
|
101
|
+
off(name, f) {
|
|
137
102
|
const observers = this._observers.get(name);
|
|
138
|
-
if (observers !==
|
|
103
|
+
if (observers !== void 0) {
|
|
139
104
|
observers.delete(f);
|
|
140
105
|
if (observers.size === 0) {
|
|
141
106
|
this._observers.delete(name);
|
|
142
107
|
}
|
|
143
108
|
}
|
|
144
109
|
}
|
|
145
|
-
|
|
146
110
|
/**
|
|
147
111
|
* Emit a named event. All registered event listeners that listen to the
|
|
148
112
|
* specified name will receive the event.
|
|
@@ -152,16 +116,12 @@ class Observable {
|
|
|
152
116
|
* @param {N} name The event name.
|
|
153
117
|
* @param {Array<any>} args The arguments that are applied to the event listener.
|
|
154
118
|
*/
|
|
155
|
-
emit
|
|
156
|
-
|
|
157
|
-
return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))
|
|
119
|
+
emit(name, args) {
|
|
120
|
+
return array.from((this._observers.get(name) || map.create()).values()).forEach((f) => f(...args));
|
|
158
121
|
}
|
|
159
|
-
|
|
160
|
-
destroy () {
|
|
122
|
+
destroy() {
|
|
161
123
|
this._observers = map.create();
|
|
162
124
|
}
|
|
163
125
|
}
|
|
164
|
-
/* c8 ignore end */
|
|
165
|
-
|
|
166
126
|
exports.Observable = Observable;
|
|
167
127
|
exports.ObservableV2 = ObservableV2;
|
|
@@ -1,32 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Working with value pairs.
|
|
5
|
-
*
|
|
6
|
-
* @module pair
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @template L,R
|
|
11
|
-
*/
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
12
3
|
class Pair {
|
|
13
4
|
/**
|
|
14
5
|
* @param {L} left
|
|
15
6
|
* @param {R} right
|
|
16
7
|
*/
|
|
17
|
-
constructor
|
|
8
|
+
constructor(left, right) {
|
|
18
9
|
this.left = left;
|
|
19
10
|
this.right = right;
|
|
20
11
|
}
|
|
21
12
|
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @template L,R
|
|
25
|
-
* @param {L} left
|
|
26
|
-
* @param {R} right
|
|
27
|
-
* @return {Pair<L,R>}
|
|
28
|
-
*/
|
|
29
13
|
const create = (left, right) => new Pair(left, right);
|
|
30
|
-
|
|
31
14
|
exports.Pair = Pair;
|
|
32
15
|
exports.create = create;
|
|
@@ -1,90 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Fast Pseudo Random Number Generators.
|
|
8
|
-
*
|
|
9
|
-
* Given a seed a PRNG generates a sequence of numbers that cannot be reasonably predicted.
|
|
10
|
-
* Two PRNGs must generate the same random sequence of numbers if given the same seed.
|
|
11
|
-
*
|
|
12
|
-
* @module prng
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Generates a single random bool.
|
|
18
|
-
*
|
|
19
|
-
* @param {PRNG} gen A random number generator.
|
|
20
|
-
* @return {Boolean} A random boolean
|
|
21
|
-
*/
|
|
22
|
-
const bool = gen => (gen.next() >= 0.5);
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Generates a random integer with 53 bit resolution.
|
|
26
|
-
*
|
|
27
|
-
* @param {PRNG} gen A random number generator.
|
|
28
|
-
* @param {Number} min The lower bound of the allowed return values (inclusive).
|
|
29
|
-
* @param {Number} max The upper bound of the allowed return values (inclusive).
|
|
30
|
-
* @return {Number} A random integer on [min, max]
|
|
31
|
-
*/
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const string = require("./string.js");
|
|
4
|
+
const math = require("./math.js");
|
|
5
|
+
const bool = (gen) => gen.next() >= 0.5;
|
|
32
6
|
const int53 = (gen, min, max) => math.floor(gen.next() * (max + 1 - min) + min);
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Generates a random integer with 32 bit resolution.
|
|
36
|
-
*
|
|
37
|
-
* @param {PRNG} gen A random number generator.
|
|
38
|
-
* @param {Number} min The lower bound of the allowed return values (inclusive).
|
|
39
|
-
* @param {Number} max The upper bound of the allowed return values (inclusive).
|
|
40
|
-
* @return {Number} A random integer on [min, max]
|
|
41
|
-
*/
|
|
42
7
|
const int32 = (gen, min, max) => math.floor(gen.next() * (max + 1 - min) + min);
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* @deprecated
|
|
46
|
-
* Optimized version of prng.int32. It has the same precision as prng.int32, but should be preferred when
|
|
47
|
-
* openaring on smaller ranges.
|
|
48
|
-
*
|
|
49
|
-
* @param {PRNG} gen A random number generator.
|
|
50
|
-
* @param {Number} min The lower bound of the allowed return values (inclusive).
|
|
51
|
-
* @param {Number} max The upper bound of the allowed return values (inclusive). The max inclusive number is `binary.BITS31-1`
|
|
52
|
-
* @return {Number} A random integer on [min, max]
|
|
53
|
-
*/
|
|
54
8
|
const int31 = (gen, min, max) => int32(gen, min, max);
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* @param {PRNG} gen
|
|
58
|
-
* @return {string} A single letter (a-z)
|
|
59
|
-
*/
|
|
60
|
-
const letter = gen => string.fromCharCode(int31(gen, 97, 122));
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* @param {PRNG} gen
|
|
64
|
-
* @param {number} [minLen=0]
|
|
65
|
-
* @param {number} [maxLen=20]
|
|
66
|
-
* @return {string} A random word (0-20 characters) without spaces consisting of letters (a-z)
|
|
67
|
-
*/
|
|
9
|
+
const letter = (gen) => string.fromCharCode(int31(gen, 97, 122));
|
|
68
10
|
const word = (gen, minLen = 0, maxLen = 20) => {
|
|
69
11
|
const len = int31(gen, minLen, maxLen);
|
|
70
|
-
let str =
|
|
12
|
+
let str = "";
|
|
71
13
|
for (let i = 0; i < len; i++) {
|
|
72
14
|
str += letter(gen);
|
|
73
15
|
}
|
|
74
|
-
return str
|
|
16
|
+
return str;
|
|
75
17
|
};
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Returns one element of a given array.
|
|
79
|
-
*
|
|
80
|
-
* @param {PRNG} gen A random number generator.
|
|
81
|
-
* @param {Array<T>} array Non empty Array of possible values.
|
|
82
|
-
* @return {T} One of the values of the supplied Array.
|
|
83
|
-
* @template T
|
|
84
|
-
*/
|
|
85
18
|
const oneOf = (gen, array) => array[int31(gen, 0, array.length - 1)];
|
|
86
|
-
/* c8 ignore stop */
|
|
87
|
-
|
|
88
19
|
exports.bool = bool;
|
|
89
20
|
exports.int31 = int31;
|
|
90
21
|
exports.int32 = int32;
|
|
@@ -1,32 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @template T
|
|
12
|
-
* @callback PromiseResolve
|
|
13
|
-
* @param {T|PromiseLike<T>} [result]
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @template T
|
|
18
|
-
* @param {function(PromiseResolve<T>,function(Error):void):any} f
|
|
19
|
-
* @return {Promise<T>}
|
|
20
|
-
*/
|
|
21
|
-
const create = f => /** @type {Promise<T>} */ (new Promise(f));
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* `Promise.all` wait for all promises in the array to resolve and return the result
|
|
25
|
-
* @template {unknown[] | []} PS
|
|
26
|
-
*
|
|
27
|
-
* @param {PS} ps
|
|
28
|
-
* @return {Promise<{ -readonly [P in keyof PS]: Awaited<PS[P]> }>}
|
|
29
|
-
*/
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const create = (f) => (
|
|
4
|
+
/** @type {Promise<T>} */
|
|
5
|
+
new Promise(f)
|
|
6
|
+
);
|
|
30
7
|
Promise.all.bind(Promise);
|
|
31
|
-
|
|
32
8
|
exports.create = create;
|