@opensumi/ide-core-common 2.12.1-next-079c1930
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/lib/application-error.d.ts +36 -0
- package/lib/application-error.d.ts.map +1 -0
- package/lib/application-error.js +64 -0
- package/lib/application-error.js.map +1 -0
- package/lib/application-props.d.ts +26 -0
- package/lib/application-props.d.ts.map +1 -0
- package/lib/application-props.js +3 -0
- package/lib/application-props.js.map +1 -0
- package/lib/arrays.d.ts +131 -0
- package/lib/arrays.d.ts.map +1 -0
- package/lib/arrays.js +533 -0
- package/lib/arrays.js.map +1 -0
- package/lib/async.d.ts +165 -0
- package/lib/async.d.ts.map +1 -0
- package/lib/async.js +417 -0
- package/lib/async.js.map +1 -0
- package/lib/browser-fs/ensure-dir.d.ts +7 -0
- package/lib/browser-fs/ensure-dir.d.ts.map +1 -0
- package/lib/browser-fs/ensure-dir.js +40 -0
- package/lib/browser-fs/ensure-dir.js.map +1 -0
- package/lib/browser-fs/util.d.ts +18 -0
- package/lib/browser-fs/util.d.ts.map +1 -0
- package/lib/browser-fs/util.js +21 -0
- package/lib/browser-fs/util.js.map +1 -0
- package/lib/cache.d.ts +12 -0
- package/lib/cache.d.ts.map +1 -0
- package/lib/cache.js +36 -0
- package/lib/cache.js.map +1 -0
- package/lib/cancellation.d.ts +23 -0
- package/lib/cancellation.d.ts.map +1 -0
- package/lib/cancellation.js +116 -0
- package/lib/cancellation.js.map +1 -0
- package/lib/charCode.d.ts +406 -0
- package/lib/charCode.d.ts.map +1 -0
- package/lib/charCode.js +8 -0
- package/lib/charCode.js.map +1 -0
- package/lib/character-classifier.d.ts +25 -0
- package/lib/character-classifier.d.ts.map +1 -0
- package/lib/character-classifier.js +58 -0
- package/lib/character-classifier.js.map +1 -0
- package/lib/command.d.ts +350 -0
- package/lib/command.d.ts.map +1 -0
- package/lib/command.js +408 -0
- package/lib/command.js.map +1 -0
- package/lib/connection.d.ts +8 -0
- package/lib/connection.d.ts.map +1 -0
- package/lib/connection.js +17 -0
- package/lib/connection.js.map +1 -0
- package/lib/const/application.d.ts +3 -0
- package/lib/const/application.d.ts.map +1 -0
- package/lib/const/application.js +6 -0
- package/lib/const/application.js.map +1 -0
- package/lib/const/encodings.d.ts +10 -0
- package/lib/const/encodings.d.ts.map +1 -0
- package/lib/const/encodings.js +244 -0
- package/lib/const/encodings.js.map +1 -0
- package/lib/const/index.d.ts +2 -0
- package/lib/const/index.d.ts.map +1 -0
- package/lib/const/index.js +5 -0
- package/lib/const/index.js.map +1 -0
- package/lib/contribution-provider.d.ts +38 -0
- package/lib/contribution-provider.d.ts.map +1 -0
- package/lib/contribution-provider.js +60 -0
- package/lib/contribution-provider.js.map +1 -0
- package/lib/credential.d.ts +21 -0
- package/lib/credential.d.ts.map +1 -0
- package/lib/credential.js +6 -0
- package/lib/credential.js.map +1 -0
- package/lib/cryptr.d.ts +7 -0
- package/lib/cryptr.d.ts.map +1 -0
- package/lib/cryptr.js +6 -0
- package/lib/cryptr.js.map +1 -0
- package/lib/date.d.ts +2 -0
- package/lib/date.d.ts.map +1 -0
- package/lib/date.js +16 -0
- package/lib/date.js.map +1 -0
- package/lib/declare.d.ts +3 -0
- package/lib/declare.d.ts.map +1 -0
- package/lib/declare.js +3 -0
- package/lib/declare.js.map +1 -0
- package/lib/di-helper/domain-helper.d.ts +14 -0
- package/lib/di-helper/domain-helper.d.ts.map +1 -0
- package/lib/di-helper/domain-helper.js +48 -0
- package/lib/di-helper/domain-helper.js.map +1 -0
- package/lib/di-helper/index.d.ts +2 -0
- package/lib/di-helper/index.d.ts.map +1 -0
- package/lib/di-helper/index.js +5 -0
- package/lib/di-helper/index.js.map +1 -0
- package/lib/disposable.d.ts +88 -0
- package/lib/disposable.d.ts.map +1 -0
- package/lib/disposable.js +309 -0
- package/lib/disposable.js.map +1 -0
- package/lib/electron.d.ts +118 -0
- package/lib/electron.d.ts.map +1 -0
- package/lib/electron.js +7 -0
- package/lib/electron.js.map +1 -0
- package/lib/encoding/index.d.ts +34 -0
- package/lib/encoding/index.d.ts.map +1 -0
- package/lib/encoding/index.js +219 -0
- package/lib/encoding/index.js.map +1 -0
- package/lib/env.d.ts +2 -0
- package/lib/env.d.ts.map +1 -0
- package/lib/env.js +5 -0
- package/lib/env.js.map +1 -0
- package/lib/errors.d.ts +60 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +148 -0
- package/lib/errors.js.map +1 -0
- package/lib/event-bus/basic-event.d.ts +5 -0
- package/lib/event-bus/basic-event.d.ts.map +1 -0
- package/lib/event-bus/basic-event.js +10 -0
- package/lib/event-bus/basic-event.js.map +1 -0
- package/lib/event-bus/event-bus-types.d.ts +66 -0
- package/lib/event-bus/event-bus-types.d.ts.map +1 -0
- package/lib/event-bus/event-bus-types.js +5 -0
- package/lib/event-bus/event-bus-types.js.map +1 -0
- package/lib/event-bus/event-bus.d.ts +13 -0
- package/lib/event-bus/event-bus.d.ts.map +1 -0
- package/lib/event-bus/event-bus.js +55 -0
- package/lib/event-bus/event-bus.js.map +1 -0
- package/lib/event-bus/event-decorator.d.ts +10 -0
- package/lib/event-bus/event-decorator.d.ts.map +1 -0
- package/lib/event-bus/event-decorator.js +34 -0
- package/lib/event-bus/event-decorator.js.map +1 -0
- package/lib/event-bus/index.d.ts +5 -0
- package/lib/event-bus/index.d.ts.map +1 -0
- package/lib/event-bus/index.js +8 -0
- package/lib/event-bus/index.js.map +1 -0
- package/lib/event.d.ts +270 -0
- package/lib/event.d.ts.map +1 -0
- package/lib/event.js +810 -0
- package/lib/event.js.map +1 -0
- package/lib/filters.d.ts +51 -0
- package/lib/filters.d.ts.map +1 -0
- package/lib/filters.js +688 -0
- package/lib/filters.js.map +1 -0
- package/lib/functional.d.ts +4 -0
- package/lib/functional.d.ts.map +1 -0
- package/lib/functional.js +45 -0
- package/lib/functional.js.map +1 -0
- package/lib/hash-calculate/WASMInterface.d.ts +61 -0
- package/lib/hash-calculate/WASMInterface.d.ts.map +1 -0
- package/lib/hash-calculate/WASMInterface.js +180 -0
- package/lib/hash-calculate/WASMInterface.js.map +1 -0
- package/lib/hash-calculate/hash-calculate.d.ts +13 -0
- package/lib/hash-calculate/hash-calculate.d.ts.map +1 -0
- package/lib/hash-calculate/hash-calculate.js +41 -0
- package/lib/hash-calculate/hash-calculate.js.map +1 -0
- package/lib/hash-calculate/lockedCreate.d.ts +4 -0
- package/lib/hash-calculate/lockedCreate.d.ts.map +1 -0
- package/lib/hash-calculate/lockedCreate.js +17 -0
- package/lib/hash-calculate/lockedCreate.js.map +1 -0
- package/lib/hash-calculate/md5.wasm.json +1 -0
- package/lib/hash-calculate/mutex.d.ts +6 -0
- package/lib/hash-calculate/mutex.d.ts.map +1 -0
- package/lib/hash-calculate/mutex.js +32 -0
- package/lib/hash-calculate/mutex.js.map +1 -0
- package/lib/hash-calculate/util.d.ts +12 -0
- package/lib/hash-calculate/util.d.ts.map +1 -0
- package/lib/hash-calculate/util.js +166 -0
- package/lib/hash-calculate/util.js.map +1 -0
- package/lib/id-generator.d.ts +8 -0
- package/lib/id-generator.d.ts.map +1 -0
- package/lib/id-generator.js +15 -0
- package/lib/id-generator.js.map +1 -0
- package/lib/index.d.ts +47 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +50 -0
- package/lib/index.js.map +1 -0
- package/lib/iterator.d.ts +14 -0
- package/lib/iterator.d.ts.map +1 -0
- package/lib/iterator.js +9 -0
- package/lib/iterator.js.map +1 -0
- package/lib/json-schema.d.ts +65 -0
- package/lib/json-schema.d.ts.map +1 -0
- package/lib/json-schema.js +3 -0
- package/lib/json-schema.js.map +1 -0
- package/lib/keyboard/index.d.ts +3 -0
- package/lib/keyboard/index.d.ts.map +1 -0
- package/lib/keyboard/index.js +6 -0
- package/lib/keyboard/index.js.map +1 -0
- package/lib/keyboard/keyboard-layout-provider.d.ts +38 -0
- package/lib/keyboard/keyboard-layout-provider.d.ts.map +1 -0
- package/lib/keyboard/keyboard-layout-provider.js +23 -0
- package/lib/keyboard/keyboard-layout-provider.js.map +1 -0
- package/lib/keyboard/keymap.d.ts +71 -0
- package/lib/keyboard/keymap.d.ts.map +1 -0
- package/lib/keyboard/keymap.js +128 -0
- package/lib/keyboard/keymap.js.map +1 -0
- package/lib/lifecycle.d.ts +17 -0
- package/lib/lifecycle.d.ts.map +1 -0
- package/lib/lifecycle.js +37 -0
- package/lib/lifecycle.js.map +1 -0
- package/lib/line-text.d.ts +17 -0
- package/lib/line-text.d.ts.map +1 -0
- package/lib/line-text.js +72 -0
- package/lib/line-text.js.map +1 -0
- package/lib/linked-list.d.ts +18 -0
- package/lib/linked-list.d.ts.map +1 -0
- package/lib/linked-list.js +138 -0
- package/lib/linked-list.js.map +1 -0
- package/lib/linkedText.d.ts +13 -0
- package/lib/linkedText.d.ts.map +1 -0
- package/lib/linkedText.js +50 -0
- package/lib/linkedText.js.map +1 -0
- package/lib/localize.d.ts +52 -0
- package/lib/localize.d.ts.map +1 -0
- package/lib/localize.js +128 -0
- package/lib/localize.js.map +1 -0
- package/lib/log.d.ts +181 -0
- package/lib/log.d.ts.map +1 -0
- package/lib/log.js +163 -0
- package/lib/log.js.map +1 -0
- package/lib/map.d.ts +124 -0
- package/lib/map.d.ts.map +1 -0
- package/lib/map.js +819 -0
- package/lib/map.js.map +1 -0
- package/lib/menu.d.ts +27 -0
- package/lib/menu.d.ts.map +1 -0
- package/lib/menu.js +5 -0
- package/lib/menu.js.map +1 -0
- package/lib/mocks/electron/browserMock.d.ts +2 -0
- package/lib/mocks/electron/browserMock.d.ts.map +1 -0
- package/lib/mocks/electron/browserMock.js +15 -0
- package/lib/mocks/electron/browserMock.js.map +1 -0
- package/lib/mocks/electron/ipcRenderer.d.ts +13 -0
- package/lib/mocks/electron/ipcRenderer.d.ts.map +1 -0
- package/lib/mocks/electron/ipcRenderer.js +32 -0
- package/lib/mocks/electron/ipcRenderer.js.map +1 -0
- package/lib/module.d.ts +23 -0
- package/lib/module.d.ts.map +1 -0
- package/lib/module.js +22 -0
- package/lib/module.js.map +1 -0
- package/lib/network.d.ts +33 -0
- package/lib/network.d.ts.map +1 -0
- package/lib/network.js +37 -0
- package/lib/network.js.map +1 -0
- package/lib/node/port.d.ts +14 -0
- package/lib/node/port.d.ts.map +1 -0
- package/lib/node/port.js +124 -0
- package/lib/node/port.js.map +1 -0
- package/lib/path.d.ts +92 -0
- package/lib/path.d.ts.map +1 -0
- package/lib/path.js +1711 -0
- package/lib/path.js.map +1 -0
- package/lib/platform.d.ts +48 -0
- package/lib/platform.d.ts.map +1 -0
- package/lib/platform.js +143 -0
- package/lib/platform.js.map +1 -0
- package/lib/preferences/index.d.ts +3 -0
- package/lib/preferences/index.d.ts.map +1 -0
- package/lib/preferences/index.js +6 -0
- package/lib/preferences/index.js.map +1 -0
- package/lib/preferences/preference-schema.d.ts +76 -0
- package/lib/preferences/preference-schema.d.ts.map +1 -0
- package/lib/preferences/preference-schema.js +59 -0
- package/lib/preferences/preference-schema.js.map +1 -0
- package/lib/preferences/preference-scope.d.ts +15 -0
- package/lib/preferences/preference-scope.d.ts.map +1 -0
- package/lib/preferences/preference-scope.js +54 -0
- package/lib/preferences/preference-scope.js.map +1 -0
- package/lib/problem-matcher.d.ts +111 -0
- package/lib/problem-matcher.d.ts.map +1 -0
- package/lib/problem-matcher.js +294 -0
- package/lib/problem-matcher.js.map +1 -0
- package/lib/problem-pattern.d.ts +193 -0
- package/lib/problem-pattern.d.ts.map +1 -0
- package/lib/problem-pattern.js +416 -0
- package/lib/problem-pattern.js.map +1 -0
- package/lib/process.d.ts +5 -0
- package/lib/process.d.ts.map +1 -0
- package/lib/process.js +15 -0
- package/lib/process.js.map +1 -0
- package/lib/progress.d.ts +56 -0
- package/lib/progress.d.ts.map +1 -0
- package/lib/progress.js +25 -0
- package/lib/progress.js.map +1 -0
- package/lib/range.d.ts +7 -0
- package/lib/range.d.ts.map +1 -0
- package/lib/range.js +28 -0
- package/lib/range.js.map +1 -0
- package/lib/reference.d.ts +35 -0
- package/lib/reference.d.ts.map +1 -0
- package/lib/reference.js +122 -0
- package/lib/reference.js.map +1 -0
- package/lib/reporter.d.ts +16 -0
- package/lib/reporter.d.ts.map +1 -0
- package/lib/reporter.js +66 -0
- package/lib/reporter.js.map +1 -0
- package/lib/sequence.d.ts +20 -0
- package/lib/sequence.d.ts.map +1 -0
- package/lib/sequence.js +17 -0
- package/lib/sequence.js.map +1 -0
- package/lib/storage.d.ts +64 -0
- package/lib/storage.d.ts.map +1 -0
- package/lib/storage.js +70 -0
- package/lib/storage.js.map +1 -0
- package/lib/task-definition.d.ts +45 -0
- package/lib/task-definition.d.ts.map +1 -0
- package/lib/task-definition.js +130 -0
- package/lib/task-definition.js.map +1 -0
- package/lib/theme.d.ts +5 -0
- package/lib/theme.d.ts.map +1 -0
- package/lib/theme.js +8 -0
- package/lib/theme.js.map +1 -0
- package/lib/types/accessibility.d.ts +5 -0
- package/lib/types/accessibility.d.ts.map +1 -0
- package/lib/types/accessibility.js +3 -0
- package/lib/types/accessibility.js.map +1 -0
- package/lib/types/application.d.ts +13 -0
- package/lib/types/application.d.ts.map +1 -0
- package/lib/types/application.js +5 -0
- package/lib/types/application.js.map +1 -0
- package/lib/types/authentication.d.ts +90 -0
- package/lib/types/authentication.d.ts.map +1 -0
- package/lib/types/authentication.js +8 -0
- package/lib/types/authentication.js.map +1 -0
- package/lib/types/common.d.ts +10 -0
- package/lib/types/common.d.ts.map +1 -0
- package/lib/types/common.js +6 -0
- package/lib/types/common.js.map +1 -0
- package/lib/types/dnd.d.ts +8 -0
- package/lib/types/dnd.d.ts.map +1 -0
- package/lib/types/dnd.js +9 -0
- package/lib/types/dnd.js.map +1 -0
- package/lib/types/editor.d.ts +157 -0
- package/lib/types/editor.d.ts.map +1 -0
- package/lib/types/editor.js +148 -0
- package/lib/types/editor.js.map +1 -0
- package/lib/types/extension.d.ts +73 -0
- package/lib/types/extension.d.ts.map +1 -0
- package/lib/types/extension.js +28 -0
- package/lib/types/extension.js.map +1 -0
- package/lib/types/file-watch.d.ts +70 -0
- package/lib/types/file-watch.d.ts.map +1 -0
- package/lib/types/file-watch.js +72 -0
- package/lib/types/file-watch.js.map +1 -0
- package/lib/types/file.d.ts +219 -0
- package/lib/types/file.d.ts.map +1 -0
- package/lib/types/file.js +51 -0
- package/lib/types/file.js.map +1 -0
- package/lib/types/index.d.ts +13 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +16 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/markers/index.d.ts +3 -0
- package/lib/types/markers/index.d.ts.map +1 -0
- package/lib/types/markers/index.js +6 -0
- package/lib/types/markers/index.js.map +1 -0
- package/lib/types/markers/markers-manager.d.ts +120 -0
- package/lib/types/markers/markers-manager.d.ts.map +1 -0
- package/lib/types/markers/markers-manager.js +307 -0
- package/lib/types/markers/markers-manager.js.map +1 -0
- package/lib/types/markers/markers.d.ts +76 -0
- package/lib/types/markers/markers.d.ts.map +1 -0
- package/lib/types/markers/markers.js +76 -0
- package/lib/types/markers/markers.js.map +1 -0
- package/lib/types/message.d.ts +7 -0
- package/lib/types/message.d.ts.map +1 -0
- package/lib/types/message.js +11 -0
- package/lib/types/message.js.map +1 -0
- package/lib/types/reporter.d.ts +83 -0
- package/lib/types/reporter.d.ts.map +1 -0
- package/lib/types/reporter.js +63 -0
- package/lib/types/reporter.js.map +1 -0
- package/lib/types/string.d.ts +4 -0
- package/lib/types/string.d.ts.map +1 -0
- package/lib/types/string.js +3 -0
- package/lib/types/string.js.map +1 -0
- package/lib/uint.d.ts +32 -0
- package/lib/uint.d.ts.map +1 -0
- package/lib/uint.js +28 -0
- package/lib/uint.js.map +1 -0
- package/lib/uri.d.ts +94 -0
- package/lib/uri.d.ts.map +1 -0
- package/lib/uri.js +226 -0
- package/lib/uri.js.map +1 -0
- package/lib/utils/ansi.d.ts +5 -0
- package/lib/utils/ansi.d.ts.map +1 -0
- package/lib/utils/ansi.js +16 -0
- package/lib/utils/ansi.js.map +1 -0
- package/lib/utils/arrays.d.ts +62 -0
- package/lib/utils/arrays.d.ts.map +1 -0
- package/lib/utils/arrays.js +254 -0
- package/lib/utils/arrays.js.map +1 -0
- package/lib/utils/buffer.d.ts +36 -0
- package/lib/utils/buffer.d.ts.map +1 -0
- package/lib/utils/buffer.js +178 -0
- package/lib/utils/buffer.js.map +1 -0
- package/lib/utils/comparers.d.ts +7 -0
- package/lib/utils/comparers.d.ts.map +1 -0
- package/lib/utils/comparers.js +135 -0
- package/lib/utils/comparers.js.map +1 -0
- package/lib/utils/decorators.d.ts +13 -0
- package/lib/utils/decorators.d.ts.map +1 -0
- package/lib/utils/decorators.js +150 -0
- package/lib/utils/decorators.js.map +1 -0
- package/lib/utils/file-uri.d.ts +30 -0
- package/lib/utils/file-uri.d.ts.map +1 -0
- package/lib/utils/file-uri.js +62 -0
- package/lib/utils/file-uri.js.map +1 -0
- package/lib/utils/glob.d.ts +46 -0
- package/lib/utils/glob.d.ts.map +1 -0
- package/lib/utils/glob.js +546 -0
- package/lib/utils/glob.js.map +1 -0
- package/lib/utils/index.d.ts +14 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +17 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/ipc.d.ts +2 -0
- package/lib/utils/ipc.d.ts.map +1 -0
- package/lib/utils/ipc.js +21 -0
- package/lib/utils/ipc.js.map +1 -0
- package/lib/utils/json.d.ts +78 -0
- package/lib/utils/json.d.ts.map +1 -0
- package/lib/utils/json.js +190 -0
- package/lib/utils/json.js.map +1 -0
- package/lib/utils/marshalling.d.ts +7 -0
- package/lib/utils/marshalling.d.ts.map +1 -0
- package/lib/utils/marshalling.js +57 -0
- package/lib/utils/marshalling.js.map +1 -0
- package/lib/utils/objects.d.ts +6 -0
- package/lib/utils/objects.d.ts.map +1 -0
- package/lib/utils/objects.js +103 -0
- package/lib/utils/objects.js.map +1 -0
- package/lib/utils/os.d.ts +42 -0
- package/lib/utils/os.d.ts.map +1 -0
- package/lib/utils/os.js +94 -0
- package/lib/utils/os.js.map +1 -0
- package/lib/utils/paths.d.ts +35 -0
- package/lib/utils/paths.d.ts.map +1 -0
- package/lib/utils/paths.js +318 -0
- package/lib/utils/paths.js.map +1 -0
- package/lib/utils/promise-util.d.ts +10 -0
- package/lib/utils/promise-util.d.ts.map +1 -0
- package/lib/utils/promise-util.js +17 -0
- package/lib/utils/promise-util.js.map +1 -0
- package/lib/utils/strings.d.ts +177 -0
- package/lib/utils/strings.d.ts.map +1 -0
- package/lib/utils/strings.js +837 -0
- package/lib/utils/strings.js.map +1 -0
- package/lib/utils/types.d.ts +65 -0
- package/lib/utils/types.d.ts.map +1 -0
- package/lib/utils/types.js +194 -0
- package/lib/utils/types.js.map +1 -0
- package/lib/uuid.d.ts +2 -0
- package/lib/uuid.d.ts.map +1 -0
- package/lib/uuid.js +10 -0
- package/lib/uuid.js.map +1 -0
- package/package.json +30 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../src/filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function once<T extends Function>(this: any, fn: T): T;
|
|
2
|
+
export declare function makeRandomHexString(length: number): string;
|
|
3
|
+
export declare function removeObjectFromArray<T = any>(array: Array<T>, object: T, comparator?: (o1: T, o2: T) => boolean): void;
|
|
4
|
+
//# sourceMappingURL=functional.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functional.d.ts","sourceRoot":"","sources":["../src/functional.ts"],"names":[],"mappings":"AAKA,wBAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAe5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ1D;AAED,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,EAAE,EAAC,CAAC,KAAK,OAAO,QAW9G"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.removeObjectFromArray = exports.makeRandomHexString = exports.once = void 0;
|
|
8
|
+
function once(fn) {
|
|
9
|
+
const _this = this;
|
|
10
|
+
let didCall = false;
|
|
11
|
+
let result;
|
|
12
|
+
return function () {
|
|
13
|
+
if (didCall) {
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
didCall = true;
|
|
17
|
+
result = fn.apply(_this, arguments);
|
|
18
|
+
return result;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
exports.once = once;
|
|
22
|
+
function makeRandomHexString(length) {
|
|
23
|
+
const chars = ['0', '1', '2', '3', '4', '5', '6', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
|
|
24
|
+
let result = '';
|
|
25
|
+
for (let i = 0; i < length; i++) {
|
|
26
|
+
const idx = Math.floor(chars.length * Math.random());
|
|
27
|
+
result += chars[idx];
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
exports.makeRandomHexString = makeRandomHexString;
|
|
32
|
+
function removeObjectFromArray(array, object, comparator) {
|
|
33
|
+
let index = -1;
|
|
34
|
+
if (comparator) {
|
|
35
|
+
index = array.findIndex((o) => comparator(o, object));
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
index = array.indexOf(object);
|
|
39
|
+
}
|
|
40
|
+
if (index !== -1) {
|
|
41
|
+
array.splice(index, 1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.removeObjectFromArray = removeObjectFromArray;
|
|
45
|
+
//# sourceMappingURL=functional.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functional.js","sourceRoot":"","sources":["../src/functional.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,SAAgB,IAAI,CAAgC,EAAK;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAW,CAAC;IAEhB,OAAO;QACN,IAAI,OAAO,EAAE;YACZ,OAAO,MAAM,CAAC;SACd;QAED,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEpC,OAAO,MAAM,CAAC;IACf,CAAa,CAAC;AACf,CAAC;AAfD,oBAeC;AAED,SAAgB,mBAAmB,CAAC,MAAc;IAChD,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACpG,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;KACtB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,kDAQC;AAED,SAAgB,qBAAqB,CAAU,KAAe,EAAE,MAAS,EAAE,UAAoC;IAC9G,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;IACvB,IAAI,UAAU,EAAE;QACf,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;KACtD;SACI;QACJ,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;KAC7B;IACD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;QACjB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACvB;AACF,CAAC;AAXD,sDAWC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { IDataType } from './util';
|
|
2
|
+
export declare const MAX_HEAP: number;
|
|
3
|
+
declare type ThenArg<T> = T extends Promise<infer U> ? U : T extends ((...args: any[]) => Promise<infer V>) ? V : T;
|
|
4
|
+
export declare type IHasher = {
|
|
5
|
+
/**
|
|
6
|
+
* Initializes hash state to default value
|
|
7
|
+
*/
|
|
8
|
+
init: () => IHasher;
|
|
9
|
+
/**
|
|
10
|
+
* Updates the hash content with the given data
|
|
11
|
+
*/
|
|
12
|
+
update: (data: IDataType) => IHasher;
|
|
13
|
+
/**
|
|
14
|
+
* Calculates the hash of all of the data passed to be hashed with hash.update().
|
|
15
|
+
* Defaults to hexadecimal string
|
|
16
|
+
* @param outputType If outputType is "binary", it returns Uint8Array. Otherwise it
|
|
17
|
+
* returns hexadecimal string
|
|
18
|
+
*/
|
|
19
|
+
digest: {
|
|
20
|
+
(outputType: 'binary'): Uint8Array;
|
|
21
|
+
(outputType?: 'hex'): string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Save the current internal state of the hasher for later resumption with load().
|
|
25
|
+
* Cannot be called before .init() or after .digest()
|
|
26
|
+
*
|
|
27
|
+
* Note that this state can include arbitrary information about the value being hashed (e.g.
|
|
28
|
+
* could include N plaintext bytes from the value), so needs to be treated as being as
|
|
29
|
+
* sensitive as the input value itself.
|
|
30
|
+
*/
|
|
31
|
+
save: () => Uint8Array;
|
|
32
|
+
/**
|
|
33
|
+
* Resume a state that was created by save(). If this state was not created by a
|
|
34
|
+
* compatible build of hash-wasm, an exception will be thrown.
|
|
35
|
+
*/
|
|
36
|
+
load: (state: Uint8Array) => IHasher;
|
|
37
|
+
/**
|
|
38
|
+
* Block size in bytes
|
|
39
|
+
*/
|
|
40
|
+
blockSize: number;
|
|
41
|
+
/**
|
|
42
|
+
* Digest size in bytes
|
|
43
|
+
*/
|
|
44
|
+
digestSize: number;
|
|
45
|
+
};
|
|
46
|
+
export declare function WASMInterface(binary: any, hashLength: number): Promise<{
|
|
47
|
+
getMemory: () => Uint8Array | null;
|
|
48
|
+
writeMemory: (data: Uint8Array, offset?: number) => void;
|
|
49
|
+
getExports: () => WebAssembly.Exports | undefined;
|
|
50
|
+
setMemorySize: (totalSize: number) => void;
|
|
51
|
+
init: (bits?: number | null) => void;
|
|
52
|
+
update: (data: IDataType) => void;
|
|
53
|
+
digest: (outputType: 'hex' | 'binary', padding?: number | null) => Uint8Array | string;
|
|
54
|
+
save: () => Uint8Array;
|
|
55
|
+
load: (state: Uint8Array) => void;
|
|
56
|
+
calculate: (data: IDataType, initParam?: null, digestParam?: null) => string;
|
|
57
|
+
hashLength: number;
|
|
58
|
+
}>;
|
|
59
|
+
export declare type IWASMInterface = ThenArg<ReturnType<typeof WASMInterface>>;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=WASMInterface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WASMInterface.d.ts","sourceRoot":"","sources":["../../src/hash-calculate/WASMInterface.ts"],"names":[],"mappings":"AASA,OAAO,EACuC,SAAS,EAEtD,MAAM,QAAQ,CAAC;AAEhB,eAAO,MAAM,QAAQ,QAAY,CAAC;AAIlC,aAAK,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAC9C,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GACpD,CAAC,CAAC;AAEJ,oBAAY,OAAO,GAAG;IACpB;;OAEG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC;IACrC;;;;;OAKG;IACH,MAAM,EAAE;QACN,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC;QACnC,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KAC9B,CAAC;IACF;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,UAAU,CAAC;IACvB;;;OAGG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;IACrC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAA;AAID,wBAAsB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM;;wBAStC,UAAU;;+BAOH,MAAM;kBAoCpB,MAAM,GAAG,IAAI;mBAeX,SAAS;yBAUH,KAAK,GAAG,QAAQ,YAAW,MAAM,GAAG,IAAI,KAAU,UAAU,GAAG,MAAM;gBAgBhF,UAAU;kBAkBN,UAAU;sBAgEvB,SAAS,2CACd,MAAM;;GA6BV;AAED,oBAAY,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* MIT License Copyright (c) 2020 Dani All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
* https://github.com/Daninet/hash-wasm
|
|
6
|
+
*--------------------------------------------------------------------------------------------*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.WASMInterface = exports.MAX_HEAP = void 0;
|
|
9
|
+
// copy and modified from https://github.com/Daninet/hash-wasm/blob/bd3a205ca5603fc80adf71d0966fc72e8d4fa0ef/lib/WASMInterface.ts
|
|
10
|
+
const mutex_1 = require("./mutex");
|
|
11
|
+
const util_1 = require("./util");
|
|
12
|
+
exports.MAX_HEAP = 16 * 1024;
|
|
13
|
+
const WASM_FUNC_HASH_LENGTH = 4;
|
|
14
|
+
const wasmMutex = new mutex_1.Mutex();
|
|
15
|
+
const wasmModuleCache = new Map();
|
|
16
|
+
async function WASMInterface(binary, hashLength) {
|
|
17
|
+
let wasmInstance = null;
|
|
18
|
+
let memoryView = null;
|
|
19
|
+
let initialized = false;
|
|
20
|
+
if (typeof WebAssembly === 'undefined') {
|
|
21
|
+
throw new Error('WebAssembly is not supported in this environment!');
|
|
22
|
+
}
|
|
23
|
+
const writeMemory = (data, offset = 0) => {
|
|
24
|
+
memoryView === null || memoryView === void 0 ? void 0 : memoryView.set(data, offset);
|
|
25
|
+
};
|
|
26
|
+
const getMemory = () => memoryView;
|
|
27
|
+
const getExports = () => wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports;
|
|
28
|
+
const setMemorySize = (totalSize) => {
|
|
29
|
+
(wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).Hash_SetMemorySize(totalSize);
|
|
30
|
+
const arrayOffset = (wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).Hash_GetBuffer();
|
|
31
|
+
const memoryBuffer = (wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).memory.buffer;
|
|
32
|
+
memoryView = new Uint8Array(memoryBuffer, arrayOffset, totalSize);
|
|
33
|
+
};
|
|
34
|
+
const getStateSize = () => {
|
|
35
|
+
const view = new DataView((wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).memory.buffer);
|
|
36
|
+
const stateSize = view.getUint32((wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).STATE_SIZE, true);
|
|
37
|
+
return stateSize;
|
|
38
|
+
};
|
|
39
|
+
const loadWASMPromise = wasmMutex.dispatch(async () => {
|
|
40
|
+
if (!wasmModuleCache.has(binary.name)) {
|
|
41
|
+
const asm = (0, util_1.decodeBase64)(binary.data);
|
|
42
|
+
const promise = WebAssembly.compile(asm);
|
|
43
|
+
wasmModuleCache.set(binary.name, promise);
|
|
44
|
+
}
|
|
45
|
+
const module = await wasmModuleCache.get(binary.name);
|
|
46
|
+
wasmInstance = await WebAssembly.instantiate(module);
|
|
47
|
+
});
|
|
48
|
+
const setupInterface = async () => {
|
|
49
|
+
if (!wasmInstance) {
|
|
50
|
+
await loadWASMPromise;
|
|
51
|
+
}
|
|
52
|
+
const arrayOffset = (wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).Hash_GetBuffer();
|
|
53
|
+
const memoryBuffer = (wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).memory.buffer;
|
|
54
|
+
memoryView = new Uint8Array(memoryBuffer, arrayOffset, exports.MAX_HEAP);
|
|
55
|
+
};
|
|
56
|
+
const init = (bits = null) => {
|
|
57
|
+
initialized = true;
|
|
58
|
+
(wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).Hash_Init(bits);
|
|
59
|
+
};
|
|
60
|
+
const updateUInt8Array = (data) => {
|
|
61
|
+
let read = 0;
|
|
62
|
+
while (read < data.length) {
|
|
63
|
+
const chunk = data.subarray(read, read + exports.MAX_HEAP);
|
|
64
|
+
read += chunk.length;
|
|
65
|
+
memoryView === null || memoryView === void 0 ? void 0 : memoryView.set(chunk);
|
|
66
|
+
(wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).Hash_Update(chunk.length);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const update = (data) => {
|
|
70
|
+
if (!initialized) {
|
|
71
|
+
throw new Error('update() called before init()');
|
|
72
|
+
}
|
|
73
|
+
const Uint8Buffer = (0, util_1.getUInt8Buffer)(data);
|
|
74
|
+
updateUInt8Array(Uint8Buffer);
|
|
75
|
+
};
|
|
76
|
+
const digestChars = new Uint8Array(hashLength * 2);
|
|
77
|
+
const digest = (outputType, padding = null) => {
|
|
78
|
+
if (!initialized) {
|
|
79
|
+
throw new Error('digest() called before init()');
|
|
80
|
+
}
|
|
81
|
+
initialized = false;
|
|
82
|
+
(wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).Hash_Final(padding);
|
|
83
|
+
if (outputType === 'binary') {
|
|
84
|
+
// the data is copied to allow GC of the original memory object
|
|
85
|
+
return memoryView.slice(0, hashLength);
|
|
86
|
+
}
|
|
87
|
+
return (0, util_1.getDigestHex)(digestChars, memoryView, hashLength);
|
|
88
|
+
};
|
|
89
|
+
const save = () => {
|
|
90
|
+
if (!initialized) {
|
|
91
|
+
throw new Error('save() can only be called after init() and before digest()');
|
|
92
|
+
}
|
|
93
|
+
const stateOffset = (wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).Hash_GetState();
|
|
94
|
+
const stateLength = getStateSize();
|
|
95
|
+
const memoryBuffer = (wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).memory.buffer;
|
|
96
|
+
const internalState = new Uint8Array(memoryBuffer, stateOffset, stateLength);
|
|
97
|
+
// prefix is 4 bytes from SHA1 hash of the WASM binary
|
|
98
|
+
// it is used to detect incompatible internal states between different versions of hash-wasm
|
|
99
|
+
const prefixedState = new Uint8Array(WASM_FUNC_HASH_LENGTH + stateLength);
|
|
100
|
+
(0, util_1.writeHexToUInt8)(prefixedState, binary.hash);
|
|
101
|
+
prefixedState.set(internalState, WASM_FUNC_HASH_LENGTH);
|
|
102
|
+
return prefixedState;
|
|
103
|
+
};
|
|
104
|
+
const load = (state) => {
|
|
105
|
+
if (!(state instanceof Uint8Array)) {
|
|
106
|
+
throw new Error('load() expects an Uint8Array generated by save()');
|
|
107
|
+
}
|
|
108
|
+
const stateOffset = (wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).Hash_GetState();
|
|
109
|
+
const stateLength = getStateSize();
|
|
110
|
+
const overallLength = WASM_FUNC_HASH_LENGTH + stateLength;
|
|
111
|
+
const memoryBuffer = (wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).memory.buffer;
|
|
112
|
+
if (state.length !== overallLength) {
|
|
113
|
+
throw new Error(`Bad state length (expected ${overallLength} bytes, got ${state.length})`);
|
|
114
|
+
}
|
|
115
|
+
if (!(0, util_1.hexStringEqualsUInt8)(binary.hash, state.subarray(0, WASM_FUNC_HASH_LENGTH))) {
|
|
116
|
+
throw new Error('This state was written by an incompatible hash implementation');
|
|
117
|
+
}
|
|
118
|
+
const internalState = state.subarray(WASM_FUNC_HASH_LENGTH);
|
|
119
|
+
new Uint8Array(memoryBuffer, stateOffset, stateLength).set(internalState);
|
|
120
|
+
initialized = true;
|
|
121
|
+
};
|
|
122
|
+
const isDataShort = (data) => {
|
|
123
|
+
if (typeof data === 'string') {
|
|
124
|
+
// worst case is 4 bytes / char
|
|
125
|
+
return data.length < exports.MAX_HEAP / 4;
|
|
126
|
+
}
|
|
127
|
+
return data.byteLength < exports.MAX_HEAP;
|
|
128
|
+
};
|
|
129
|
+
let canSimplify = isDataShort;
|
|
130
|
+
switch (binary.name) {
|
|
131
|
+
case 'argon2':
|
|
132
|
+
case 'scrypt':
|
|
133
|
+
canSimplify = () => true;
|
|
134
|
+
break;
|
|
135
|
+
case 'blake2b':
|
|
136
|
+
case 'blake2s':
|
|
137
|
+
// if there is a key at blake2 then cannot simplify
|
|
138
|
+
canSimplify = (data, initParam) => initParam <= 512 && isDataShort(data);
|
|
139
|
+
break;
|
|
140
|
+
case 'blake3':
|
|
141
|
+
// if there is a key at blake3 then cannot simplify
|
|
142
|
+
canSimplify = (data, initParam) => initParam === 0 && isDataShort(data);
|
|
143
|
+
break;
|
|
144
|
+
case 'xxhash64': // cannot simplify
|
|
145
|
+
case 'xxhash3':
|
|
146
|
+
case 'xxhash128':
|
|
147
|
+
canSimplify = () => false;
|
|
148
|
+
break;
|
|
149
|
+
default:
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
// shorthand for (init + update + digest) for better performance
|
|
153
|
+
const calculate = (data, initParam = null, digestParam = null) => {
|
|
154
|
+
if (!canSimplify(data, initParam)) {
|
|
155
|
+
init(initParam);
|
|
156
|
+
update(data);
|
|
157
|
+
return digest('hex', digestParam);
|
|
158
|
+
}
|
|
159
|
+
const buffer = (0, util_1.getUInt8Buffer)(data);
|
|
160
|
+
memoryView === null || memoryView === void 0 ? void 0 : memoryView.set(buffer);
|
|
161
|
+
(wasmInstance === null || wasmInstance === void 0 ? void 0 : wasmInstance.exports).Hash_Calculate(buffer.length, initParam, digestParam);
|
|
162
|
+
return (0, util_1.getDigestHex)(digestChars, memoryView, hashLength);
|
|
163
|
+
};
|
|
164
|
+
await setupInterface();
|
|
165
|
+
return {
|
|
166
|
+
getMemory,
|
|
167
|
+
writeMemory,
|
|
168
|
+
getExports,
|
|
169
|
+
setMemorySize,
|
|
170
|
+
init,
|
|
171
|
+
update,
|
|
172
|
+
digest,
|
|
173
|
+
save,
|
|
174
|
+
load,
|
|
175
|
+
calculate,
|
|
176
|
+
hashLength,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
exports.WASMInterface = WASMInterface;
|
|
180
|
+
//# sourceMappingURL=WASMInterface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WASMInterface.js","sourceRoot":"","sources":["../../src/hash-calculate/WASMInterface.ts"],"names":[],"mappings":";AAAA;;;;gGAIgG;;;AAEhG,iIAAiI;AAEjI,mCAAgC;AAChC,iCAGgB;AAEH,QAAA,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC;AAClC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,SAAS,GAAG,IAAI,aAAK,EAAE,CAAC;AAiD9B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuC,CAAC;AAEhE,KAAK,UAAU,aAAa,CAAC,MAAW,EAAE,UAAkB;IACjE,IAAI,YAAY,GAAgC,IAAI,CAAC;IACrD,IAAI,UAAU,GAAsB,IAAI,CAAC;IACzC,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;KACtE;IAED,MAAM,WAAW,GAAG,CAAC,IAAgB,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE;QACnD,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC;IACnC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAAC;IAE/C,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC1C,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAW,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,cAAc,EAAE,CAAC;QAC5E,MAAM,YAAY,GAAG,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,MAAM,CAAC,MAAM,CAAC;QAClE,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAClF,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;QACpD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACrC,MAAM,GAAG,GAAG,IAAA,mBAAY,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEzC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC3C;QAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtD,YAAY,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAO,CAAC,CAAC;IAExD,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,eAAe,CAAC;SACvB;QAED,MAAM,WAAW,GAAW,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,cAAc,EAAE,CAAC;QAC5E,MAAM,YAAY,GAAG,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,MAAM,CAAC,MAAM,CAAC;QAClE,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,gBAAQ,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,OAAsB,IAAI,EAAE,EAAE;QAC1C,WAAW,GAAG,IAAI,CAAC;QACnB,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAgB,EAAQ,EAAE;QAClD,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAQ,CAAC,CAAC;YACnD,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;YACrB,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC1D;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,IAAe,EAAE,EAAE;QACjC,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QACD,MAAM,WAAW,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;QACzC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,CAAC,UAA4B,EAAE,UAAyB,IAAI,EAAuB,EAAE;QAClG,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QACD,WAAW,GAAG,KAAK,CAAC;QAEpB,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEnD,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC3B,+DAA+D;YAC/D,OAAO,UAAW,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;SACzC;QAED,OAAO,IAAA,mBAAY,EAAC,WAAW,EAAE,UAAW,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,GAAe,EAAE;QAC5B,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;SAC/E;QAED,MAAM,WAAW,GAAW,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,aAAa,EAAE,CAAC;QAC3E,MAAM,WAAW,GAAW,YAAY,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,MAAM,CAAC,MAAM,CAAC;QAClE,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAE7E,sDAAsD;QACtD,4FAA4F;QAC5F,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,qBAAqB,GAAG,WAAW,CAAC,CAAC;QAC1E,IAAA,sBAAe,EAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;QACxD,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,KAAiB,EAAE,EAAE;QACjC,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;SACrE;QAED,MAAM,WAAW,GAAW,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,aAAa,EAAE,CAAC;QAC3E,MAAM,WAAW,GAAW,YAAY,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAW,qBAAqB,GAAG,WAAW,CAAC;QAClE,MAAM,YAAY,GAAG,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,MAAM,CAAC,MAAM,CAAC;QAElE,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,aAAa,eAAe,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SAC5F;QAED,IAAI,CAAC,IAAA,2BAAoB,EAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE;YAChF,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;SAClF;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAC5D,IAAI,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1E,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,IAAe,EAAE,EAAE;QACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,+BAA+B;YAC/B,OAAO,IAAI,CAAC,MAAM,GAAG,gBAAQ,GAAG,CAAC,CAAC;SACnC;QAED,OAAO,IAAI,CAAC,UAAU,GAAG,gBAAQ,CAAC;IACpC,CAAC,CAAC;IAEF,IAAI,WAAW,GACsC,WAAW,CAAC;IAEjE,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;YACzB,MAAM;QAER,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,mDAAmD;YACnD,WAAW,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAU,IAAI,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1E,MAAM;QAER,KAAK,QAAQ;YACX,mDAAmD;YACnD,WAAW,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;YACxE,MAAM;QAER,KAAK,UAAU,CAAC,CAAC,kBAAkB;QACnC,KAAK,SAAS,CAAC;QACf,KAAK,WAAW;YACd,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;YAC1B,MAAM;QAER;YACE,MAAM;KACT;IAED,gEAAgE;IAChE,MAAM,SAAS,GAAG,CAChB,IAAe,EAAE,SAAS,GAAG,IAAI,EAAE,WAAW,GAAG,IAAI,EAC7C,EAAE;QACV,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAU,CAAC,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,CAAC;YACb,OAAO,MAAM,CAAC,KAAK,EAAE,WAAW,CAAW,CAAC;SAC7C;QAED,MAAM,MAAM,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;QACpC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAe,CAAA,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAErF,OAAO,IAAA,mBAAY,EAAC,WAAW,EAAE,UAAW,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,MAAM,cAAc,EAAE,CAAC;IAEvB,OAAO;QACL,SAAS;QACT,WAAW;QACX,UAAU;QACV,aAAa;QACb,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC;AA7MD,sCA6MC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IDataType } from './util';
|
|
2
|
+
export declare const IHashCalculateService: unique symbol;
|
|
3
|
+
export interface IHashCalculateService {
|
|
4
|
+
initialize(): Promise<void>;
|
|
5
|
+
calculate(content: IDataType): string;
|
|
6
|
+
}
|
|
7
|
+
export declare class HashCalculateServiceImpl implements IHashCalculateService {
|
|
8
|
+
private cachedCalculator?;
|
|
9
|
+
private initialized;
|
|
10
|
+
initialize(): Promise<void>;
|
|
11
|
+
calculate(content: IDataType): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=hash-calculate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-calculate.d.ts","sourceRoot":"","sources":["../../src/hash-calculate/hash-calculate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACpC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC;CACvC;AAeD,qBACa,wBAAyB,YAAW,qBAAqB;IAEpE,OAAO,CAAC,gBAAgB,CAAC,CAAa;IAEtC,OAAO,CAAC,WAAW,CAAkB;IAE/B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM;CAYtC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HashCalculateServiceImpl = exports.IHashCalculateService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@opensumi/di");
|
|
6
|
+
const lockedCreate_1 = require("./lockedCreate");
|
|
7
|
+
const mutex_1 = require("./mutex");
|
|
8
|
+
const md5_wasm_json_1 = (0, tslib_1.__importDefault)(require("./md5.wasm.json"));
|
|
9
|
+
exports.IHashCalculateService = Symbol('IHashCalculateService');
|
|
10
|
+
function md5WasmCalculatorFactory() {
|
|
11
|
+
const mutex = new mutex_1.Mutex();
|
|
12
|
+
return (0, lockedCreate_1.lockedCreate)(mutex, md5_wasm_json_1.default, 16);
|
|
13
|
+
}
|
|
14
|
+
let HashCalculateServiceImpl = class HashCalculateServiceImpl {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.initialized = false;
|
|
17
|
+
}
|
|
18
|
+
async initialize() {
|
|
19
|
+
if (!this.cachedCalculator) {
|
|
20
|
+
this.cachedCalculator = await md5WasmCalculatorFactory();
|
|
21
|
+
}
|
|
22
|
+
this.initialized = true;
|
|
23
|
+
}
|
|
24
|
+
calculate(content) {
|
|
25
|
+
if (!this.initialized) {
|
|
26
|
+
throw new Error('Please call #initialize first!');
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
const hash = this.cachedCalculator.calculate(content);
|
|
30
|
+
return hash;
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
throw err;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
HashCalculateServiceImpl = (0, tslib_1.__decorate)([
|
|
38
|
+
(0, di_1.Injectable)()
|
|
39
|
+
], HashCalculateServiceImpl);
|
|
40
|
+
exports.HashCalculateServiceImpl = HashCalculateServiceImpl;
|
|
41
|
+
//# sourceMappingURL=hash-calculate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-calculate.js","sourceRoot":"","sources":["../../src/hash-calculate/hash-calculate.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,iDAA8C;AAC9C,mCAAgC;AAEhC,iFAAuC;AAG1B,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAYrE,SAAS,wBAAwB;IAC/B,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;IAC1B,OAAO,IAAA,2BAAY,EACjB,KAAK,EACL,uBAAQ,EACR,EAAE,CACH,CAAC;AACJ,CAAC;AAGD,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAArC;QAIU,gBAAW,GAAY,KAAK,CAAC;IAqBvC,CAAC;IAnBC,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,gBAAgB,GAAG,MAAM,wBAAwB,EAAE,CAAC;SAC1D;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,OAAkB;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,IAAI;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,GAAG,CAAC;SACX;IACH,CAAC;CAEF,CAAA;AAzBY,wBAAwB;IADpC,IAAA,eAAU,GAAE;GACA,wBAAwB,CAyBpC;AAzBY,4DAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockedCreate.d.ts","sourceRoot":"","sources":["../../src/hash-calculate/lockedCreate.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAiB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEhE,wBAAsB,YAAY,CAChC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAC5C,OAAO,CAAC,cAAc,CAAC,CAKzB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* MIT License Copyright (c) 2020 Dani All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
* https://github.com/Daninet/hash-wasm
|
|
6
|
+
*--------------------------------------------------------------------------------------------*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.lockedCreate = void 0;
|
|
9
|
+
const WASMInterface_1 = require("./WASMInterface");
|
|
10
|
+
async function lockedCreate(mutex, binary, hashLength) {
|
|
11
|
+
const unlock = await mutex.lock();
|
|
12
|
+
const wasm = await (0, WASMInterface_1.WASMInterface)(binary, hashLength);
|
|
13
|
+
unlock();
|
|
14
|
+
return wasm;
|
|
15
|
+
}
|
|
16
|
+
exports.lockedCreate = lockedCreate;
|
|
17
|
+
//# sourceMappingURL=lockedCreate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockedCreate.js","sourceRoot":"","sources":["../../src/hash-calculate/lockedCreate.ts"],"names":[],"mappings":";AAAA;;;;gGAIgG;;;AAKhG,mDAAgE;AAEzD,KAAK,UAAU,YAAY,CAChC,KAAY,EAAE,MAAW,EAAE,UAAkB;IAE7C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAa,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,EAAE,CAAC;IACT,OAAO,IAAI,CAAC;AACd,CAAC;AAPD,oCAOC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"md5","data":"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","hash":"9b0fac7d"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../../src/hash-calculate/mutex.ts"],"names":[],"mappings":"AAQA,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAqB;IAElC,IAAI,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC;IAUzB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAQ1D"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* MIT License Copyright (c) 2020 Dani All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
* https://github.com/Daninet/hash-wasm
|
|
6
|
+
*--------------------------------------------------------------------------------------------*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Mutex = void 0;
|
|
9
|
+
// copy and modified from https://github.com/Daninet/hash-wasm/blob/bd3a205ca5603fc80adf71d0966fc72e8d4fa0ef/lib/mutex.ts
|
|
10
|
+
class Mutex {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.mutex = Promise.resolve();
|
|
13
|
+
}
|
|
14
|
+
lock() {
|
|
15
|
+
let begin = () => { };
|
|
16
|
+
this.mutex = this.mutex.then(() => new Promise(begin));
|
|
17
|
+
return new Promise((res) => {
|
|
18
|
+
begin = res;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
async dispatch(fn) {
|
|
22
|
+
const unlock = await this.lock();
|
|
23
|
+
try {
|
|
24
|
+
return await Promise.resolve(fn());
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
unlock();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.Mutex = Mutex;
|
|
32
|
+
//# sourceMappingURL=mutex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../src/hash-calculate/mutex.ts"],"names":[],"mappings":";AAAA;;;;gGAIgG;;;AAEhG,yHAAyH;AAEzH,MAAa,KAAK;IAAlB;QACU,UAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAoBpC,CAAC;IAlBC,IAAI;QACF,IAAI,KAAK,GAAiC,GAAG,EAAE,GAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAEvD,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,KAAK,GAAG,GAAG,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAI,EAA0B;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI;YACF,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;SACpC;gBAAS;YACR,MAAM,EAAE,CAAC;SACV;IACH,CAAC;CACF;AArBD,sBAqBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare type ITypedArray = Uint8Array | Uint16Array | Uint32Array;
|
|
3
|
+
export declare type IDataType = string | Buffer | ITypedArray;
|
|
4
|
+
export declare function intArrayToString(arr: Uint8Array, len: number): string;
|
|
5
|
+
export declare function writeHexToUInt8(buf: Uint8Array, str: string): void;
|
|
6
|
+
export declare function hexStringEqualsUInt8(str: string, buf: Uint8Array): boolean;
|
|
7
|
+
export declare function getDigestHex(tmpBuffer: Uint8Array, input: Uint8Array, hashLength: number): string;
|
|
8
|
+
export declare const getUInt8Buffer: (data: IDataType) => Uint8Array;
|
|
9
|
+
export declare function encodeBase64(data: Uint8Array, pad?: boolean): string;
|
|
10
|
+
export declare function getDecodeBase64Length(data: string): number;
|
|
11
|
+
export declare function decodeBase64(data: string): Uint8Array;
|
|
12
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/hash-calculate/util.ts"],"names":[],"mappings":";AAsBA,oBAAY,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AACjE,oBAAY,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE;AAUD,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,QAM3D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAW1E;AAID,wBAAgB,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAYjG;AAED,eAAO,MAAM,cAAc,SAChB,SAAS,KAAG,UA0BpB,CAAC;AAQJ,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,UAAO,GAAG,MAAM,CAwCjE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAY1D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAsBrD"}
|