@willbooster/shared-lib 7.4.18 → 7.4.20
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/dist/assert.cjs +2 -2
- package/dist/assert.cjs.map +1 -1
- package/dist/assert.js +2 -2
- package/dist/assert.js.map +1 -1
- package/dist/error.cjs +4 -2
- package/dist/error.cjs.map +1 -1
- package/dist/error.js +4 -2
- package/dist/error.js.map +1 -1
- package/dist/humanize.cjs +2 -2
- package/dist/humanize.cjs.map +1 -1
- package/dist/humanize.js +2 -2
- package/dist/humanize.js.map +1 -1
- package/dist/index.cjs +1 -2
- package/dist/index.js +1 -2
- package/dist/mail.cjs +17 -2
- package/dist/mail.cjs.map +1 -1
- package/dist/mail.js +17 -2
- package/dist/mail.js.map +1 -1
- package/dist/parseCommandLineArgs.cjs +2 -2
- package/dist/parseCommandLineArgs.cjs.map +1 -1
- package/dist/parseCommandLineArgs.js +2 -2
- package/dist/parseCommandLineArgs.js.map +1 -1
- package/dist/shuffle.cjs +2 -2
- package/dist/shuffle.cjs.map +1 -1
- package/dist/shuffle.js +2 -2
- package/dist/shuffle.js.map +1 -1
- package/dist/sleep.cjs +2 -2
- package/dist/sleep.cjs.map +1 -1
- package/dist/sleep.js +2 -2
- package/dist/sleep.js.map +1 -1
- package/dist/sqlite.cjs +2 -2
- package/dist/sqlite.cjs.map +1 -1
- package/dist/sqlite.js +2 -2
- package/dist/sqlite.js.map +1 -1
- package/dist/zenkaku.cjs +2 -2
- package/dist/zenkaku.cjs.map +1 -1
- package/dist/zenkaku.js +2 -2
- package/dist/zenkaku.js.map +1 -1
- package/package.json +7 -7
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/assert.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=assert.cjs.map
|
|
1
|
+
"use strict";function e(e,t){if(!t)throw Error(`The value of "${e}" must be truthy.`);return t}exports.ensureTruthy=e;
|
|
2
|
+
//# sourceMappingURL=assert.cjs.map
|
package/dist/assert.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.cjs","sources":["../src/assert.ts"],"sourcesContent":["export function ensureTruthy<T>(name: string, value: T): NonNullable<T> {\n if (!value) {\n throw new Error(`The value of \"${name}\" must be truthy.`);\n }\n return value;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"assert.cjs","names":[],"sources":["../src/assert.ts"],"sourcesContent":["export function ensureTruthy<T>(name: string, value: T): NonNullable<T> {\n if (!value) {\n throw new Error(`The value of \"${name}\" must be truthy.`);\n }\n return value;\n}\n"],"mappings":"aAAA,SAAgB,EAAgB,EAAc,EAA0B,CACtE,GAAI,CAAC,EACH,MAAU,MAAM,iBAAiB,EAAK,kBAAkB,EAE1D,OAAO,CACT"}
|
package/dist/assert.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=assert.js.map
|
|
1
|
+
function e(e,t){if(!t)throw Error(`The value of "${e}" must be truthy.`);return t}export{e as ensureTruthy};
|
|
2
|
+
//# sourceMappingURL=assert.js.map
|
package/dist/assert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.js","sources":["../src/assert.ts"],"sourcesContent":["export function ensureTruthy<T>(name: string, value: T): NonNullable<T> {\n if (!value) {\n throw new Error(`The value of \"${name}\" must be truthy.`);\n }\n return value;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"assert.js","names":[],"sources":["../src/assert.ts"],"sourcesContent":["export function ensureTruthy<T>(name: string, value: T): NonNullable<T> {\n if (!value) {\n throw new Error(`The value of \"${name}\" must be truthy.`);\n }\n return value;\n}\n"],"mappings":"AAAA,SAAgB,EAAgB,EAAc,EAA0B,CACtE,GAAI,CAAC,EACH,MAAU,MAAM,iBAAiB,EAAK,kBAAkB,EAE1D,OAAO,CACT"}
|
package/dist/error.cjs
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
1
|
+
"use strict";const e=require("./sleep.cjs");function t(e){if(e instanceof Error)return e;if(typeof e==`string`)return Error(e);try{return Error(JSON.stringify(e))}catch{return Error(String(e))}}function n(e){try{return e()}catch{}}function r(e){try{return e()}catch(e){if(typeof e==`object`&&e&&`code`in e&&e.code===`ENOENT`)return;throw e}}async function i(e){try{return await e()}catch{}}async function a(e){try{return await e()}catch(e){if(typeof e==`object`&&e&&`code`in e&&e.code===`ENOENT`)return;throw e}}async function o(t,{beforeRetry:n,handleError:r,retryCount:i=3,retryLogger:a,shouldRetry:o,sleepMilliseconds:s=0,updateSleepMilliseconds:c}={}){let l=0;for(;;)try{return await t(l)}catch(t){if(await r?.(t),l++,l>=i||o&&!o(t))throw t;s>0&&await e.sleep(s),c&&(s=c(s)),a?.(`Retry due to: ${t}
|
|
2
|
+
${t instanceof Error?`---
|
|
3
|
+
`+(t.stack??``):``}`),await n?.(t)}}exports.errorify=t,exports.ignoreEnoent=r,exports.ignoreEnoentAsync=a,exports.ignoreError=n,exports.ignoreErrorAsync=i,exports.withRetry=o;
|
|
4
|
+
//# sourceMappingURL=error.cjs.map
|
package/dist/error.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.cjs","sources":["../src/error.ts"],"sourcesContent":["import { sleep } from './sleep.js';\n\n/**\n * Convert an object to an error.\n * @param obj The object to convert.\n */\nexport function errorify(obj: unknown): Error {\n if (obj instanceof Error) return obj;\n if (typeof obj === 'string') return new Error(obj);\n try {\n return new Error(JSON.stringify(obj));\n } catch {\n return new Error(String(obj));\n }\n}\n\nexport function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport interface RetryOptions {\n beforeRetry?: (error: unknown) => Promise<void>;\n handleError?: (error: unknown) => Promise<void>;\n /**\n * The maximum number of total attempts, including the initial attempt.\n * For example, `retryCount: 3` runs the function at most 3 times: 1 initial attempt and up to 2 retries.\n */\n retryCount?: number;\n retryLogger?: (message: string) => void;\n shouldRetry?: (error: unknown) => boolean;\n sleepMilliseconds?: number;\n updateSleepMilliseconds?: (sleepMilliseconds: number) => number;\n}\n\n/**\n * Retry the given function.\n * @param func The function to retry.\n * @param beforeRetry The function to call immediately before retrying.\n * @param handleError The function to call when an error occurs.\n * @param retryCount The maximum number of total attempts, including the initial attempt.\n * @param retryLogger The function to log retrying.\n * @param sleepMilliseconds The number of milliseconds to sleep before retrying.\n * @param updateSleepMilliseconds The function to update sleep milliseconds after each retry.\n */\nexport async function withRetry<T>(\n func: (failedCount: number) => T | Promise<T>,\n {\n beforeRetry,\n handleError,\n retryCount = 3,\n retryLogger,\n shouldRetry,\n sleepMilliseconds = 0,\n updateSleepMilliseconds,\n }: RetryOptions = {}\n): Promise<T> {\n let failedCount = 0;\n for (;;) {\n try {\n return await func(failedCount);\n } catch (error) {\n await handleError?.(error);\n failedCount++;\n if (failedCount >= retryCount) {\n throw error;\n }\n if (shouldRetry && !shouldRetry(error)) {\n throw error;\n }\n if (sleepMilliseconds > 0) {\n await sleep(sleepMilliseconds);\n }\n if (updateSleepMilliseconds) {\n sleepMilliseconds = updateSleepMilliseconds(sleepMilliseconds);\n }\n retryLogger?.(`Retry due to: ${error}\n${error instanceof Error ? '---\\n' + (error.stack ?? '') : ''}`);\n await beforeRetry?.(error);\n }\n }\n}\n"],"
|
|
1
|
+
{"version":3,"file":"error.cjs","names":["sleep"],"sources":["../src/error.ts"],"sourcesContent":["import { sleep } from './sleep.js';\n\n/**\n * Convert an object to an error.\n * @param obj The object to convert.\n */\nexport function errorify(obj: unknown): Error {\n if (obj instanceof Error) return obj;\n if (typeof obj === 'string') return new Error(obj);\n try {\n return new Error(JSON.stringify(obj));\n } catch {\n return new Error(String(obj));\n }\n}\n\nexport function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport interface RetryOptions {\n beforeRetry?: (error: unknown) => Promise<void>;\n handleError?: (error: unknown) => Promise<void>;\n /**\n * The maximum number of total attempts, including the initial attempt.\n * For example, `retryCount: 3` runs the function at most 3 times: 1 initial attempt and up to 2 retries.\n */\n retryCount?: number;\n retryLogger?: (message: string) => void;\n shouldRetry?: (error: unknown) => boolean;\n sleepMilliseconds?: number;\n updateSleepMilliseconds?: (sleepMilliseconds: number) => number;\n}\n\n/**\n * Retry the given function.\n * @param func The function to retry.\n * @param beforeRetry The function to call immediately before retrying.\n * @param handleError The function to call when an error occurs.\n * @param retryCount The maximum number of total attempts, including the initial attempt.\n * @param retryLogger The function to log retrying.\n * @param sleepMilliseconds The number of milliseconds to sleep before retrying.\n * @param updateSleepMilliseconds The function to update sleep milliseconds after each retry.\n */\nexport async function withRetry<T>(\n func: (failedCount: number) => T | Promise<T>,\n {\n beforeRetry,\n handleError,\n retryCount = 3,\n retryLogger,\n shouldRetry,\n sleepMilliseconds = 0,\n updateSleepMilliseconds,\n }: RetryOptions = {}\n): Promise<T> {\n let failedCount = 0;\n for (;;) {\n try {\n return await func(failedCount);\n } catch (error) {\n await handleError?.(error);\n failedCount++;\n if (failedCount >= retryCount) {\n throw error;\n }\n if (shouldRetry && !shouldRetry(error)) {\n throw error;\n }\n if (sleepMilliseconds > 0) {\n await sleep(sleepMilliseconds);\n }\n if (updateSleepMilliseconds) {\n sleepMilliseconds = updateSleepMilliseconds(sleepMilliseconds);\n }\n retryLogger?.(`Retry due to: ${error}\n${error instanceof Error ? '---\\n' + (error.stack ?? '') : ''}`);\n await beforeRetry?.(error);\n }\n }\n}\n"],"mappings":"4CAMA,SAAgB,EAAS,EAAqB,CAC5C,GAAI,aAAe,MAAO,OAAO,EACjC,GAAI,OAAO,GAAQ,SAAU,OAAW,MAAM,CAAG,EACjD,GAAI,CACF,OAAW,MAAM,KAAK,UAAU,CAAG,CAAC,CACtC,MAAQ,CACN,OAAW,MAAM,OAAO,CAAG,CAAC,CAC9B,CACF,CAEA,SAAgB,EAAe,EAA4B,CACzD,GAAI,CACF,OAAO,EAAG,CACZ,MAAQ,CAER,CACF,CAEA,SAAgB,EAAgB,EAA4B,CAC1D,GAAI,CACF,OAAO,EAAG,CACZ,OAAS,EAAO,CACd,GAAI,OAAO,GAAU,UAAY,GAAS,SAAU,GAAS,EAAM,OAAS,SAC1E,OAEF,MAAM,CACR,CACF,CAEA,eAAsB,EAAoB,EAA8C,CACtF,GAAI,CACF,OAAO,MAAM,EAAG,CAClB,MAAQ,CAER,CACF,CAEA,eAAsB,EAAqB,EAA8C,CACvF,GAAI,CACF,OAAO,MAAM,EAAG,CAClB,OAAS,EAAO,CACd,GAAI,OAAO,GAAU,UAAY,GAAS,SAAU,GAAS,EAAM,OAAS,SAC1E,OAEF,MAAM,CACR,CACF,CA0BA,eAAsB,EACpB,EACA,CACE,cACA,cACA,aAAa,EACb,cACA,cACA,oBAAoB,EACpB,2BACgB,CAAC,EACP,CACZ,IAAI,EAAc,EAClB,OACE,GAAI,CACF,OAAO,MAAM,EAAK,CAAW,CAC/B,OAAS,EAAO,CAMd,GALA,MAAM,IAAc,CAAK,EACzB,IACI,GAAe,GAGf,GAAe,CAAC,EAAY,CAAK,EACnC,MAAM,EAEJ,EAAoB,GACtB,MAAMA,EAAAA,MAAM,CAAiB,EAE3B,IACF,EAAoB,EAAwB,CAAiB,GAE/D,IAAc,iBAAiB,EAAM;EACzC,aAAiB,MAAQ;GAAW,EAAM,OAAS,IAAM,IAAI,EACzD,MAAM,IAAc,CAAK,CAC3B,CAEJ"}
|
package/dist/error.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
import{sleep as
|
|
2
|
-
|
|
1
|
+
import{sleep as e}from"./sleep.js";function t(e){if(e instanceof Error)return e;if(typeof e==`string`)return Error(e);try{return Error(JSON.stringify(e))}catch{return Error(String(e))}}function n(e){try{return e()}catch{}}function r(e){try{return e()}catch(e){if(typeof e==`object`&&e&&`code`in e&&e.code===`ENOENT`)return;throw e}}async function i(e){try{return await e()}catch{}}async function a(e){try{return await e()}catch(e){if(typeof e==`object`&&e&&`code`in e&&e.code===`ENOENT`)return;throw e}}async function o(t,{beforeRetry:n,handleError:r,retryCount:i=3,retryLogger:a,shouldRetry:o,sleepMilliseconds:s=0,updateSleepMilliseconds:c}={}){let l=0;for(;;)try{return await t(l)}catch(t){if(await r?.(t),l++,l>=i||o&&!o(t))throw t;s>0&&await e(s),c&&(s=c(s)),a?.(`Retry due to: ${t}
|
|
2
|
+
${t instanceof Error?`---
|
|
3
|
+
`+(t.stack??``):``}`),await n?.(t)}}export{t as errorify,r as ignoreEnoent,a as ignoreEnoentAsync,n as ignoreError,i as ignoreErrorAsync,o as withRetry};
|
|
4
|
+
//# sourceMappingURL=error.js.map
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sources":["../src/error.ts"],"sourcesContent":["import { sleep } from './sleep.js';\n\n/**\n * Convert an object to an error.\n * @param obj The object to convert.\n */\nexport function errorify(obj: unknown): Error {\n if (obj instanceof Error) return obj;\n if (typeof obj === 'string') return new Error(obj);\n try {\n return new Error(JSON.stringify(obj));\n } catch {\n return new Error(String(obj));\n }\n}\n\nexport function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport interface RetryOptions {\n beforeRetry?: (error: unknown) => Promise<void>;\n handleError?: (error: unknown) => Promise<void>;\n /**\n * The maximum number of total attempts, including the initial attempt.\n * For example, `retryCount: 3` runs the function at most 3 times: 1 initial attempt and up to 2 retries.\n */\n retryCount?: number;\n retryLogger?: (message: string) => void;\n shouldRetry?: (error: unknown) => boolean;\n sleepMilliseconds?: number;\n updateSleepMilliseconds?: (sleepMilliseconds: number) => number;\n}\n\n/**\n * Retry the given function.\n * @param func The function to retry.\n * @param beforeRetry The function to call immediately before retrying.\n * @param handleError The function to call when an error occurs.\n * @param retryCount The maximum number of total attempts, including the initial attempt.\n * @param retryLogger The function to log retrying.\n * @param sleepMilliseconds The number of milliseconds to sleep before retrying.\n * @param updateSleepMilliseconds The function to update sleep milliseconds after each retry.\n */\nexport async function withRetry<T>(\n func: (failedCount: number) => T | Promise<T>,\n {\n beforeRetry,\n handleError,\n retryCount = 3,\n retryLogger,\n shouldRetry,\n sleepMilliseconds = 0,\n updateSleepMilliseconds,\n }: RetryOptions = {}\n): Promise<T> {\n let failedCount = 0;\n for (;;) {\n try {\n return await func(failedCount);\n } catch (error) {\n await handleError?.(error);\n failedCount++;\n if (failedCount >= retryCount) {\n throw error;\n }\n if (shouldRetry && !shouldRetry(error)) {\n throw error;\n }\n if (sleepMilliseconds > 0) {\n await sleep(sleepMilliseconds);\n }\n if (updateSleepMilliseconds) {\n sleepMilliseconds = updateSleepMilliseconds(sleepMilliseconds);\n }\n retryLogger?.(`Retry due to: ${error}\n${error instanceof Error ? '---\\n' + (error.stack ?? '') : ''}`);\n await beforeRetry?.(error);\n }\n }\n}\n"],"
|
|
1
|
+
{"version":3,"file":"error.js","names":[],"sources":["../src/error.ts"],"sourcesContent":["import { sleep } from './sleep.js';\n\n/**\n * Convert an object to an error.\n * @param obj The object to convert.\n */\nexport function errorify(obj: unknown): Error {\n if (obj instanceof Error) return obj;\n if (typeof obj === 'string') return new Error(obj);\n try {\n return new Error(JSON.stringify(obj));\n } catch {\n return new Error(String(obj));\n }\n}\n\nexport function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport interface RetryOptions {\n beforeRetry?: (error: unknown) => Promise<void>;\n handleError?: (error: unknown) => Promise<void>;\n /**\n * The maximum number of total attempts, including the initial attempt.\n * For example, `retryCount: 3` runs the function at most 3 times: 1 initial attempt and up to 2 retries.\n */\n retryCount?: number;\n retryLogger?: (message: string) => void;\n shouldRetry?: (error: unknown) => boolean;\n sleepMilliseconds?: number;\n updateSleepMilliseconds?: (sleepMilliseconds: number) => number;\n}\n\n/**\n * Retry the given function.\n * @param func The function to retry.\n * @param beforeRetry The function to call immediately before retrying.\n * @param handleError The function to call when an error occurs.\n * @param retryCount The maximum number of total attempts, including the initial attempt.\n * @param retryLogger The function to log retrying.\n * @param sleepMilliseconds The number of milliseconds to sleep before retrying.\n * @param updateSleepMilliseconds The function to update sleep milliseconds after each retry.\n */\nexport async function withRetry<T>(\n func: (failedCount: number) => T | Promise<T>,\n {\n beforeRetry,\n handleError,\n retryCount = 3,\n retryLogger,\n shouldRetry,\n sleepMilliseconds = 0,\n updateSleepMilliseconds,\n }: RetryOptions = {}\n): Promise<T> {\n let failedCount = 0;\n for (;;) {\n try {\n return await func(failedCount);\n } catch (error) {\n await handleError?.(error);\n failedCount++;\n if (failedCount >= retryCount) {\n throw error;\n }\n if (shouldRetry && !shouldRetry(error)) {\n throw error;\n }\n if (sleepMilliseconds > 0) {\n await sleep(sleepMilliseconds);\n }\n if (updateSleepMilliseconds) {\n sleepMilliseconds = updateSleepMilliseconds(sleepMilliseconds);\n }\n retryLogger?.(`Retry due to: ${error}\n${error instanceof Error ? '---\\n' + (error.stack ?? '') : ''}`);\n await beforeRetry?.(error);\n }\n }\n}\n"],"mappings":"mCAMA,SAAgB,EAAS,EAAqB,CAC5C,GAAI,aAAe,MAAO,OAAO,EACjC,GAAI,OAAO,GAAQ,SAAU,OAAW,MAAM,CAAG,EACjD,GAAI,CACF,OAAW,MAAM,KAAK,UAAU,CAAG,CAAC,CACtC,MAAQ,CACN,OAAW,MAAM,OAAO,CAAG,CAAC,CAC9B,CACF,CAEA,SAAgB,EAAe,EAA4B,CACzD,GAAI,CACF,OAAO,EAAG,CACZ,MAAQ,CAER,CACF,CAEA,SAAgB,EAAgB,EAA4B,CAC1D,GAAI,CACF,OAAO,EAAG,CACZ,OAAS,EAAO,CACd,GAAI,OAAO,GAAU,UAAY,GAAS,SAAU,GAAS,EAAM,OAAS,SAC1E,OAEF,MAAM,CACR,CACF,CAEA,eAAsB,EAAoB,EAA8C,CACtF,GAAI,CACF,OAAO,MAAM,EAAG,CAClB,MAAQ,CAER,CACF,CAEA,eAAsB,EAAqB,EAA8C,CACvF,GAAI,CACF,OAAO,MAAM,EAAG,CAClB,OAAS,EAAO,CACd,GAAI,OAAO,GAAU,UAAY,GAAS,SAAU,GAAS,EAAM,OAAS,SAC1E,OAEF,MAAM,CACR,CACF,CA0BA,eAAsB,EACpB,EACA,CACE,cACA,cACA,aAAa,EACb,cACA,cACA,oBAAoB,EACpB,2BACgB,CAAC,EACP,CACZ,IAAI,EAAc,EAClB,OACE,GAAI,CACF,OAAO,MAAM,EAAK,CAAW,CAC/B,OAAS,EAAO,CAMd,GALA,MAAM,IAAc,CAAK,EACzB,IACI,GAAe,GAGf,GAAe,CAAC,EAAY,CAAK,EACnC,MAAM,EAEJ,EAAoB,GACtB,MAAM,EAAM,CAAiB,EAE3B,IACF,EAAoB,EAAwB,CAAiB,GAE/D,IAAc,iBAAiB,EAAM;EACzC,aAAiB,MAAQ;GAAW,EAAM,OAAS,IAAM,IAAI,EACzD,MAAM,IAAc,CAAK,CAC3B,CAEJ"}
|
package/dist/humanize.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=humanize.cjs.map
|
|
1
|
+
"use strict";function e(e,{base:t=1e3,units:n=[`K`,`M`,`B`,`T`,`P`]}={}){if(e<t)return e.toString();let r=-1;for(;e>=t&&r<n.length-1;)e/=t,r++;return e.toFixed(2)+(n[r]??``)}exports.humanizeNumber=e;
|
|
2
|
+
//# sourceMappingURL=humanize.cjs.map
|
package/dist/humanize.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humanize.cjs","sources":["../src/humanize.ts"],"sourcesContent":["export function humanizeNumber(value: number, { base = 1000, units = ['K', 'M', 'B', 'T', 'P'] } = {}): string {\n if (value < base) {\n return value.toString();\n }\n\n let unitIndex = -1;\n while (value >= base && unitIndex < units.length - 1) {\n value /= base;\n unitIndex++;\n }\n\n return value.toFixed(2) + (units[unitIndex] ?? '');\n}\n"],"
|
|
1
|
+
{"version":3,"file":"humanize.cjs","names":[],"sources":["../src/humanize.ts"],"sourcesContent":["export function humanizeNumber(value: number, { base = 1000, units = ['K', 'M', 'B', 'T', 'P'] } = {}): string {\n if (value < base) {\n return value.toString();\n }\n\n let unitIndex = -1;\n while (value >= base && unitIndex < units.length - 1) {\n value /= base;\n unitIndex++;\n }\n\n return value.toFixed(2) + (units[unitIndex] ?? '');\n}\n"],"mappings":"aAAA,SAAgB,EAAe,EAAe,CAAE,OAAO,IAAM,QAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,GAAM,CAAC,EAAW,CAC7G,GAAI,EAAQ,EACV,OAAO,EAAM,SAAS,EAGxB,IAAI,EAAY,GAChB,KAAO,GAAS,GAAQ,EAAY,EAAM,OAAS,GACjD,GAAS,EACT,IAGF,OAAO,EAAM,QAAQ,CAAC,GAAK,EAAM,IAAc,GACjD"}
|
package/dist/humanize.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=humanize.js.map
|
|
1
|
+
function e(e,{base:t=1e3,units:n=[`K`,`M`,`B`,`T`,`P`]}={}){if(e<t)return e.toString();let r=-1;for(;e>=t&&r<n.length-1;)e/=t,r++;return e.toFixed(2)+(n[r]??``)}export{e as humanizeNumber};
|
|
2
|
+
//# sourceMappingURL=humanize.js.map
|
package/dist/humanize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humanize.js","sources":["../src/humanize.ts"],"sourcesContent":["export function humanizeNumber(value: number, { base = 1000, units = ['K', 'M', 'B', 'T', 'P'] } = {}): string {\n if (value < base) {\n return value.toString();\n }\n\n let unitIndex = -1;\n while (value >= base && unitIndex < units.length - 1) {\n value /= base;\n unitIndex++;\n }\n\n return value.toFixed(2) + (units[unitIndex] ?? '');\n}\n"],"
|
|
1
|
+
{"version":3,"file":"humanize.js","names":[],"sources":["../src/humanize.ts"],"sourcesContent":["export function humanizeNumber(value: number, { base = 1000, units = ['K', 'M', 'B', 'T', 'P'] } = {}): string {\n if (value < base) {\n return value.toString();\n }\n\n let unitIndex = -1;\n while (value >= base && unitIndex < units.length - 1) {\n value /= base;\n unitIndex++;\n }\n\n return value.toFixed(2) + (units[unitIndex] ?? '');\n}\n"],"mappings":"AAAA,SAAgB,EAAe,EAAe,CAAE,OAAO,IAAM,QAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,GAAM,CAAC,EAAW,CAC7G,GAAI,EAAQ,EACV,OAAO,EAAM,SAAS,EAGxB,IAAI,EAAY,GAChB,KAAO,GAAS,GAAQ,EAAY,EAAM,OAAS,GACjD,GAAS,EACT,IAGF,OAAO,EAAM,QAAQ,CAAC,GAAK,EAAM,IAAc,GACjD"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=index.cjs.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./assert.cjs"),t=require("./sleep.cjs"),n=require("./error.cjs"),r=require("./humanize.cjs"),i=require("./mail.cjs"),a=require("./parseCommandLineArgs.cjs"),o=require("./shuffle.cjs"),s=require("./sqlite.cjs"),c=require("./zenkaku.cjs");exports.ensureTruthy=e.ensureTruthy,exports.errorify=n.errorify,exports.getConnectionLevelSqlitePragmas=s.getConnectionLevelSqlitePragmas,exports.getPersistentSqlitePragmas=s.getPersistentSqlitePragmas,exports.humanizeNumber=r.humanizeNumber,exports.ignoreEnoent=n.ignoreEnoent,exports.ignoreEnoentAsync=n.ignoreEnoentAsync,exports.ignoreError=n.ignoreError,exports.ignoreErrorAsync=n.ignoreErrorAsync,exports.mailTemplates=i.mailTemplates,exports.parseCommandLineArgs=a.parseCommandLineArgs,exports.shuffle=o.shuffle,exports.sleep=t.sleep,exports.withRetry=n.withRetry,exports.zenkakuAlphanumericalsToHankaku=c.zenkakuAlphanumericalsToHankaku;
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import{ensureTruthy as e}from"./assert.js";import{sleep as t}from"./sleep.js";import{errorify as n,ignoreEnoent as r,ignoreEnoentAsync as i,ignoreError as a,ignoreErrorAsync as o,withRetry as s}from"./error.js";import{humanizeNumber as c}from"./humanize.js";import{mailTemplates as l}from"./mail.js";import{parseCommandLineArgs as u}from"./parseCommandLineArgs.js";import{shuffle as d}from"./shuffle.js";import{getConnectionLevelSqlitePragmas as f,getPersistentSqlitePragmas as p}from"./sqlite.js";import{zenkakuAlphanumericalsToHankaku as m}from"./zenkaku.js";export{e as ensureTruthy,n as errorify,f as getConnectionLevelSqlitePragmas,p as getPersistentSqlitePragmas,c as humanizeNumber,r as ignoreEnoent,i as ignoreEnoentAsync,a as ignoreError,o as ignoreErrorAsync,l as mailTemplates,u as parseCommandLineArgs,d as shuffle,t as sleep,s as withRetry,m as zenkakuAlphanumericalsToHankaku};
|
package/dist/mail.cjs
CHANGED
|
@@ -1,2 +1,17 @@
|
|
|
1
|
-
"use strict";const
|
|
2
|
-
|
|
1
|
+
"use strict";const e=new class{resetPassword(e,t,n){return{from:`no-reply@willbooster.dev`,subject:`パスワード再設定のご案内`,text:`
|
|
2
|
+
${e} をご利用いただき誠にありがとうございます。
|
|
3
|
+
|
|
4
|
+
お客様からパスワード再設定のリクエストを受け取りました。
|
|
5
|
+
以下のURLをクリックして、新しいパスワードを設定してください。
|
|
6
|
+
|
|
7
|
+
${t}
|
|
8
|
+
${n?`
|
|
9
|
+
上記のURLは発行から約${n}で失効します。
|
|
10
|
+
期限を過ぎてしまった場合や、URLが機能しない場合は、
|
|
11
|
+
恐れ入りますが、再度パスワードを再設定してください。
|
|
12
|
+
`:``}
|
|
13
|
+
なお、本メールアドレスは配信専用ですので、返信いただけません。
|
|
14
|
+
|
|
15
|
+
引き続き ${e} をよろしくお願い申し上げます。
|
|
16
|
+
`.trim()}}};exports.mailTemplates=e;
|
|
17
|
+
//# sourceMappingURL=mail.cjs.map
|
package/dist/mail.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail.cjs","sources":["../src/mail.ts"],"sourcesContent":["export interface MailData {\n from: string;\n subject: string;\n text: string;\n}\n\nclass MailTemplates {\n resetPassword(appName: string, resetUrl: string, expirationDuration?: string): MailData {\n return {\n from: 'no-reply@willbooster.dev',\n subject: 'パスワード再設定のご案内',\n text: `\n${appName} をご利用いただき誠にありがとうございます。\n\nお客様からパスワード再設定のリクエストを受け取りました。\n以下のURLをクリックして、新しいパスワードを設定してください。\n\n${resetUrl}\n${\n expirationDuration\n ? `\n上記のURLは発行から約${expirationDuration}で失効します。\n期限を過ぎてしまった場合や、URLが機能しない場合は、\n恐れ入りますが、再度パスワードを再設定してください。\n`\n : ''\n}\nなお、本メールアドレスは配信専用ですので、返信いただけません。\n\n引き続き ${appName} をよろしくお願い申し上げます。\n `.trim(),\n };\n }\n}\n\nexport const mailTemplates = new MailTemplates();\n"],"
|
|
1
|
+
{"version":3,"file":"mail.cjs","names":[],"sources":["../src/mail.ts"],"sourcesContent":["export interface MailData {\n from: string;\n subject: string;\n text: string;\n}\n\nclass MailTemplates {\n resetPassword(appName: string, resetUrl: string, expirationDuration?: string): MailData {\n return {\n from: 'no-reply@willbooster.dev',\n subject: 'パスワード再設定のご案内',\n text: `\n${appName} をご利用いただき誠にありがとうございます。\n\nお客様からパスワード再設定のリクエストを受け取りました。\n以下のURLをクリックして、新しいパスワードを設定してください。\n\n${resetUrl}\n${\n expirationDuration\n ? `\n上記のURLは発行から約${expirationDuration}で失効します。\n期限を過ぎてしまった場合や、URLが機能しない場合は、\n恐れ入りますが、再度パスワードを再設定してください。\n`\n : ''\n}\nなお、本メールアドレスは配信専用ですので、返信いただけません。\n\n引き続き ${appName} をよろしくお願い申し上げます。\n `.trim(),\n };\n }\n}\n\nexport const mailTemplates = new MailTemplates();\n"],"mappings":"aAmCA,MAAa,EAAgB,IAAI,KA7Bb,CAClB,cAAc,EAAiB,EAAkB,EAAuC,CACtF,MAAO,CACL,KAAM,2BACN,QAAS,eACT,KAAM;EACV,EAAQ;;;;;EAKR,EAAS;EAET,EACI;cACQ,EAAmB;;;EAI3B,GACL;;;OAGM,EAAQ;MACT,KAAK,CACP,CACF,CACF"}
|
package/dist/mail.js
CHANGED
|
@@ -1,2 +1,17 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
1
|
+
const e=new class{resetPassword(e,t,n){return{from:`no-reply@willbooster.dev`,subject:`パスワード再設定のご案内`,text:`
|
|
2
|
+
${e} をご利用いただき誠にありがとうございます。
|
|
3
|
+
|
|
4
|
+
お客様からパスワード再設定のリクエストを受け取りました。
|
|
5
|
+
以下のURLをクリックして、新しいパスワードを設定してください。
|
|
6
|
+
|
|
7
|
+
${t}
|
|
8
|
+
${n?`
|
|
9
|
+
上記のURLは発行から約${n}で失効します。
|
|
10
|
+
期限を過ぎてしまった場合や、URLが機能しない場合は、
|
|
11
|
+
恐れ入りますが、再度パスワードを再設定してください。
|
|
12
|
+
`:``}
|
|
13
|
+
なお、本メールアドレスは配信専用ですので、返信いただけません。
|
|
14
|
+
|
|
15
|
+
引き続き ${e} をよろしくお願い申し上げます。
|
|
16
|
+
`.trim()}}};export{e as mailTemplates};
|
|
17
|
+
//# sourceMappingURL=mail.js.map
|
package/dist/mail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail.js","sources":["../src/mail.ts"],"sourcesContent":["export interface MailData {\n from: string;\n subject: string;\n text: string;\n}\n\nclass MailTemplates {\n resetPassword(appName: string, resetUrl: string, expirationDuration?: string): MailData {\n return {\n from: 'no-reply@willbooster.dev',\n subject: 'パスワード再設定のご案内',\n text: `\n${appName} をご利用いただき誠にありがとうございます。\n\nお客様からパスワード再設定のリクエストを受け取りました。\n以下のURLをクリックして、新しいパスワードを設定してください。\n\n${resetUrl}\n${\n expirationDuration\n ? `\n上記のURLは発行から約${expirationDuration}で失効します。\n期限を過ぎてしまった場合や、URLが機能しない場合は、\n恐れ入りますが、再度パスワードを再設定してください。\n`\n : ''\n}\nなお、本メールアドレスは配信専用ですので、返信いただけません。\n\n引き続き ${appName} をよろしくお願い申し上げます。\n `.trim(),\n };\n }\n}\n\nexport const mailTemplates = new MailTemplates();\n"],"
|
|
1
|
+
{"version":3,"file":"mail.js","names":[],"sources":["../src/mail.ts"],"sourcesContent":["export interface MailData {\n from: string;\n subject: string;\n text: string;\n}\n\nclass MailTemplates {\n resetPassword(appName: string, resetUrl: string, expirationDuration?: string): MailData {\n return {\n from: 'no-reply@willbooster.dev',\n subject: 'パスワード再設定のご案内',\n text: `\n${appName} をご利用いただき誠にありがとうございます。\n\nお客様からパスワード再設定のリクエストを受け取りました。\n以下のURLをクリックして、新しいパスワードを設定してください。\n\n${resetUrl}\n${\n expirationDuration\n ? `\n上記のURLは発行から約${expirationDuration}で失効します。\n期限を過ぎてしまった場合や、URLが機能しない場合は、\n恐れ入りますが、再度パスワードを再設定してください。\n`\n : ''\n}\nなお、本メールアドレスは配信専用ですので、返信いただけません。\n\n引き続き ${appName} をよろしくお願い申し上げます。\n `.trim(),\n };\n }\n}\n\nexport const mailTemplates = new MailTemplates();\n"],"mappings":"AAmCA,MAAa,EAAgB,IAAI,KA7Bb,CAClB,cAAc,EAAiB,EAAkB,EAAuC,CACtF,MAAO,CACL,KAAM,2BACN,QAAS,eACT,KAAM;EACV,EAAQ;;;;;EAKR,EAAS;EAET,EACI;cACQ,EAAmB;;;EAI3B,GACL;;;OAGM,EAAQ;MACT,KAAK,CACP,CACF,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=parseCommandLineArgs.cjs.map
|
|
1
|
+
"use strict";function e(e){if(!e)return[];let t=[],n=``,r=!1,i=!1;for(let a of e){if(a===`"`&&!i){r=!r;continue}if(a===`'`&&!r){i=!i;continue}if(a===` `&&!r&&!i){n&&=(t.push(n),``);continue}n+=a}return n&&t.push(n),t}exports.parseCommandLineArgs=e;
|
|
2
|
+
//# sourceMappingURL=parseCommandLineArgs.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCommandLineArgs.cjs","sources":["../src/parseCommandLineArgs.ts"],"sourcesContent":["/**\n * Parses a command line string into an array of arguments, preserving quoted strings.\n *\n * This function handles:\n * - Space-separated arguments\n * - Double-quoted strings (preserves spaces within)\n * - Single-quoted strings (preserves spaces within)\n *\n * @param argsString The command line string to parse\n * @returns An array of parsed arguments\n */\nexport function parseCommandLineArgs(argsString: string): string[] {\n if (!argsString) return [];\n\n const result: string[] = [];\n let current = '';\n let inDoubleQuote = false;\n let inSingleQuote = false;\n\n for (const char of argsString) {\n // Handle quotes\n if (char === '\"' && !inSingleQuote) {\n inDoubleQuote = !inDoubleQuote;\n continue;\n }\n\n if (char === \"'\" && !inDoubleQuote) {\n inSingleQuote = !inSingleQuote;\n continue;\n }\n\n // Handle spaces (only split on spaces outside of quotes)\n if (char === ' ' && !inDoubleQuote && !inSingleQuote) {\n if (current) {\n result.push(current);\n current = '';\n }\n continue;\n }\n\n // Add character to current argument\n current += char;\n }\n\n // Add the last argument if there is one\n if (current) {\n result.push(current);\n }\n\n return result;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"parseCommandLineArgs.cjs","names":[],"sources":["../src/parseCommandLineArgs.ts"],"sourcesContent":["/**\n * Parses a command line string into an array of arguments, preserving quoted strings.\n *\n * This function handles:\n * - Space-separated arguments\n * - Double-quoted strings (preserves spaces within)\n * - Single-quoted strings (preserves spaces within)\n *\n * @param argsString The command line string to parse\n * @returns An array of parsed arguments\n */\nexport function parseCommandLineArgs(argsString: string): string[] {\n if (!argsString) return [];\n\n const result: string[] = [];\n let current = '';\n let inDoubleQuote = false;\n let inSingleQuote = false;\n\n for (const char of argsString) {\n // Handle quotes\n if (char === '\"' && !inSingleQuote) {\n inDoubleQuote = !inDoubleQuote;\n continue;\n }\n\n if (char === \"'\" && !inDoubleQuote) {\n inSingleQuote = !inSingleQuote;\n continue;\n }\n\n // Handle spaces (only split on spaces outside of quotes)\n if (char === ' ' && !inDoubleQuote && !inSingleQuote) {\n if (current) {\n result.push(current);\n current = '';\n }\n continue;\n }\n\n // Add character to current argument\n current += char;\n }\n\n // Add the last argument if there is one\n if (current) {\n result.push(current);\n }\n\n return result;\n}\n"],"mappings":"aAWA,SAAgB,EAAqB,EAA8B,CACjE,GAAI,CAAC,EAAY,MAAO,CAAC,EAEzB,IAAM,EAAmB,CAAC,EACtB,EAAU,GACV,EAAgB,GAChB,EAAgB,GAEpB,IAAK,IAAM,KAAQ,EAAY,CAE7B,GAAI,IAAS,KAAO,CAAC,EAAe,CAClC,EAAgB,CAAC,EACjB,QACF,CAEA,GAAI,IAAS,KAAO,CAAC,EAAe,CAClC,EAAgB,CAAC,EACjB,QACF,CAGA,GAAI,IAAS,KAAO,CAAC,GAAiB,CAAC,EAAe,CACpD,AAEE,KADA,EAAO,KAAK,CAAO,EACT,IAEZ,QACF,CAGA,GAAW,CACb,CAOA,OAJI,GACF,EAAO,KAAK,CAAO,EAGd,CACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=parseCommandLineArgs.js.map
|
|
1
|
+
function e(e){if(!e)return[];let t=[],n=``,r=!1,i=!1;for(let a of e){if(a===`"`&&!i){r=!r;continue}if(a===`'`&&!r){i=!i;continue}if(a===` `&&!r&&!i){n&&=(t.push(n),``);continue}n+=a}return n&&t.push(n),t}export{e as parseCommandLineArgs};
|
|
2
|
+
//# sourceMappingURL=parseCommandLineArgs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCommandLineArgs.js","sources":["../src/parseCommandLineArgs.ts"],"sourcesContent":["/**\n * Parses a command line string into an array of arguments, preserving quoted strings.\n *\n * This function handles:\n * - Space-separated arguments\n * - Double-quoted strings (preserves spaces within)\n * - Single-quoted strings (preserves spaces within)\n *\n * @param argsString The command line string to parse\n * @returns An array of parsed arguments\n */\nexport function parseCommandLineArgs(argsString: string): string[] {\n if (!argsString) return [];\n\n const result: string[] = [];\n let current = '';\n let inDoubleQuote = false;\n let inSingleQuote = false;\n\n for (const char of argsString) {\n // Handle quotes\n if (char === '\"' && !inSingleQuote) {\n inDoubleQuote = !inDoubleQuote;\n continue;\n }\n\n if (char === \"'\" && !inDoubleQuote) {\n inSingleQuote = !inSingleQuote;\n continue;\n }\n\n // Handle spaces (only split on spaces outside of quotes)\n if (char === ' ' && !inDoubleQuote && !inSingleQuote) {\n if (current) {\n result.push(current);\n current = '';\n }\n continue;\n }\n\n // Add character to current argument\n current += char;\n }\n\n // Add the last argument if there is one\n if (current) {\n result.push(current);\n }\n\n return result;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"parseCommandLineArgs.js","names":[],"sources":["../src/parseCommandLineArgs.ts"],"sourcesContent":["/**\n * Parses a command line string into an array of arguments, preserving quoted strings.\n *\n * This function handles:\n * - Space-separated arguments\n * - Double-quoted strings (preserves spaces within)\n * - Single-quoted strings (preserves spaces within)\n *\n * @param argsString The command line string to parse\n * @returns An array of parsed arguments\n */\nexport function parseCommandLineArgs(argsString: string): string[] {\n if (!argsString) return [];\n\n const result: string[] = [];\n let current = '';\n let inDoubleQuote = false;\n let inSingleQuote = false;\n\n for (const char of argsString) {\n // Handle quotes\n if (char === '\"' && !inSingleQuote) {\n inDoubleQuote = !inDoubleQuote;\n continue;\n }\n\n if (char === \"'\" && !inDoubleQuote) {\n inSingleQuote = !inSingleQuote;\n continue;\n }\n\n // Handle spaces (only split on spaces outside of quotes)\n if (char === ' ' && !inDoubleQuote && !inSingleQuote) {\n if (current) {\n result.push(current);\n current = '';\n }\n continue;\n }\n\n // Add character to current argument\n current += char;\n }\n\n // Add the last argument if there is one\n if (current) {\n result.push(current);\n }\n\n return result;\n}\n"],"mappings":"AAWA,SAAgB,EAAqB,EAA8B,CACjE,GAAI,CAAC,EAAY,MAAO,CAAC,EAEzB,IAAM,EAAmB,CAAC,EACtB,EAAU,GACV,EAAgB,GAChB,EAAgB,GAEpB,IAAK,IAAM,KAAQ,EAAY,CAE7B,GAAI,IAAS,KAAO,CAAC,EAAe,CAClC,EAAgB,CAAC,EACjB,QACF,CAEA,GAAI,IAAS,KAAO,CAAC,EAAe,CAClC,EAAgB,CAAC,EACjB,QACF,CAGA,GAAI,IAAS,KAAO,CAAC,GAAiB,CAAC,EAAe,CACpD,AAEE,KADA,EAAO,KAAK,CAAO,EACT,IAEZ,QACF,CAGA,GAAW,CACb,CAOA,OAJI,GACF,EAAO,KAAK,CAAO,EAGd,CACT"}
|
package/dist/shuffle.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=shuffle.cjs.map
|
|
1
|
+
"use strict";function e(e){for(let t=e.length-1;t>0;t--){let n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e}exports.shuffle=e;
|
|
2
|
+
//# sourceMappingURL=shuffle.cjs.map
|
package/dist/shuffle.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shuffle.cjs","sources":["../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]] as [T, T];\n }\n return array;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"shuffle.cjs","names":[],"sources":["../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]] as [T, T];\n }\n return array;\n}\n"],"mappings":"aAAA,SAAgB,EAAW,EAAiB,CAC1C,IAAK,IAAI,EAAQ,EAAM,OAAS,EAAG,EAAQ,EAAG,IAAS,CACrD,IAAM,EAAS,KAAK,MAAM,KAAK,OAAO,GAAK,EAAQ,EAAE,EACrD,CAAC,EAAM,GAAQ,EAAM,IAAW,CAAC,EAAM,GAAS,EAAM,EAAM,CAC9D,CACA,OAAO,CACT"}
|
package/dist/shuffle.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=shuffle.js.map
|
|
1
|
+
function e(e){for(let t=e.length-1;t>0;t--){let n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e}export{e as shuffle};
|
|
2
|
+
//# sourceMappingURL=shuffle.js.map
|
package/dist/shuffle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shuffle.js","sources":["../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]] as [T, T];\n }\n return array;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"shuffle.js","names":[],"sources":["../src/shuffle.ts"],"sourcesContent":["export function shuffle<T>(array: T[]): T[] {\n for (let index = array.length - 1; index > 0; index--) {\n const index_ = Math.floor(Math.random() * (index + 1));\n [array[index], array[index_]] = [array[index_], array[index]] as [T, T];\n }\n return array;\n}\n"],"mappings":"AAAA,SAAgB,EAAW,EAAiB,CAC1C,IAAK,IAAI,EAAQ,EAAM,OAAS,EAAG,EAAQ,EAAG,IAAS,CACrD,IAAM,EAAS,KAAK,MAAM,KAAK,OAAO,GAAK,EAAQ,EAAE,EACrD,CAAC,EAAM,GAAQ,EAAM,IAAW,CAAC,EAAM,GAAS,EAAM,EAAM,CAC9D,CACA,OAAO,CACT"}
|
package/dist/sleep.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=sleep.cjs.map
|
|
1
|
+
"use strict";async function e(e){return new Promise(t=>setTimeout(t,e))}exports.sleep=e;
|
|
2
|
+
//# sourceMappingURL=sleep.cjs.map
|
package/dist/sleep.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep.cjs","sources":["../src/sleep.ts"],"sourcesContent":["export async function sleep(milliseconds: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n"],"
|
|
1
|
+
{"version":3,"file":"sleep.cjs","names":[],"sources":["../src/sleep.ts"],"sourcesContent":["export async function sleep(milliseconds: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n"],"mappings":"aAAA,eAAsB,EAAM,EAAqC,CAC/D,OAAO,IAAI,QAAS,GAAY,WAAW,EAAS,CAAY,CAAC,CACnE"}
|
package/dist/sleep.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
async function e(e){return new Promise(
|
|
2
|
-
//# sourceMappingURL=sleep.js.map
|
|
1
|
+
async function e(e){return new Promise(t=>setTimeout(t,e))}export{e as sleep};
|
|
2
|
+
//# sourceMappingURL=sleep.js.map
|
package/dist/sleep.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep.js","sources":["../src/sleep.ts"],"sourcesContent":["export async function sleep(milliseconds: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n"],"
|
|
1
|
+
{"version":3,"file":"sleep.js","names":[],"sources":["../src/sleep.ts"],"sourcesContent":["export async function sleep(milliseconds: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n"],"mappings":"AAAA,eAAsB,EAAM,EAAqC,CAC/D,OAAO,IAAI,QAAS,GAAY,WAAW,EAAS,CAAY,CAAC,CACnE"}
|
package/dist/sqlite.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=sqlite.cjs.map
|
|
1
|
+
"use strict";function e(){return`PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000; PRAGMA cache_size = -16000; PRAGMA synchronous = NORMAL; PRAGMA wal_autocheckpoint = 10000;`}function t(){return`PRAGMA journal_mode = WAL;`}exports.getConnectionLevelSqlitePragmas=e,exports.getPersistentSqlitePragmas=t;
|
|
2
|
+
//# sourceMappingURL=sqlite.cjs.map
|
package/dist/sqlite.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.cjs","sources":["../src/sqlite.ts"],"sourcesContent":["export function getConnectionLevelSqlitePragmas(): string {\n // cf. https://github.com/benbjohnson/litestream/issues/724#issue-3367254318\n // cf. https://github.com/benbjohnson/litestream/blob/9bd72348b7e7b1b3b8cf1e8befbee3b2c17444f7/.claude/agents/performance-optimizer.md?plain=1#L225-L232\n return 'PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000; PRAGMA cache_size = -16000; PRAGMA synchronous = NORMAL; PRAGMA wal_autocheckpoint = 10000;';\n}\n\nexport function getPersistentSqlitePragmas(): string {\n return 'PRAGMA journal_mode = WAL;';\n}\n"],"
|
|
1
|
+
{"version":3,"file":"sqlite.cjs","names":[],"sources":["../src/sqlite.ts"],"sourcesContent":["export function getConnectionLevelSqlitePragmas(): string {\n // cf. https://github.com/benbjohnson/litestream/issues/724#issue-3367254318\n // cf. https://github.com/benbjohnson/litestream/blob/9bd72348b7e7b1b3b8cf1e8befbee3b2c17444f7/.claude/agents/performance-optimizer.md?plain=1#L225-L232\n return 'PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000; PRAGMA cache_size = -16000; PRAGMA synchronous = NORMAL; PRAGMA wal_autocheckpoint = 10000;';\n}\n\nexport function getPersistentSqlitePragmas(): string {\n return 'PRAGMA journal_mode = WAL;';\n}\n"],"mappings":"aAAA,SAAgB,GAA0C,CAGxD,MAAO,mJACT,CAEA,SAAgB,GAAqC,CACnD,MAAO,4BACT"}
|
package/dist/sqlite.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=sqlite.js.map
|
|
1
|
+
function e(){return`PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000; PRAGMA cache_size = -16000; PRAGMA synchronous = NORMAL; PRAGMA wal_autocheckpoint = 10000;`}function t(){return`PRAGMA journal_mode = WAL;`}export{e as getConnectionLevelSqlitePragmas,t as getPersistentSqlitePragmas};
|
|
2
|
+
//# sourceMappingURL=sqlite.js.map
|
package/dist/sqlite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sources":["../src/sqlite.ts"],"sourcesContent":["export function getConnectionLevelSqlitePragmas(): string {\n // cf. https://github.com/benbjohnson/litestream/issues/724#issue-3367254318\n // cf. https://github.com/benbjohnson/litestream/blob/9bd72348b7e7b1b3b8cf1e8befbee3b2c17444f7/.claude/agents/performance-optimizer.md?plain=1#L225-L232\n return 'PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000; PRAGMA cache_size = -16000; PRAGMA synchronous = NORMAL; PRAGMA wal_autocheckpoint = 10000;';\n}\n\nexport function getPersistentSqlitePragmas(): string {\n return 'PRAGMA journal_mode = WAL;';\n}\n"],"
|
|
1
|
+
{"version":3,"file":"sqlite.js","names":[],"sources":["../src/sqlite.ts"],"sourcesContent":["export function getConnectionLevelSqlitePragmas(): string {\n // cf. https://github.com/benbjohnson/litestream/issues/724#issue-3367254318\n // cf. https://github.com/benbjohnson/litestream/blob/9bd72348b7e7b1b3b8cf1e8befbee3b2c17444f7/.claude/agents/performance-optimizer.md?plain=1#L225-L232\n return 'PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000; PRAGMA cache_size = -16000; PRAGMA synchronous = NORMAL; PRAGMA wal_autocheckpoint = 10000;';\n}\n\nexport function getPersistentSqlitePragmas(): string {\n return 'PRAGMA journal_mode = WAL;';\n}\n"],"mappings":"AAAA,SAAgB,GAA0C,CAGxD,MAAO,mJACT,CAEA,SAAgB,GAAqC,CACnD,MAAO,4BACT"}
|
package/dist/zenkaku.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=zenkaku.cjs.map
|
|
1
|
+
"use strict";function e(e){return e.replaceAll(/[0-9A-Za-z]/g,e=>String.fromCodePoint((e.codePointAt(0)??0)-65248))}exports.zenkakuAlphanumericalsToHankaku=e;
|
|
2
|
+
//# sourceMappingURL=zenkaku.cjs.map
|
package/dist/zenkaku.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zenkaku.cjs","sources":["../src/zenkaku.ts"],"sourcesContent":["export function zenkakuAlphanumericalsToHankaku(str: string): string {\n return str.replaceAll(/[0-9A-Za-z]/g, (s: string) => {\n return String.fromCodePoint((s.codePointAt(0) ?? 0) - 0xFE_E0);\n });\n}\n"],"
|
|
1
|
+
{"version":3,"file":"zenkaku.cjs","names":[],"sources":["../src/zenkaku.ts"],"sourcesContent":["export function zenkakuAlphanumericalsToHankaku(str: string): string {\n return str.replaceAll(/[0-9A-Za-z]/g, (s: string) => {\n return String.fromCodePoint((s.codePointAt(0) ?? 0) - 0xFE_E0);\n });\n}\n"],"mappings":"aAAA,SAAgB,EAAgC,EAAqB,CACnE,OAAO,EAAI,WAAW,eAAiB,GAC9B,OAAO,eAAe,EAAE,YAAY,CAAC,GAAK,GAAK,KAAO,CAC9D,CACH"}
|
package/dist/zenkaku.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
2
|
-
//# sourceMappingURL=zenkaku.js.map
|
|
1
|
+
function e(e){return e.replaceAll(/[0-9A-Za-z]/g,e=>String.fromCodePoint((e.codePointAt(0)??0)-65248))}export{e as zenkakuAlphanumericalsToHankaku};
|
|
2
|
+
//# sourceMappingURL=zenkaku.js.map
|
package/dist/zenkaku.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zenkaku.js","sources":["../src/zenkaku.ts"],"sourcesContent":["export function zenkakuAlphanumericalsToHankaku(str: string): string {\n return str.replaceAll(/[0-9A-Za-z]/g, (s: string) => {\n return String.fromCodePoint((s.codePointAt(0) ?? 0) - 0xFE_E0);\n });\n}\n"],"
|
|
1
|
+
{"version":3,"file":"zenkaku.js","names":[],"sources":["../src/zenkaku.ts"],"sourcesContent":["export function zenkakuAlphanumericalsToHankaku(str: string): string {\n return str.replaceAll(/[0-9A-Za-z]/g, (s: string) => {\n return String.fromCodePoint((s.codePointAt(0) ?? 0) - 0xFE_E0);\n });\n}\n"],"mappings":"AAAA,SAAgB,EAAgC,EAAqB,CACnE,OAAO,EAAI,WAAW,eAAiB,GAC9B,OAAO,eAAe,EAAE,YAAY,CAAC,GAAK,GAAK,KAAO,CAC9D,CACH"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@willbooster/shared-lib",
|
|
3
|
-
"version": "7.4.
|
|
3
|
+
"version": "7.4.20",
|
|
4
4
|
"description": "Shared library for WillBooster projects",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -46,15 +46,15 @@
|
|
|
46
46
|
"@tsconfig/node-lts": "24.0.0",
|
|
47
47
|
"@tsconfig/node-ts": "23.6.4",
|
|
48
48
|
"@types/node": "25.6.0",
|
|
49
|
-
"@typescript/native-preview": "7.0.0-dev.20260504.1",
|
|
50
49
|
"@willbooster/oxfmt-config": "1.2.2",
|
|
51
50
|
"@willbooster/oxlint-config": "1.4.8",
|
|
52
|
-
"@willbooster/wb": "13.
|
|
53
|
-
"build-ts": "17.1.
|
|
54
|
-
"oxfmt": "0.
|
|
55
|
-
"oxlint": "1.
|
|
56
|
-
"oxlint-tsgolint": "0.
|
|
51
|
+
"@willbooster/wb": "13.25.3",
|
|
52
|
+
"build-ts": "17.1.31",
|
|
53
|
+
"oxfmt": "0.58.0",
|
|
54
|
+
"oxlint": "1.73.0",
|
|
55
|
+
"oxlint-tsgolint": "0.24.0",
|
|
57
56
|
"sort-package-json": "4.0.0",
|
|
57
|
+
"typescript": "7.0.2",
|
|
58
58
|
"vitest": "4.1.5"
|
|
59
59
|
},
|
|
60
60
|
"publishConfig": {
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|