zipurl 0.2.4 → 0.2.7

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/README.md CHANGED
@@ -1,19 +1,23 @@
1
1
  # zipurl
2
2
 
3
- > Generate **gzip** web-safe strings on the browser. Built in 10 minutes. :smile:
3
+ > Generate **gzip** web-safe strings on the browser. Built in 10 minutes.
4
+ > :smile:
4
5
 
5
- Dead simple mash-up of [pako](https://github.com/nodeca/pako) and [js-base64](https://github.com/dankogai/js-base64) to
6
- create **gzipped** URL-safe base64 strings from any data on the browser. Very useful for passing large datasets via
7
- shareable web links.
6
+ Dead simple mash-up of [pako](https://github.com/nodeca/pako) and
7
+ [js-base64](https://github.com/dankogai/js-base64) to create **gzipped**
8
+ URL-safe base64 strings from any data on the browser. Very useful for passing
9
+ large datasets via shareable web links.
8
10
 
9
11
  45kb minified, 14kb **gzipped**, pun not intended.
10
12
 
11
13
  ## Demo
12
14
 
13
- This package is used in [JSON Pretty Print Online](https://zerodevx.github.io/json-pretty-print/) to compress and share
14
- stringified JSON via URL query parameters.
15
+ This package is used in
16
+ [JSON Pretty Print Online](https://zerodevx.github.io/json-pretty-print/) to
17
+ compress and share stringified JSON via URL query parameters.
15
18
 
16
- See it in action [here](https://zerodevx.github.io/json-pretty-print/?data=H4sIAAAAAAAAA7WaXXOkNhaG7_MrtK692FQaAgIE8tU4tmfjxJ7MepykUklqS4Do1g4NHT5sd1L73_foC2g3bXs83krF0wLpICHpOe854tcvEPoL_kfo6N8iPzpGR8SLKWFBESakIJnvJYkfZn4YHS10NVHl_B4qeqa87E27mMShz1InS7PQCUmWOkkUJg4hHityFjCSpoON9iTrxC2Hdl3Tc3M1ZSWrMnnx6O94QXDiJtS22Iis6xt1b9V1m-Ovv96ULOOrusxd0X0d4PsA27psKesFoSnyLT-ty7qRbdOmvqtsvYqtlcHLuqkY-lDWbLi15DBK1aLga1Zyez2r1xtWbeWN9z9c31ycntg7UE2U8noprbXS2JtN3XQiYy60Gsaxqiv10K989A_qh1-i0KMOjnAy9D7PG962so4fxOikgr6d1n3TLdB5Kf5kt6Is-QK943foit-LrF4g6sX-0Dyt-042Pu9QLofNEavEGq3ZEgyxUvzRM9SKqkObphY5hx9rISuIHG1YIxi8ZsR7aIu4vMxysRGtyES1dNHJmnfTK6jol9ACQX85-qMXKOctb3qwCYXWRdd80_CVepeiQ1lfbpjtlO6PNCdtqkfVRQFWGRJNLyvUZQmN-rJk66xGonJ_a34bJqjhS9F2vOFq7WHPJ44XOV5w4yXHPj3GEXLgl-fZ-iXrRNfn8tXD2nSjIMTUt_fqamlvJp4bJ4TG5lbHlnImflUl9djJgIxtuZJkL8diBlPUr8eyHspYZvmkbr1e13k9qSxn40iVfje9KBoBj5x25C_zr9xL-bgZd5b1DUtFt2LobVlv8yNz_7-LAxb8GQuXNXSboZ9XouNPGsBzBmA_MzlN6BtYaCXfDlZ2xrdsOO9gOckm3_KyhCU92ZN_Q7_UPVqxW44o6quGsxytYcXBNm9dO78Fu61hSvjbphdq-bPNplSdVh2eR1zBo4BgwlOeQgGzh4izC8QizkvDIgtI4NACOBcmReSwNA6cOPPSPCe0oJjMIK5gZTvHuGARhoE77vwXMM728EnG_SSfCrMwh7iDgLs8ub748WqPcLfSVsoV4EpARr8-TLgQS8IRJ0jCYI5wfoROyhRMNyVH1zXLF-g7lvXrlC3Q-543XY2uFeN8j5A9xsEq4Wt0yyUoFNrEBkCRiVzkEkIKc2pvGvZM7ilkAXn0XkWcDexy0akGFSBM_7Fg4m03_r7nTQa7oxN1hUroUQNW9LMUzFr5EAtUF11sWrjP-o4PlXeYJ01b1KkK8Fg7Ii76FhghCW2rtKqfJ6aCQaodyrRnA9L1C6izjPGMQdt3dQuuN7cENxhCHV-D1xq4Di_WRVeaxPxev43JS9RG9ainboFNh6aA5qJzeW3wKvKP5L4Z2s7QwWPBlc56ANMX3QRek5rup5yBjx0fnEF8HITHHj3sDLAbhDSi0YwrcGjgejQmyQFfYKZnJLd-d2OZT1yCkPM_FqfAlwN7WPEV8P9dvUXfsqaB-ejq6kX8Py2ZgNl4z16I_7clX8vl8DPQonk2-kdUTcjve6-Lfs7jnLEgoRxHOY3zh-jHD9CfxHHggx52siLznBBj7qSpzx3ix3maFoz7RTSD_gPqNlh41Aeh8Rnktyt2h_xlzx-C_7K-480WFOR6I5fBs-F_8uHmx-uLOXkr7WXa3JsNePceCHPQASTY_xJFIHEDL_JnHAAFpXYjN73VuBfNnai0vP2ONy3fSnk78R0W_WdWaXI2CMtR0g4_JDB2RJtSphaV2n8YzoDolQ4D8D-9mdVVy0EzG49hoAY4kyXlYCymDQZNSd2yWlc_QNfOB8hNa3LLOQNKC8TKYNr6hH23I_2Tobpm6-BfFCsrwQC-H_SjJ4S2nYYLgx3bUrmpdgQ89FldUiN00Q8G7GZ0le0JB2g_ymXsSZHu-zdedIzxsRce5nLsuzQMYOLnwIxBNWGPEhvhPSTzjpyWccZYtK9qKsBhgrOOwzqe53M1bBt1Q475NfgMU7IsOWwidNJUsNFfptA5y1boJ3DJsNhfJtG3FVg47asK-rNi609Q6FOwvBDVKavgvydYndNIanXOCpLk_kRiG1bbNWJZzTgpYo9wJwhi4oR5gh1Ki8AJ0zyJIi-Nw5g9n9X-AnuRi-PPYLVNlTzFanC03RZ90zdV-wmJiIuz83_-sMfpjbSVSlNvgITL-rBEpxEQmmAHe8lcEiKKI9ARVVZnH9GHTq6DBToBf55zbjj9S918BEr7sbdH6fdWfhoEap6YQj7iTYX8LrrUGBmyCBZMokJKF5m_Wb8ROQMIDhoTFptRrmq_gzTOd6kG__Y2K3Ey4aCinGnaihHC77SS7wY6g_o1zHxcelLHi-FV3vge8O0Ye4_kIRLiEprQmM4xLqIuhVkZIrzHGCcmgJo6iMnVflI7n7_-emg7XTFwjqesuZ3Ivk_B2tlWpwz-w0A_vghrsIk-gohs6vpj-2ykTfbfhGfk-TiDxczuYG8026fkZx4QkgVB5McBjTLvIdKsZ7NIi_OcFTEBmhVJ7IQsBqRhQh1KAhrmBQ2jmM4g7VDmAS9I7LkR_gymzWUe5Cvdyzx8zyoOEQD_OMO0A0Q7PX93c3F6vse0j2DqTlp6I92dyPhhqCnZSX0nID6egRoJMTrjrAEyVFZ5vq2bFDRTfQdYu8jZChZEGCT7TLtQ6UmtrLQGmgDJoMTKNw2cn7jRl1Iq6WwrsM-G3GPj27rsN_CDm0oD_vJB0I7ReGtCYmAjSOAhR6AAOQAUwGWQqTWttquzB1cqA6sAqFSgzojcZ3zTcSC2MFQeGGvlniKjRrghttSlbEw16HzMTq6lm-ho5QNA5trEwaTimB9RUvdx0kaOFzqY3vj4GFNA7GHShoEbxoBmm9WdgjbGrhdiEhzK-A4v5HB690H2Vw1_UttO73jJvqkJh18p53tW98uStehdzcsXkRdIuGTomlUw25vVi9D7PetWEGnBrr8W9fPhO3Jiwt74_8DePMQsioqEp4SlBU0estdG1pa92M95SnHm5HmKndBjvkOTkDhZ5kUkIrGfRMknsDdY-J7vks-J_e1afTLrC7qNb9HNtv2EyP-DpO_1xekefVfSWCdtvWklfxuRHQ77Y6JFZYDJXNgfxRid33N5MmA15RWgGFZEC5gDgdmIP-uKAYETuk_gd4BR_jCuN0DWzFKBsEkcmhvmwEmp0DHks1G7Cm8VBe8tGXdCbQtrI111K3niZZTrqblvQ2jrAAx3p0-0fJOtpU9QpqCpOgiz-tME7FONrLunUt0TAavHO4bx3OQt1IhsrwfHMnaUj8lg1RObPDZ-RBkc_ZH1ATtZ7Snx1SuejPJJkUwdn954-Djwj8PgMLoD7EaeH8-R2_djF9MEk4PoBof2QN6ORf2yDp_RmYk8TH3evcohHaASnDUAu4E18SJkX7GmXTEQr6B4n5bbB47pGLoCmjw_STshy8uk8rMi_5CEJA-LkKZREsZR_BDV5AGqk8IjGfaIk7I0csKQZk6SF7nDQ5_JbxNAAhSf8g2Ch-URwGufz81E_ld1nW_Rt7AG6zu2fTarv7m4vLw6P9tD9VqaWxlrb1JYuWueH4a1FwOsYwhb49kMQBhRdAIDL8XwJQLEdk1rv0Som24lr9SlkMjGkZfsIft89lBKa1NNQHsQpTlkdLQBiwrCh7wmEPpMJnEBniqZO3wioK1Jcg0ZBiVZx28IND-1cYCspJmpOmaMBwW8k6zY8QZa4Q6nfhrQoPMHXu50eDjPm6pbVWN3lOOTBwob9GvB_mHyTCmpDe8HjCs4a3-gHjWcH1q7LrrRD5RxiIS-DgdsvSFq2HWsrRgSMS76F7QaPxNR8Yd6oA4j1ERq_zPrPc3nJ5NBPO4nYgf2sgd-wj_2yXH0SL7YiWOZE_Y8GzlPPUUkz1rCgNpDnX2N_wjmJxmS_eSx9Nljyayz8YJe06_hJ74XDbyZCp3DYqy7p1O9c47iWiyXLegtVj3nQHDOUZyuOIhaBqDqW_5sX7ELt4m7iF7kLr74_X8qHdwptSYAAA)!
19
+ See it in action
20
+ [here](https://zerodevx.github.io/json-pretty-print/?data=H4sIAAAAAAAAA7WaXXOkNhaG7_MrtK692FQaAgIE8tU4tmfjxJ7MepykUklqS4Do1g4NHT5sd1L73_foC2g3bXs83krF0wLpICHpOe854tcvEPoL_kfo6N8iPzpGR8SLKWFBESakIJnvJYkfZn4YHS10NVHl_B4qeqa87E27mMShz1InS7PQCUmWOkkUJg4hHityFjCSpoON9iTrxC2Hdl3Tc3M1ZSWrMnnx6O94QXDiJtS22Iis6xt1b9V1m-Ovv96ULOOrusxd0X0d4PsA27psKesFoSnyLT-ty7qRbdOmvqtsvYqtlcHLuqkY-lDWbLi15DBK1aLga1Zyez2r1xtWbeWN9z9c31ycntg7UE2U8noprbXS2JtN3XQiYy60Gsaxqiv10K989A_qh1-i0KMOjnAy9D7PG962so4fxOikgr6d1n3TLdB5Kf5kt6Is-QK943foit-LrF4g6sX-0Dyt-042Pu9QLofNEavEGq3ZEgyxUvzRM9SKqkObphY5hx9rISuIHG1YIxi8ZsR7aIu4vMxysRGtyES1dNHJmnfTK6jol9ACQX85-qMXKOctb3qwCYXWRdd80_CVepeiQ1lfbpjtlO6PNCdtqkfVRQFWGRJNLyvUZQmN-rJk66xGonJ_a34bJqjhS9F2vOFq7WHPJ44XOV5w4yXHPj3GEXLgl-fZ-iXrRNfn8tXD2nSjIMTUt_fqamlvJp4bJ4TG5lbHlnImflUl9djJgIxtuZJkL8diBlPUr8eyHspYZvmkbr1e13k9qSxn40iVfje9KBoBj5x25C_zr9xL-bgZd5b1DUtFt2LobVlv8yNz_7-LAxb8GQuXNXSboZ9XouNPGsBzBmA_MzlN6BtYaCXfDlZ2xrdsOO9gOckm3_KyhCU92ZN_Q7_UPVqxW44o6quGsxytYcXBNm9dO78Fu61hSvjbphdq-bPNplSdVh2eR1zBo4BgwlOeQgGzh4izC8QizkvDIgtI4NACOBcmReSwNA6cOPPSPCe0oJjMIK5gZTvHuGARhoE77vwXMM728EnG_SSfCrMwh7iDgLs8ub748WqPcLfSVsoV4EpARr8-TLgQS8IRJ0jCYI5wfoROyhRMNyVH1zXLF-g7lvXrlC3Q-543XY2uFeN8j5A9xsEq4Wt0yyUoFNrEBkCRiVzkEkIKc2pvGvZM7ilkAXn0XkWcDexy0akGFSBM_7Fg4m03_r7nTQa7oxN1hUroUQNW9LMUzFr5EAtUF11sWrjP-o4PlXeYJ01b1KkK8Fg7Ii76FhghCW2rtKqfJ6aCQaodyrRnA9L1C6izjPGMQdt3dQuuN7cENxhCHV-D1xq4Di_WRVeaxPxev43JS9RG9ainboFNh6aA5qJzeW3wKvKP5L4Z2s7QwWPBlc56ANMX3QRek5rup5yBjx0fnEF8HITHHj3sDLAbhDSi0YwrcGjgejQmyQFfYKZnJLd-d2OZT1yCkPM_FqfAlwN7WPEV8P9dvUXfsqaB-ejq6kX8Py2ZgNl4z16I_7clX8vl8DPQonk2-kdUTcjve6-Lfs7jnLEgoRxHOY3zh-jHD9CfxHHggx52siLznBBj7qSpzx3ix3maFoz7RTSD_gPqNlh41Aeh8Rnktyt2h_xlzx-C_7K-480WFOR6I5fBs-F_8uHmx-uLOXkr7WXa3JsNePceCHPQASTY_xJFIHEDL_JnHAAFpXYjN73VuBfNnai0vP2ONy3fSnk78R0W_WdWaXI2CMtR0g4_JDB2RJtSphaV2n8YzoDolQ4D8D-9mdVVy0EzG49hoAY4kyXlYCymDQZNSd2yWlc_QNfOB8hNa3LLOQNKC8TKYNr6hH23I_2Tobpm6-BfFCsrwQC-H_SjJ4S2nYYLgx3bUrmpdgQ89FldUiN00Q8G7GZ0le0JB2g_ymXsSZHu-zdedIzxsRce5nLsuzQMYOLnwIxBNWGPEhvhPSTzjpyWccZYtK9qKsBhgrOOwzqe53M1bBt1Q475NfgMU7IsOWwidNJUsNFfptA5y1boJ3DJsNhfJtG3FVg47asK-rNi609Q6FOwvBDVKavgvydYndNIanXOCpLk_kRiG1bbNWJZzTgpYo9wJwhi4oR5gh1Ki8AJ0zyJIi-Nw5g9n9X-AnuRi-PPYLVNlTzFanC03RZ90zdV-wmJiIuz83_-sMfpjbSVSlNvgITL-rBEpxEQmmAHe8lcEiKKI9ARVVZnH9GHTq6DBToBf55zbjj9S918BEr7sbdH6fdWfhoEap6YQj7iTYX8LrrUGBmyCBZMokJKF5m_Wb8ROQMIDhoTFptRrmq_gzTOd6kG__Y2K3Ey4aCinGnaihHC77SS7wY6g_o1zHxcelLHi-FV3vge8O0Ye4_kIRLiEprQmM4xLqIuhVkZIrzHGCcmgJo6iMnVflI7n7_-emg7XTFwjqesuZ3Ivk_B2tlWpwz-w0A_vghrsIk-gohs6vpj-2ykTfbfhGfk-TiDxczuYG8026fkZx4QkgVB5McBjTLvIdKsZ7NIi_OcFTEBmhVJ7IQsBqRhQh1KAhrmBQ2jmM4g7VDmAS9I7LkR_gymzWUe5Cvdyzx8zyoOEQD_OMO0A0Q7PX93c3F6vse0j2DqTlp6I92dyPhhqCnZSX0nID6egRoJMTrjrAEyVFZ5vq2bFDRTfQdYu8jZChZEGCT7TLtQ6UmtrLQGmgDJoMTKNw2cn7jRl1Iq6WwrsM-G3GPj27rsN_CDm0oD_vJB0I7ReGtCYmAjSOAhR6AAOQAUwGWQqTWttquzB1cqA6sAqFSgzojcZ3zTcSC2MFQeGGvlniKjRrghttSlbEw16HzMTq6lm-ho5QNA5trEwaTimB9RUvdx0kaOFzqY3vj4GFNA7GHShoEbxoBmm9WdgjbGrhdiEhzK-A4v5HB690H2Vw1_UttO73jJvqkJh18p53tW98uStehdzcsXkRdIuGTomlUw25vVi9D7PetWEGnBrr8W9fPhO3Jiwt74_8DePMQsioqEp4SlBU0estdG1pa92M95SnHm5HmKndBjvkOTkDhZ5kUkIrGfRMknsDdY-J7vks-J_e1afTLrC7qNb9HNtv2EyP-DpO_1xekefVfSWCdtvWklfxuRHQ77Y6JFZYDJXNgfxRid33N5MmA15RWgGFZEC5gDgdmIP-uKAYETuk_gd4BR_jCuN0DWzFKBsEkcmhvmwEmp0DHks1G7Cm8VBe8tGXdCbQtrI111K3niZZTrqblvQ2jrAAx3p0-0fJOtpU9QpqCpOgiz-tME7FONrLunUt0TAavHO4bx3OQt1IhsrwfHMnaUj8lg1RObPDZ-RBkc_ZH1ATtZ7Snx1SuejPJJkUwdn954-Djwj8PgMLoD7EaeH8-R2_djF9MEk4PoBof2QN6ORf2yDp_RmYk8TH3evcohHaASnDUAu4E18SJkX7GmXTEQr6B4n5bbB47pGLoCmjw_STshy8uk8rMi_5CEJA-LkKZREsZR_BDV5AGqk8IjGfaIk7I0csKQZk6SF7nDQ5_JbxNAAhSf8g2Ch-URwGufz81E_ld1nW_Rt7AG6zu2fTarv7m4vLw6P9tD9VqaWxlrb1JYuWueH4a1FwOsYwhb49kMQBhRdAIDL8XwJQLEdk1rv0Som24lr9SlkMjGkZfsIft89lBKa1NNQHsQpTlkdLQBiwrCh7wmEPpMJnEBniqZO3wioK1Jcg0ZBiVZx28IND-1cYCspJmpOmaMBwW8k6zY8QZa4Q6nfhrQoPMHXu50eDjPm6pbVWN3lOOTBwob9GvB_mHyTCmpDe8HjCs4a3-gHjWcH1q7LrrRD5RxiIS-DgdsvSFq2HWsrRgSMS76F7QaPxNR8Yd6oA4j1ERq_zPrPc3nJ5NBPO4nYgf2sgd-wj_2yXH0SL7YiWOZE_Y8GzlPPUUkz1rCgNpDnX2N_wjmJxmS_eSx9Nljyayz8YJe06_hJ74XDbyZCp3DYqy7p1O9c47iWiyXLegtVj3nQHDOUZyuOIhaBqDqW_5sX7ELt4m7iF7kLr74_X8qHdwptSYAAA)!
17
21
 
18
22
  ## Install
19
23
 
@@ -39,7 +43,8 @@ $ npm i -D zipurl
39
43
  <script src="https://cdn.jsdelivr.net/npm/zipurl@0"></script>
40
44
  ```
41
45
 
42
- The functions `zipurl()` and `unzipurl()` are available in the global (`window`) scope.
46
+ The functions `zipurl()` and `unzipurl()` are available in the global (`window`)
47
+ scope.
43
48
 
44
49
  #### Or with a bundler
45
50
 
@@ -108,7 +113,8 @@ That's it!
108
113
  Ok, so it works much better with larger datasets:
109
114
 
110
115
  ```js
111
- const a = JSON.stringify(`{"students":[{"name":"Jack","age":17},{"name":"Jill","age":16},
116
+ const a =
117
+ JSON.stringify(`{"students":[{"name":"Jack","age":17},{"name":"Jill","age":16},
112
118
  {"name":"Sue","age":16}],"class":"math"}`)
113
119
 
114
120
  console.log(a.length) // 103 bytes
@@ -116,7 +122,8 @@ console.log(encodeURIComponent(a).length) // 199 bytes
116
122
  console.log(zipurl(a).length) // 116 bytes
117
123
 
118
124
  // Let's try something bigger (3122 bytes)
119
- const b = JSON.stringify(`{"shaderStatements":[{"output":"b","outputSwizzle":"zxyw","assignmentOperator":"-=",
125
+ const b =
126
+ JSON.stringify(`{"shaderStatements":[{"output":"b","outputSwizzle":"zxyw","assignmentOperator":"-=",
120
127
  "functionName":"","parameter":"a","valueX":6.62,"valueY":6.165,"valueZ":-0.974,"valueW":-4.233,"parameterSwizzle":"xzyy"},
121
128
  {"output":"b","outputSwizzle":"ywxz","assignmentOperator":"-=","functionName":"","parameter":"a","valueX":-4.88,
122
129
  "valueY":0.649,"valueZ":0.171,"valueW":-0.084,"parameterSwizzle":"yzwx"},{"output":"a","outputSwizzle":"xzwy",
@@ -151,19 +158,22 @@ console.log(zipurl(b).length) // 1120 bytes - 77.4% reduction in size :)
151
158
 
152
159
  ## Google Apps Script
153
160
 
154
- If you're using GAS somewhere along your pipeline, `zipurl` is supported natively (kindof).
161
+ If you're using GAS somewhere along your pipeline, `zipurl` is supported
162
+ natively (kindof).
155
163
 
156
164
  Here's the gist:
157
165
 
158
166
  ```js
159
167
  function zipurl(data) {
160
- var blob = Utilities.gzip(Utilities.newBlob(data));
161
- return Utilities.base64EncodeWebSafe(blob.getBytes());
168
+ var blob = Utilities.gzip(Utilities.newBlob(data))
169
+ return Utilities.base64EncodeWebSafe(blob.getBytes())
162
170
  }
163
171
 
164
172
  function unzipurl(data) {
165
- var blob = Utilities.newBlob(Utilities.base64DecodeWebSafe(data)).setContentType('application/x-gzip');
166
- return Utilities.ungzip(blob).getDataAsString();
173
+ var blob = Utilities.newBlob(
174
+ Utilities.base64DecodeWebSafe(data)
175
+ ).setContentType('application/x-gzip')
176
+ return Utilities.ungzip(blob).getDataAsString()
167
177
  }
168
178
  ```
169
179
 
package/package.json CHANGED
@@ -1,26 +1,27 @@
1
1
  {
2
2
  "name": "zipurl",
3
- "version": "0.2.4",
3
+ "version": "0.2.7",
4
4
  "description": "Generate gzip web-safe strings on the browser",
5
5
  "author": "Jason Lee <jason@zerodevx.com>",
6
6
  "type": "module",
7
7
  "exports": {
8
8
  ".": {
9
- "import": "./index.js",
9
+ "import": "./src/index.js",
10
10
  "require": "./zipurl.min.js"
11
11
  },
12
12
  "./package.json": "./package.json"
13
13
  },
14
14
  "bin": {
15
- "zipurl": "bin/zipurl.js",
16
- "unzipurl": "bin/unzipurl.js"
15
+ "zipurl": "./src/zipurl.js",
16
+ "unzipurl": "./src/unzipurl.js"
17
17
  },
18
18
  "scripts": {
19
- "dev": "rollup -c -w",
19
+ "format": "prettier --write .",
20
+ "lint": "eslint .",
20
21
  "build": "rollup -c",
21
- "lint": "standard | snazzy",
22
- "prepublishOnly": "npm run lint && npm run build",
23
- "test": "npm run dev"
22
+ "size": "gzip-size zipurl.min.js --include-original",
23
+ "prepublishOnly": "run-s format lint build",
24
+ "test": "http-server . -c-1 -o test/"
24
25
  },
25
26
  "dependencies": {
26
27
  "js-base64": "^3.7.2",
@@ -29,31 +30,31 @@
29
30
  "devDependencies": {
30
31
  "@rollup/plugin-node-resolve": "^13.1.3",
31
32
  "ansi-regex": "^6.0.1",
32
- "chai": "^4.3.4",
33
- "mocha": "^9.2.0",
34
- "rollup": "^2.66.0",
35
- "rollup-plugin-livereload": "^2.0.5",
36
- "rollup-plugin-serve": "^1.1.0",
37
- "rollup-plugin-terser": "^7.0.2",
38
- "snazzy": "^9.0.0",
39
- "standard": "^16.0.4"
33
+ "chai": "^4.3.6",
34
+ "eslint": "^8.9.0",
35
+ "eslint-config-prettier": "^8.4.0",
36
+ "gzip-size-cli": "^5.1.0",
37
+ "http-server": "^14.1.0",
38
+ "mocha": "^9.2.1",
39
+ "npm-run-all": "^4.1.5",
40
+ "prettier": "^2.5.1",
41
+ "rollup": "^2.68.0",
42
+ "rollup-plugin-terser": "^7.0.2"
40
43
  },
41
- "license": "ISC",
42
44
  "engines": {
43
45
  "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
44
46
  },
45
47
  "files": [
46
- "index.js",
47
- "zipurl.min.js",
48
- "/bin"
48
+ "src/",
49
+ "zipurl.min.js"
49
50
  ],
50
- "repository": {
51
- "type": "git",
52
- "url": "git+https://github.com/zerodevx/zipurl.git"
53
- },
51
+ "license": "ISC",
52
+ "repository": "github:zerodevx/zipurl",
54
53
  "keywords": [
55
54
  "gzip",
56
55
  "base64",
57
- "url-safe"
56
+ "url-safe",
57
+ "web-safe-strings",
58
+ "json-compress"
58
59
  ]
59
60
  }
package/src/cli.js ADDED
@@ -0,0 +1,20 @@
1
+ async function read() {
2
+ const { stdin } = process
3
+ if (stdin.isTTY) return ''
4
+ const results = []
5
+ let length = 0
6
+ for await (const chunk of stdin) {
7
+ results.push(chunk)
8
+ length += chunk.length
9
+ }
10
+ return Buffer.concat(results, length).toString('utf8')
11
+ }
12
+
13
+ export default async function () {
14
+ const arg = process.argv.slice(2).join(' ') || (await read()).trim()
15
+ if (!arg) {
16
+ console.error('Error: No arguments found!')
17
+ process.exit(1)
18
+ }
19
+ return arg
20
+ }
package/src/index.js ADDED
@@ -0,0 +1,5 @@
1
+ import { gzip, ungzip } from 'pako'
2
+ import { fromUint8Array, toUint8Array } from 'js-base64'
3
+
4
+ export const zipurl = (data) => fromUint8Array(gzip(data), true)
5
+ export const unzipurl = (data) => ungzip(toUint8Array(data), { to: 'string' })
@@ -0,0 +1,4 @@
1
+ import { unzipurl } from './index.js'
2
+ import cli from './cli.js'
3
+
4
+ console.log(unzipurl(await cli()))
package/src/zipurl.js ADDED
@@ -0,0 +1,4 @@
1
+ import { zipurl } from './index.js'
2
+ import cli from './cli.js'
3
+
4
+ console.log(zipurl(await cli()))
package/bin/getInputs.js DELETED
@@ -1,10 +0,0 @@
1
- import getStdin from './stdin.js'
2
-
3
- export default async function () {
4
- const arg = process.argv.slice(2).join(' ') || (await getStdin()).trim()
5
- if (!arg) {
6
- console.error('Error: No arguments found!')
7
- process.exit(9)
8
- }
9
- return arg
10
- }
package/bin/stdin.js DELETED
@@ -1,24 +0,0 @@
1
- const { stdin } = process
2
-
3
- const getStdinBuffer = async () => {
4
- if (stdin.isTTY) {
5
- return Buffer.alloc(0)
6
- }
7
-
8
- const result = []
9
- let length = 0
10
-
11
- for await (const chunk of stdin) {
12
- result.push(chunk)
13
- length += chunk.length
14
- }
15
-
16
- return Buffer.concat(result, length)
17
- }
18
-
19
- export default async function getStdin () {
20
- const buffer = await getStdinBuffer()
21
- return buffer.toString()
22
- }
23
-
24
- getStdin.buffer = getStdinBuffer
package/bin/unzipurl.js DELETED
@@ -1,7 +0,0 @@
1
- #! /usr/bin/env node
2
- import getInputs from './getInputs.js'
3
- import { unzipurl } from '../index.js'
4
-
5
- (async () => {
6
- console.log(unzipurl(await getInputs()))
7
- })()
package/bin/zipurl.js DELETED
@@ -1,7 +0,0 @@
1
- #! /usr/bin/env node
2
- import getInputs from './getInputs.js'
3
- import { zipurl } from '../index.js'
4
-
5
- (async () => {
6
- console.log(zipurl(await getInputs()))
7
- })()
package/index.js DELETED
@@ -1,5 +0,0 @@
1
- import { gzip, ungzip } from 'pako'
2
- import { fromUint8Array, toUint8Array } from 'js-base64'
3
-
4
- export const zipurl = data => fromUint8Array(gzip(data), true)
5
- export const unzipurl = data => ungzip(toUint8Array(data), { to: 'string' })