mirror of
https://github.com/smogon/sprites.git
synced 2026-09-15 05:26:26 -05:00
Add tupctime utility
This commit is contained in:
401
pnpm-lock.yaml
generated
401
pnpm-lock.yaml
generated
@@ -8,6 +8,13 @@ importers:
|
||||
commander: ^5.0.0
|
||||
make-promises-safe: ^5.1.0
|
||||
spritesmith: ^3.4.0
|
||||
tools/tupctime:
|
||||
dependencies:
|
||||
better-sqlite3: 7.0.1
|
||||
debug: 4.1.1
|
||||
specifiers:
|
||||
better-sqlite3: ^7.0.1
|
||||
debug: ^4.1.1
|
||||
lockfileVersion: 5.1
|
||||
packages:
|
||||
/ajv/6.12.0:
|
||||
@@ -19,6 +26,23 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==
|
||||
/ansi-regex/2.1.1:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
|
||||
/aproba/1.2.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
|
||||
/are-we-there-yet/1.1.5:
|
||||
dependencies:
|
||||
delegates: 1.0.0
|
||||
readable-stream: 2.3.7
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
|
||||
/asn1/0.2.4:
|
||||
dependencies:
|
||||
safer-buffer: 2.1.2
|
||||
@@ -47,20 +71,58 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==
|
||||
/base64-js/1.3.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
|
||||
/bcrypt-pbkdf/1.0.2:
|
||||
dependencies:
|
||||
tweetnacl: 0.14.5
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
|
||||
/better-sqlite3/7.0.1:
|
||||
dependencies:
|
||||
bindings: 1.5.0
|
||||
prebuild-install: 5.3.3
|
||||
tar: 4.4.10
|
||||
dev: false
|
||||
requiresBuild: true
|
||||
resolution:
|
||||
integrity: sha512-fsVcoGXxnseNajbfFbth0BKnDWebPY6x77UWfrBHApCKq1yo41DlWnFsffOsLpjkQ4VKgDU5C3aUtiw3wGGU0Q==
|
||||
/bin-pack/1.0.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-wqAU7b8L7XCjKSBi7UZXe5YSBnk=
|
||||
/bindings/1.5.0:
|
||||
dependencies:
|
||||
file-uri-to-path: 1.0.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
|
||||
/bl/4.0.2:
|
||||
dependencies:
|
||||
buffer: 5.6.0
|
||||
inherits: 2.0.4
|
||||
readable-stream: 3.6.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==
|
||||
/buffer/5.6.0:
|
||||
dependencies:
|
||||
base64-js: 1.3.1
|
||||
ieee754: 1.1.13
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
|
||||
/caseless/0.12.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
|
||||
/chownr/1.1.4:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
|
||||
/clone-stats/0.0.1:
|
||||
dev: false
|
||||
resolution:
|
||||
@@ -71,6 +133,12 @@ packages:
|
||||
node: '>=0.8'
|
||||
resolution:
|
||||
integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
|
||||
/code-point-at/1.1.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
|
||||
/combined-stream/1.0.8:
|
||||
dependencies:
|
||||
delayed-stream: 1.0.0
|
||||
@@ -95,6 +163,10 @@ packages:
|
||||
'0': node >= 0.8
|
||||
resolution:
|
||||
integrity: sha1-cIl4Yk2FavQaWnQd790mHadSwmY=
|
||||
/console-control-strings/1.1.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
|
||||
/contentstream/1.0.0:
|
||||
dependencies:
|
||||
readable-stream: 1.0.34
|
||||
@@ -125,12 +197,43 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo=
|
||||
/debug/4.1.1:
|
||||
dependencies:
|
||||
ms: 2.1.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
|
||||
/decompress-response/4.2.1:
|
||||
dependencies:
|
||||
mimic-response: 2.1.0
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=8'
|
||||
resolution:
|
||||
integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==
|
||||
/deep-extend/0.6.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=4.0.0'
|
||||
resolution:
|
||||
integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
|
||||
/delayed-stream/1.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.4.0'
|
||||
resolution:
|
||||
integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
|
||||
/delegates/1.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
|
||||
/detect-libc/1.0.3:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10'
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
|
||||
/ecc-jsbn/0.1.2:
|
||||
dependencies:
|
||||
jsbn: 0.1.1
|
||||
@@ -138,6 +241,18 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
|
||||
/end-of-stream/1.4.4:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
|
||||
/expand-template/2.0.3:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=6'
|
||||
resolution:
|
||||
integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==
|
||||
/extend/3.0.2:
|
||||
dev: false
|
||||
resolution:
|
||||
@@ -156,6 +271,10 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
|
||||
/file-uri-to-path/1.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
|
||||
/first-chunk-stream/1.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
@@ -176,6 +295,29 @@ packages:
|
||||
node: '>= 0.12'
|
||||
resolution:
|
||||
integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
|
||||
/fs-constants/1.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
|
||||
/fs-minipass/1.2.7:
|
||||
dependencies:
|
||||
minipass: 2.9.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
|
||||
/gauge/2.7.4:
|
||||
dependencies:
|
||||
aproba: 1.2.0
|
||||
console-control-strings: 1.1.0
|
||||
has-unicode: 2.0.1
|
||||
object-assign: 4.1.1
|
||||
signal-exit: 3.0.3
|
||||
string-width: 1.0.2
|
||||
strip-ansi: 3.0.1
|
||||
wide-align: 1.1.3
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
|
||||
/get-pixels/3.3.2:
|
||||
dependencies:
|
||||
data-uri-to-buffer: 0.0.3
|
||||
@@ -206,6 +348,10 @@ packages:
|
||||
node: '>= 0.8.0'
|
||||
resolution:
|
||||
integrity: sha1-iitP6MqJWkjjoLbLs0CgpqNXGJk=
|
||||
/github-from-package/0.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
|
||||
/graceful-fs/4.2.3:
|
||||
dev: false
|
||||
resolution:
|
||||
@@ -225,6 +371,10 @@ packages:
|
||||
node: '>=6'
|
||||
resolution:
|
||||
integrity: sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
|
||||
/has-unicode/2.0.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
|
||||
/http-signature/1.2.0:
|
||||
dependencies:
|
||||
assert-plus: 1.0.0
|
||||
@@ -236,10 +386,18 @@ packages:
|
||||
npm: '>=1.3.7'
|
||||
resolution:
|
||||
integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
|
||||
/ieee754/1.1.13:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
|
||||
/inherits/2.0.4:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
/ini/1.3.5:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
|
||||
/iota-array/1.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
@@ -248,6 +406,14 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
|
||||
/is-fullwidth-code-point/1.0.0:
|
||||
dependencies:
|
||||
number-is-nan: 1.0.1
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
|
||||
/is-typedarray/1.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
@@ -329,6 +495,48 @@ packages:
|
||||
node: '>= 0.6'
|
||||
resolution:
|
||||
integrity: sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==
|
||||
/mimic-response/2.1.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=8'
|
||||
resolution:
|
||||
integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
|
||||
/minimist/1.2.5:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
||||
/minipass/2.9.0:
|
||||
dependencies:
|
||||
safe-buffer: 5.2.0
|
||||
yallist: 3.1.1
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
|
||||
/minizlib/1.3.3:
|
||||
dependencies:
|
||||
minipass: 2.9.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
|
||||
/mkdirp-classic/0.5.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g==
|
||||
/mkdirp/0.5.5:
|
||||
dependencies:
|
||||
minimist: 1.2.5
|
||||
dev: false
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
|
||||
/ms/2.1.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||
/napi-build-utils/1.0.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==
|
||||
/ndarray-ops/1.2.2:
|
||||
dependencies:
|
||||
cwise-compiler: 1.1.3
|
||||
@@ -349,12 +557,37 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==
|
||||
/node-abi/2.16.0:
|
||||
dependencies:
|
||||
semver: 5.7.1
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-+sa0XNlWDA6T+bDLmkCUYn6W5k5W6BPRL6mqzSCs6H/xUgtl4D5x2fORKDzopKiU6wsyn/+wXlRXwXeSp+mtoA==
|
||||
/node-bitmap/0.0.1:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=v0.6.5'
|
||||
resolution:
|
||||
integrity: sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE=
|
||||
/noop-logger/0.1.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=
|
||||
/npmlog/4.1.2:
|
||||
dependencies:
|
||||
are-we-there-yet: 1.1.5
|
||||
console-control-strings: 1.1.0
|
||||
gauge: 2.7.4
|
||||
set-blocking: 2.0.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
|
||||
/number-is-nan/1.0.1:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
|
||||
/oauth-sign/0.9.0:
|
||||
dev: false
|
||||
resolution:
|
||||
@@ -363,10 +596,22 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-u0SKR3X7les0p4H5CLusLfI9u1s=
|
||||
/object-assign/4.1.1:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
|
||||
/omggif/1.0.10:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==
|
||||
/once/1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||
/parse-data-uri/0.2.0:
|
||||
dependencies:
|
||||
data-uri-to-buffer: 0.0.3
|
||||
@@ -405,6 +650,29 @@ packages:
|
||||
node: '>=4.0.0'
|
||||
resolution:
|
||||
integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
|
||||
/prebuild-install/5.3.3:
|
||||
dependencies:
|
||||
detect-libc: 1.0.3
|
||||
expand-template: 2.0.3
|
||||
github-from-package: 0.0.0
|
||||
minimist: 1.2.5
|
||||
mkdirp: 0.5.5
|
||||
napi-build-utils: 1.0.2
|
||||
node-abi: 2.16.0
|
||||
noop-logger: 0.1.1
|
||||
npmlog: 4.1.2
|
||||
pump: 3.0.0
|
||||
rc: 1.2.8
|
||||
simple-get: 3.1.0
|
||||
tar-fs: 2.0.1
|
||||
tunnel-agent: 0.6.0
|
||||
which-pm-runs: 1.0.0
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=6'
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==
|
||||
/process-nextick-args/1.0.7:
|
||||
dev: false
|
||||
resolution:
|
||||
@@ -417,6 +685,13 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
|
||||
/pump/3.0.0:
|
||||
dependencies:
|
||||
end-of-stream: 1.4.4
|
||||
once: 1.4.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
|
||||
/punycode/2.1.1:
|
||||
dev: false
|
||||
engines:
|
||||
@@ -429,6 +704,16 @@ packages:
|
||||
node: '>=0.6'
|
||||
resolution:
|
||||
integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
|
||||
/rc/1.2.8:
|
||||
dependencies:
|
||||
deep-extend: 0.6.0
|
||||
ini: 1.3.5
|
||||
minimist: 1.2.5
|
||||
strip-json-comments: 2.0.1
|
||||
dev: false
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
|
||||
/readable-stream/1.0.34:
|
||||
dependencies:
|
||||
core-util-is: 1.0.2
|
||||
@@ -470,6 +755,16 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
|
||||
/readable-stream/3.6.0:
|
||||
dependencies:
|
||||
inherits: 2.0.4
|
||||
string_decoder: 1.3.0
|
||||
util-deprecate: 1.0.2
|
||||
dev: false
|
||||
engines:
|
||||
node: '>= 6'
|
||||
resolution:
|
||||
integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
|
||||
/replace-ext/0.0.1:
|
||||
dev: false
|
||||
engines:
|
||||
@@ -533,6 +828,31 @@ packages:
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=
|
||||
/semver/5.7.1:
|
||||
dev: false
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
||||
/set-blocking/2.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
|
||||
/signal-exit/3.0.3:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
|
||||
/simple-concat/1.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
|
||||
/simple-get/3.1.0:
|
||||
dependencies:
|
||||
decompress-response: 4.2.1
|
||||
once: 1.4.0
|
||||
simple-concat: 1.0.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==
|
||||
/spritesmith/3.4.0:
|
||||
dependencies:
|
||||
concat-stream: 1.5.2
|
||||
@@ -562,6 +882,16 @@ packages:
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
|
||||
/string-width/1.0.2:
|
||||
dependencies:
|
||||
code-point-at: 1.1.0
|
||||
is-fullwidth-code-point: 1.0.0
|
||||
strip-ansi: 3.0.1
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
|
||||
/string_decoder/0.10.31:
|
||||
dev: false
|
||||
resolution:
|
||||
@@ -572,6 +902,20 @@ packages:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
|
||||
/string_decoder/1.3.0:
|
||||
dependencies:
|
||||
safe-buffer: 5.2.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
|
||||
/strip-ansi/3.0.1:
|
||||
dependencies:
|
||||
ansi-regex: 2.1.1
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
|
||||
/strip-bom-stream/1.0.0:
|
||||
dependencies:
|
||||
first-chunk-stream: 1.0.0
|
||||
@@ -589,6 +933,45 @@ packages:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
|
||||
/strip-json-comments/2.0.1:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=
|
||||
/tar-fs/2.0.1:
|
||||
dependencies:
|
||||
chownr: 1.1.4
|
||||
mkdirp-classic: 0.5.2
|
||||
pump: 3.0.0
|
||||
tar-stream: 2.1.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==
|
||||
/tar-stream/2.1.2:
|
||||
dependencies:
|
||||
bl: 4.0.2
|
||||
end-of-stream: 1.4.4
|
||||
fs-constants: 1.0.0
|
||||
inherits: 2.0.4
|
||||
readable-stream: 3.6.0
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==
|
||||
/tar/4.4.10:
|
||||
dependencies:
|
||||
chownr: 1.1.4
|
||||
fs-minipass: 1.2.7
|
||||
minipass: 2.9.0
|
||||
minizlib: 1.3.3
|
||||
mkdirp: 0.5.5
|
||||
safe-buffer: 5.2.0
|
||||
yallist: 3.1.1
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=4.5'
|
||||
resolution:
|
||||
integrity: sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==
|
||||
/through/2.3.8:
|
||||
dev: false
|
||||
resolution:
|
||||
@@ -673,9 +1056,27 @@ packages:
|
||||
node: '>= 0.9'
|
||||
resolution:
|
||||
integrity: sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=
|
||||
/which-pm-runs/1.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
|
||||
/wide-align/1.1.3:
|
||||
dependencies:
|
||||
string-width: 1.0.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
|
||||
/wrappy/1.0.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||
/xtend/4.0.2:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.4'
|
||||
resolution:
|
||||
integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
|
||||
/yallist/3.1.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
packages:
|
||||
- 'tools/sprites'
|
||||
- 'tools/tupctime'
|
||||
|
||||
70
tools/tupctime/index.js
Normal file
70
tools/tupctime/index.js
Normal file
@@ -0,0 +1,70 @@
|
||||
|
||||
const fs = require('fs');
|
||||
const pathlib = require('path');
|
||||
const Database = require('better-sqlite3');
|
||||
const debug = require('debug')('tupctime');
|
||||
|
||||
const start = process.argv[2];
|
||||
if (start === undefined) {
|
||||
throw new Error("Pass in directory containing tup db.");
|
||||
}
|
||||
|
||||
process.chdir(start);
|
||||
|
||||
while (true) {
|
||||
if (fs.existsSync('.tup')) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (process.cwd() === '/') {
|
||||
throw new Error("Can't find tup root.");
|
||||
}
|
||||
|
||||
process.chdir('..');
|
||||
}
|
||||
|
||||
const db = new Database('.tup/db');
|
||||
|
||||
const TUP_DB_FILE = 0;
|
||||
const TUP_DB_DIR = 2;
|
||||
const TUP_DB_GENERATED = 4;
|
||||
const TUP_DB_GENERATED_DIR = 7;
|
||||
|
||||
// ^ and $ are virtual directories for environment variables
|
||||
const traversalQuery = db.prepare(`
|
||||
SELECT id, type, mtime as ctime, name
|
||||
FROM node
|
||||
WHERE dir = ?
|
||||
AND type IN (${TUP_DB_FILE}, ${TUP_DB_DIR}, ${TUP_DB_GENERATED}, ${TUP_DB_GENERATED_DIR})
|
||||
AND name NOT IN ('^', '$')`);
|
||||
const updateQuery = db.prepare(`UPDATE node SET mtime = ? WHERE id = ?`);
|
||||
|
||||
function update() {
|
||||
const stack = [{isDir: true, id: 0, path: "."}];
|
||||
|
||||
let item;
|
||||
while (item = stack.pop()) {
|
||||
if (!fs.existsSync(item.path)) {
|
||||
debug(`Ignoring ${item.path}`);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (item.isDir) {
|
||||
for (const {id, type, ctime, name} of traversalQuery.iterate(item.id)) {
|
||||
const isDir = [TUP_DB_DIR, TUP_DB_GENERATED_DIR].includes(type);
|
||||
const path = pathlib.join(item.path, name);
|
||||
stack.push({isDir, id, ctime: BigInt(ctime), path});
|
||||
}
|
||||
} else {
|
||||
// bigint calculation is necessary to avoid rounding errors/spurious update
|
||||
const ctime = fs.lstatSync(item.path, {bigint: true}).ctimeMs / 1000n;
|
||||
if (ctime !== item.ctime) {
|
||||
debug(`Updating ${item.path}: ${ctime}, ${item.ctime}`);
|
||||
if (updateQuery.run(ctime, item.id).changes !== 1)
|
||||
throw new Error(`Couldn't update ${path}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
db.transaction(update)();
|
||||
1
tools/tupctime/package.json
Normal file
1
tools/tupctime/package.json
Normal file
@@ -0,0 +1 @@
|
||||
{"dependencies":{"better-sqlite3":"^7.0.1","debug":"^4.1.1"}}
|
||||
Reference in New Issue
Block a user