@uniku/cli 0.1.0 → 0.2.0
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 +11 -1
- package/build/bin.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,9 +24,19 @@ Supports macOS (Intel & Apple Silicon) and Linux (x64). Override the install loc
|
|
|
24
24
|
UNIKU_INSTALL_DIR=~/.local/bin curl -fsSL https://raw.githubusercontent.com/jkomyno/uniku/main/install.sh | sh
|
|
25
25
|
|
|
26
26
|
# Specific version
|
|
27
|
-
UNIKU_VERSION=0.0
|
|
27
|
+
UNIKU_VERSION=0.2.0 curl -fsSL https://raw.githubusercontent.com/jkomyno/uniku/main/install.sh | sh
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
+
### mise
|
|
31
|
+
|
|
32
|
+
Install the `uniku-cli-v0.2.0` GitHub release binary with [mise](https://mise.jdx.dev):
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
mise use -g github:jkomyno/uniku@uniku-cli-v0.2.0
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
This uses the exact CLI release tag.
|
|
39
|
+
|
|
30
40
|
### npm
|
|
31
41
|
|
|
32
42
|
```bash
|
package/build/bin.mjs
CHANGED
|
@@ -3,5 +3,5 @@ import*as e from"@effect/platform-bun/BunRuntime";import*as t from"@effect/platf
|
|
|
3
3
|
`)}function A(e){return e.hint?`Error: ${e.message}\n ${e.hint}`:`Error: ${e.message}`}const j=l.integer(`count`).pipe(l.withAlias(`n`),l.withDescription(`Number of IDs to generate`),l.withDefault(1)),M=l.boolean(`json`).pipe(l.withDescription(`Output as JSON`),l.withDefault(!1)),N=l.choiceWithValue(`uuid-version`,[[`4`,4],[`7`,7]]).pipe(l.withAlias(`v`),l.withDescription(`UUID version: 4, 7`),l.withDefault(4)),P=l.boolean(`lowercase`).pipe(l.withDescription(`Output in lowercase`),l.withDefault(!1)),F=c.make(`uuid`,{count:j,json:M,version:N,lowercase:P},r.fn(`cli.generate.uuid`)(function*({count:e,json:t,version:n,lowercase:r}){let i=yield*D,a=yield*he({count:e,version:n,lowercase:r});yield*i.write(k(a),{json:t})})).pipe(c.withDescription(`Generate UUIDs (v4 or v7)`),c.withExamples([{command:`uniku uuid -n 5 --json`,description:`Generate 5 UUIDs as a JSON array (machine-readable)`},{command:`uniku uuid -v 7`,description:`Generate a time-sortable UUID v7`},{command:`uniku uuid`,description:`Generate one random UUID v4`}])),xe=l.boolean(`monotonic`).pipe(l.withDescription(`Generate monotonically increasing ULIDs`),l.withDefault(!1)),Se=l.string(`timestamp`).pipe(l.withDescription(`Unix timestamp in milliseconds (or "now")`),l.optional),I=c.make(`ulid`,{count:j,json:M,monotonic:xe,timestamp:Se,lowercase:P},r.fn(`cli.generate.ulid`)(function*({count:e,json:t,monotonic:n,timestamp:r,lowercase:i}){let a=yield*D,s=o.getOrUndefined(r),c=yield*me({count:e,monotonic:n,timestamp:s===void 0?void 0:yield*Ne(s),lowercase:i});yield*a.write(k(c),{json:t})})).pipe(c.withDescription(`Generate ULIDs`),c.withExamples([{command:`uniku ulid -n 10 --monotonic --json`,description:`Generate 10 strictly ordered ULIDs as a JSON array`},{command:`uniku ulid --timestamp 1720000000000`,description:`Generate a ULID for a fixed Unix timestamp (ms)`}])),Ce=l.integer(`size`).pipe(l.withAlias(`s`),l.withDescription(`Length of ID (1-256)`),l.withDefault(21)),we=l.string(`alphabet`).pipe(l.withAlias(`a`),l.withDescription(`Custom alphabet or preset: hex, numeric, alpha`),l.optional),L=c.make(`nanoid`,{count:j,json:M,size:Ce,alphabet:we},r.fn(`cli.generate.nanoid`)(function*({count:e,json:t,size:n,alphabet:r}){let i=yield*D,a=yield*pe({count:e,size:n,alphabet:o.getOrUndefined(r)});yield*i.write(k(a),{json:t})})).pipe(c.withDescription(`Generate Nanoids`),c.withExamples([{command:`uniku nanoid -n 5 --json`,description:`Generate 5 Nanoids as a JSON array`},{command:`uniku nanoid --size 10 --alphabet hex`,description:`Generate a 10-char ID from the hex preset`}])),Te=l.integer(`length`).pipe(l.withAlias(`l`),l.withDescription(`Length of ID (2-32)`),l.withDefault(24)),R=c.make(`cuid`,{count:j,json:M,length:Te},r.fn(`cli.generate.cuid`)(function*({count:e,json:t,length:n}){let r=yield*D,i=yield*ue({count:e,length:n});yield*r.write(k(i),{json:t})})).pipe(c.withDescription(`Generate CUIDs (v2)`),c.withExamples([{command:`uniku cuid -n 5 --json`,description:`Generate 5 CUIDs as a JSON array`},{command:`uniku cuid --length 10`,description:`Generate a 10-char CUID`}])),Ee=l.string(`timestamp`).pipe(l.withDescription(`Unix timestamp in seconds (or "now")`),l.optional),z=c.make(`ksuid`,{count:j,json:M,timestamp:Ee},r.fn(`cli.generate.ksuid`)(function*({count:e,json:t,timestamp:n}){let r=yield*D,i=o.getOrUndefined(n),a=yield*de({count:e,timestamp:i===void 0?void 0:yield*Pe(i)});yield*r.write(k(a),{json:t})})).pipe(c.withDescription(`Generate KSUIDs`),c.withExamples([{command:`uniku ksuid -n 5 --json`,description:`Generate 5 KSUIDs as a JSON array`},{command:`uniku ksuid --timestamp 1720000000`,description:`Generate a KSUID for a fixed Unix timestamp (s)`}])),De=c.make(`generate`).pipe(c.withDescription(`Generate new IDs`),c.withSubcommands([F,I,L,R,z]),c.withExamples([{command:`uniku generate uuid -n 5 --json`,description:`Generate 5 UUIDs as a JSON array`},{command:`uniku generate ulid`,description:"Generate one ULID (subcommands also work top-level: `uniku ulid`)"}])),Oe=F,ke=I,Ae=L,je=R,Me=z,B=r.fn(`cli.generate.parseTimestamp`)(function*(e,t,n){if(e===`now`)return t(yield*u.currentTimeMillis);let r=Number(e);return!Number.isFinite(r)||r<0?yield*new w({code:`INVALID_TIMESTAMP`,message:`Invalid timestamp: "${e}"`,hint:n}):r}),Ne=e=>B(e,e=>e,`Provide a Unix timestamp in milliseconds or "now"`),Pe=e=>B(e,e=>Math.floor(e/1e3),`Provide a Unix timestamp in seconds or "now"`);function Fe(e,t){switch(t){case`uuid`:return Ie(e);case`ulid`:return Le(e);case`ksuid`:return Re(e);case`cuid`:return ze(e);case`nanoid`:return Be(e)}}function V(e){return v.isValid(e)?{id:e,valid:!0,type:`uuid`,version:7}:_.isValid(e)?{id:e,valid:!0,type:`uuid`,version:4}:g.isValid(e)?{id:e,valid:!0,type:`ulid`}:m.isValid(e)?{id:e,valid:!0,type:`ksuid`}:f.isValid(e)?{id:e,valid:!0,type:`cuid`}:h.isValid(e)?{id:e,valid:!0,type:`nanoid`}:{id:e,valid:!1,error:`malformed identifier`}}function Ie(e){return v.isValid(e)?{id:e,valid:!0,type:`uuid`,version:7}:_.isValid(e)?{id:e,valid:!0,type:`uuid`,version:4}:{id:e,valid:!1,type:`uuid`,error:`invalid UUID format`}}function Le(e){return g.isValid(e)?{id:e,valid:!0,type:`ulid`}:{id:e,valid:!1,type:`ulid`,error:`invalid ULID format`}}function Re(e){return m.isValid(e)?{id:e,valid:!0,type:`ksuid`}:{id:e,valid:!1,type:`ksuid`,error:`invalid KSUID format`}}function ze(e){return f.isValid(e)?{id:e,valid:!0,type:`cuid`}:{id:e,valid:!1,type:`cuid`,error:`invalid CUID format`}}function Be(e){return h.isValid(e)?{id:e,valid:!0,type:`nanoid`}:{id:e,valid:!1,type:`nanoid`,error:`invalid Nanoid format`}}function Ve(e,t){let n=t??He(e);if(!n)return null;switch(n){case`uuid`:return Ue(e);case`ulid`:return We(e);case`ksuid`:return Ge(e);case`cuid`:return Ke(e);case`nanoid`:return qe(e)}}function He(e){let t=V(e);return t.valid?t.type??null:null}function Ue(e){if(v.isValid(e)){let t=v.timestamp(e),n=v.toBytes(e),r=Buffer.from(n.slice(10)).toString(`hex`);return{id:e,type:`uuid`,version:7,timestamp:new Date(t).toISOString(),timestamp_ms:t,random:r}}return _.isValid(e)?{id:e,type:`uuid`,version:4,note:`This ID type contains no decodable metadata.`}:{id:e,type:`uuid`,note:`Unrecognized UUID version.`}}function We(e){let t=g.timestamp(e),n=e.slice(10);return{id:e,type:`ulid`,timestamp:new Date(t).toISOString(),timestamp_ms:t,random:n}}function Ge(e){let t=m.timestamp(e),n=m.toBytes(e),r=Buffer.from(n.slice(4)).toString(`hex`);return{id:e,type:`ksuid`,timestamp:new Date(t).toISOString(),timestamp_ms:t,random:r}}function Ke(e){return{id:e,type:`cuid`,note:`This ID type contains no decodable metadata.`}}function qe(e){return{id:e,type:`nanoid`,note:`This ID type contains no decodable metadata.`}}function Je(e){let t=e.indexOf(`--`),n=(t===-1?e:e.slice(0,t)).map(e=>e===`-V`?`--version`:e);if(t===-1)return n;let r=e.slice(t+1);return Qe(n)?[...n,...r.map(Ze)]:[...n,`--`,...r]}const H=`\0uniku-literal:`,Ye=new Set([`inspect`,`validate`]),Xe=new Set([`--completions`,`--log-level`]);function U(e){return e.startsWith(H)?e.slice(15):e}function Ze(e){return`${H}${e}`}function Qe(e){for(let t=0;t<e.length;t+=1){let n=e[t];if(n.startsWith(`-`)){Xe.has(n)&&(t+=1);continue}return Ye.has(n)}return!1}const $e=s.string(`id`).pipe(s.withDescription(`The ID to inspect`)),et=l.choice(`type`,[`uuid`,`ulid`,`nanoid`,`cuid`,`ksuid`]).pipe(l.withDescription(`ID type (auto-detected if omitted)`),l.optional),tt=l.boolean(`json`).pipe(l.withDescription(`Output as JSON`),l.withDefault(!1)),nt=c.make(`inspect`,{id:$e,type:et,json:tt},r.fn(`cli.inspect`)(function*({id:e,type:t,json:n}){let r=yield*D,i=o.getOrUndefined(t),a=U(e),s=Ve(a,i);if(!s)return yield*new w({code:`UNKNOWN_ID_TYPE`,message:`Could not identify ID type for: "${a}"`,hint:`Use --type to specify the ID type`});yield*r.write(_e(s),{json:n})})).pipe(c.withDescription(`Decode and inspect an ID`),c.withExamples([{command:`uniku inspect 01J9YR2V5TZB8Q4W6X0E1N7M3S --json`,description:`Decode an ID to structured JSON (type, version, timestamp)`},{command:`uniku inspect --type uuid 3F2504E0-4F89-41D3-9A0C-0305E82C3301`,description:`Skip auto-detection`},{command:`uniku inspect -- --tricky-id`,description:`Inspect an ID that starts with a dash`}]));var W=class e extends y.Service()(`uniku/cli/StdinService`){static layer=a.succeed(e,e.of({readLines:r.fn(`StdinService.readLines`)(()=>r.callback(e=>{let t=[];process.stdin.on(`data`,e=>{t.push(e)}),process.stdin.on(`end`,()=>{let n=Buffer.concat(t).toString(`utf-8`).split(`
|
|
4
4
|
`).map(e=>e.trim()).filter(e=>e.length>0);e(r.succeed(n))}),process.stdin.on(`error`,t=>{e(r.fail(new w({code:`STDIN_ERROR`,message:t.message})))}),process.stdin.resume()}))}))};const rt=s.string(`id`).pipe(s.withDescription(`The ID to validate`),s.optional),it=l.choice(`type`,[`uuid`,`ulid`,`nanoid`,`cuid`,`ksuid`]).pipe(l.withDescription(`Expected ID type (auto-detected if omitted)`),l.optional),at=l.boolean(`stdin`).pipe(l.withDescription(`Read IDs from stdin (one per line)`),l.withDefault(!1)),ot=l.boolean(`json`).pipe(l.withDescription(`Output validation results as JSON`),l.withDefault(!1)),st=l.boolean(`quiet`).pipe(l.withDescription(`No output, exit code only`),l.withDefault(!1)),ct=c.make(`validate`,{id:rt,type:it,stdin:at,json:ot,quiet:st},r.fn(`cli.validate`)(function*({id:e,type:t,stdin:n,json:r,quiet:i}){let a=yield*D,s=yield*W,c=o.getOrUndefined(t),l;if(n){if(l=yield*s.readLines(),l.length===0)return yield*new w({code:`NO_INPUT`,message:`No IDs provided on stdin`})}else if(o.isSome(e))l=[U(e.value)];else return yield*new w({code:`NO_INPUT`,message:`No ID provided`,hint:`Pass an ID as argument or use --stdin`});let u=l.map(e=>c?Fe(e,c):V(e));if(i||(yield*a.write(ge(u),{json:r})),u.some(e=>!e.valid))return yield*new ce({message:`One or more IDs are invalid`})})).pipe(c.withDescription(`Check if an ID is valid`),c.withExamples([{command:`uniku validate 3F2504E0-4F89-41D3-9A0C-0305E82C3301 --json`,description:`Validate one ID, result as JSON`},{command:`cat ids.txt | uniku validate --stdin --json`,description:`Validate many IDs (one per line), results as a JSON array`},{command:`uniku validate --quiet 01J9YR2V5TZB8Q4W6X0E1N7M3S`,description:`Exit code only: 0 valid, 2 invalid`}])),lt=c.make(`uniku`).pipe(c.withDescription(`Generate and validate unique identifiers`),c.withExamples([{command:`uniku uuid -n 5 --json`,description:`Generate 5 UUIDs as a JSON array (machine-readable)`},{command:`uniku ulid`,description:`Generate one ULID`},{command:`uniku inspect <id> --json`,description:`Decode an ID (type, version, timestamp) as JSON`},{command:`cat ids.txt | uniku validate --stdin --json`,description:`Validate IDs from stdin, one per line`}]),c.withSubcommands([De,ct,nt,Oe,ke,Ae,je,Me])),ut=e=>c.runWith(lt,{version:e});function dt(e){return e.includes(`--json`)}const ft=b.type().pipe(b.tag(`CliError`,e=>e.exitCode),b.tag(`ValidationFailedError`,e=>e.exitCode),b.tag(`ShowHelp`,e=>e.errors.length>0?1:0),b.tag(`UnrecognizedOption`,`DuplicateOption`,`MissingOption`,`MissingArgument`,`InvalidValue`,`UnknownSubcommand`,`UserError`,()=>1),b.exhaustive),pt=r.fn(`cli.handleCliFailure`)(function*(e,t){yield*b.value(e).pipe(b.tag(`CliError`,`ValidationFailedError`,e=>D.use(n=>n.writeError(ve(e),{json:dt(t)}))),b.tag(`ShowHelp`,()=>r.void),b.tag(`UnrecognizedOption`,`DuplicateOption`,`MissingOption`,`MissingArgument`,`InvalidValue`,`UnknownSubcommand`,`UserError`,e=>ee.error(`Error: ${e.message}`)),b.exhaustive),process.exitCode=ft(e)});var G=class e extends y.Service()(`uniku/cli/UpdateCheckService`){static layer=a.sync(e,()=>wt())};const K=`@uniku/cli`;function mt(){let e=process.getuid;if(typeof e==`function`)return`uid-${e()}`;try{let e=oe().username.replace(/[^0-9A-Za-z._-]/g,`_`);return e?`user-${e}`:null}catch{return null}}function ht(){let e=mt(),t=e?`uniku-update-check-${e}.json`:`uniku-update-check.json`;return S(ae(),t)}const gt=ht();function q(e){let t=e.match(/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/);return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3]),prerelease:t[4]??null}:null}function J(e,t){let n=q(e),r=q(t);return!n||!r?!1:n.major===r.major?n.minor===r.minor?n.patch===r.patch?n.prerelease===null&&r.prerelease!==null?!0:(n.prerelease!==null&&r.prerelease,!1):n.patch>r.patch:n.minor>r.minor:n.major>r.major}function Y(e){return C.option(C.string(e)).pipe(r.catch(()=>r.succeed(o.none())))}function X(e){return o.isSome(e)&&e.value.length>0}const _t=r.all({noUpdateNotifier:Y(`NO_UPDATE_NOTIFIER`),ci:Y(`CI`),continuousIntegration:Y(`CONTINUOUS_INTEGRATION`),nodeEnv:Y(`NODE_ENV`)});function vt(e=process.stderr.isTTY){return _t.pipe(r.map(t=>X(t.noUpdateNotifier)||X(t.ci)||X(t.continuousIntegration)||o.isSome(t.nodeEnv)&&t.nodeEnv.value===`test`||!e))}function yt(e,t){if(t){let t=e.isStandaloneBinary?`Download at https://github.com/jkomyno/uniku/releases`:`Run \`npm install -g ${K}\` to update`;return[``,` Update available: ${e.currentVersion} → ${e.latestVersion}`,` ${t}`,` Set NO_UPDATE_NOTIFIER=1 to disable`,``].join(`
|
|
5
5
|
`)}let n=`\x1B[2m`,r=`\x1B[36m`,i=`\x1B[0m`,a=e.isStandaloneBinary?`Download at ${r}https://github.com/jkomyno/uniku/releases${i}`:`Run ${r}\`npm install -g ${K}\`${i} to update`;return[``,` ${n}Update available:${i} ${n}${e.currentVersion}${i} ${n}→${i} [1;36m${e.latestVersion}${i}`,` ${a}`,` ${n}Set NO_UPDATE_NOTIFIER=1 to disable${i}`,``].join(`
|
|
6
|
-
`)}function bt(e){return Y(`NO_COLOR`).pipe(r.map(t=>yt(e,X(t))))}function Z(e,t){return o.isSome(t)&&!e.includes(`--json`)}function xt(e){try{let t=ne(e,`utf-8`),n=JSON.parse(t);if(typeof n!=`object`||!n)return null;let r=n;return typeof r.checkedAt!=`number`||!Number.isFinite(r.checkedAt)||r.latestVersion!==void 0&&typeof r.latestVersion!=`string`?null:r.latestVersion===void 0?{checkedAt:r.checkedAt}:{latestVersion:r.latestVersion,checkedAt:r.checkedAt}}catch{return null}}function Q(e,t){try{te(x(t),{recursive:!0});let n=`${t}.tmp`;ie(n,JSON.stringify(e)),re(n,t)}catch{}}function St(e){return r.tryPromise({try:t=>fetch(`https://registry.npmjs.org/%40uniku%2Fcli/latest`,{headers:{Accept:`application/json`,"User-Agent":`${K}/${e}`},signal:AbortSignal.any([t,AbortSignal.timeout(5e3)])}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if(!t.version)throw Error(`Missing version field`);return t.version}),catch:()=>Error(`fetch failed`)}).pipe(r.catch(()=>r.succeed(null)))}function Ct(){try{return typeof __STANDALONE_BINARY__<`u`&&__STANDALONE_BINARY__===!0}catch{return!1}}function wt(e={}){let t=e.cacheFile??gt,n=e.fetchLatestVersion??St,i=e.now??Date.now,a=e.isStandaloneBinary??Ct,s=e.isStderrTTY??(()=>process.stderr.isTTY),c=e.writeStderr??(e=>process.stderr.write(e));return G.of({check:r.fn(`UpdateCheckService.check`)(function*(e){if(yield*vt(s()))return o.none();let r=xt(t),c=i();if(r&&c-r.checkedAt<864e5)return r.latestVersion&&J(r.latestVersion,e)?o.some({currentVersion:e,latestVersion:r.latestVersion,isStandaloneBinary:a()}):o.none();let l=yield*n(e);return l===null?(Q({checkedAt:c},t),o.none()):(Q({latestVersion:l,checkedAt:c},t),J(l,e)?o.some({currentVersion:e,latestVersion:l,isStandaloneBinary:a()}):o.none())},r.catch(()=>r.succeed(o.none()))),notify:r.fn(`UpdateCheckService.notify`)(function*(e){let t=yield*bt(e);yield*r.sync(()=>{c(t)})})})}var $=`0.
|
|
6
|
+
`)}function bt(e){return Y(`NO_COLOR`).pipe(r.map(t=>yt(e,X(t))))}function Z(e,t){return o.isSome(t)&&!e.includes(`--json`)}function xt(e){try{let t=ne(e,`utf-8`),n=JSON.parse(t);if(typeof n!=`object`||!n)return null;let r=n;return typeof r.checkedAt!=`number`||!Number.isFinite(r.checkedAt)||r.latestVersion!==void 0&&typeof r.latestVersion!=`string`?null:r.latestVersion===void 0?{checkedAt:r.checkedAt}:{latestVersion:r.latestVersion,checkedAt:r.checkedAt}}catch{return null}}function Q(e,t){try{te(x(t),{recursive:!0});let n=`${t}.tmp`;ie(n,JSON.stringify(e)),re(n,t)}catch{}}function St(e){return r.tryPromise({try:t=>fetch(`https://registry.npmjs.org/%40uniku%2Fcli/latest`,{headers:{Accept:`application/json`,"User-Agent":`${K}/${e}`},signal:AbortSignal.any([t,AbortSignal.timeout(5e3)])}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if(!t.version)throw Error(`Missing version field`);return t.version}),catch:()=>Error(`fetch failed`)}).pipe(r.catch(()=>r.succeed(null)))}function Ct(){try{return typeof __STANDALONE_BINARY__<`u`&&__STANDALONE_BINARY__===!0}catch{return!1}}function wt(e={}){let t=e.cacheFile??gt,n=e.fetchLatestVersion??St,i=e.now??Date.now,a=e.isStandaloneBinary??Ct,s=e.isStderrTTY??(()=>process.stderr.isTTY),c=e.writeStderr??(e=>process.stderr.write(e));return G.of({check:r.fn(`UpdateCheckService.check`)(function*(e){if(yield*vt(s()))return o.none();let r=xt(t),c=i();if(r&&c-r.checkedAt<864e5)return r.latestVersion&&J(r.latestVersion,e)?o.some({currentVersion:e,latestVersion:r.latestVersion,isStandaloneBinary:a()}):o.none();let l=yield*n(e);return l===null?(Q({checkedAt:c},t),o.none()):(Q({latestVersion:l,checkedAt:c},t),J(l,e)?o.some({currentVersion:e,latestVersion:l,isStandaloneBinary:a()}):o.none())},r.catch(()=>r.succeed(o.none()))),notify:r.fn(`UpdateCheckService.notify`)(function*(e){let t=yield*bt(e);yield*r.sync(()=>{c(t)})})})}var $=`0.2.0`;const Tt=ut($),Et=a.mergeAll(D.layer,W.layer,G.layer,t.layer);r.gen(function*(){let e=yield*G,t=Je(process.argv.slice(2)),a=yield*r.forkChild(e.check($),{startImmediately:!0});yield*Tt(t).pipe(r.catch(e=>pt(e,t)));let s=yield*i.join(a).pipe(r.timeoutOption(n.millis(250)));yield*i.interrupt(a);let c=o.flatten(s);Z(t,c)&&(yield*e.notify(c.value))}).pipe(r.provide(Et),e.runMain);export{};
|
|
7
7
|
//# sourceMappingURL=bin.mjs.map
|