@atproto/common-web 0.4.17 → 0.4.18
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/CHANGELOG.md +13 -0
- package/dist/async.d.ts +5 -4
- package/dist/async.d.ts.map +1 -1
- package/dist/async.js +11 -9
- package/dist/async.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js.map +1 -1
- package/package.json +4 -4
- package/src/async.ts +11 -8
- package/src/util.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atproto/common-web
|
|
2
2
|
|
|
3
|
+
## 0.4.18
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#4689](https://github.com/bluesky-social/atproto/pull/4689) [`f7c2610`](https://github.com/bluesky-social/atproto/commit/f7c26103a6d4e24e5bedbb6fd908be140420e0dd) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add possibility to `reject` `Deferrable` objects. Also allow specifying a generic for the Promise's value.
|
|
8
|
+
|
|
9
|
+
- [#4689](https://github.com/bluesky-social/atproto/pull/4689) [`f7c2610`](https://github.com/bluesky-social/atproto/commit/f7c26103a6d4e24e5bedbb6fd908be140420e0dd) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Allow `dedupeStrs` to preserve the type of input values which are more specific than `string`
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`f7c2610`](https://github.com/bluesky-social/atproto/commit/f7c26103a6d4e24e5bedbb6fd908be140420e0dd), [`f7c2610`](https://github.com/bluesky-social/atproto/commit/f7c26103a6d4e24e5bedbb6fd908be140420e0dd), [`f7c2610`](https://github.com/bluesky-social/atproto/commit/f7c26103a6d4e24e5bedbb6fd908be140420e0dd), [`f7c2610`](https://github.com/bluesky-social/atproto/commit/f7c26103a6d4e24e5bedbb6fd908be140420e0dd), [`52834ab`](https://github.com/bluesky-social/atproto/commit/52834aba182da8df3611fd9dff924e6c6a3973a7), [`f7c2610`](https://github.com/bluesky-social/atproto/commit/f7c26103a6d4e24e5bedbb6fd908be140420e0dd), [`52834ab`](https://github.com/bluesky-social/atproto/commit/52834aba182da8df3611fd9dff924e6c6a3973a7), [`f7c2610`](https://github.com/bluesky-social/atproto/commit/f7c26103a6d4e24e5bedbb6fd908be140420e0dd), [`52834ab`](https://github.com/bluesky-social/atproto/commit/52834aba182da8df3611fd9dff924e6c6a3973a7)]:
|
|
12
|
+
- @atproto/syntax@0.5.0
|
|
13
|
+
- @atproto/lex-data@0.0.13
|
|
14
|
+
- @atproto/lex-json@0.0.13
|
|
15
|
+
|
|
3
16
|
## 0.4.17
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/async.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export declare const readFromGenerator: <T>(gen: AsyncGenerator<T>, isDone: (last?: T) => Promise<boolean> | boolean, waitFor?: Promise<unknown>, maxLength?: number) => Promise<T[]>;
|
|
2
|
-
export type Deferrable = {
|
|
3
|
-
resolve: () => void;
|
|
4
|
-
|
|
2
|
+
export type Deferrable<T = void> = {
|
|
3
|
+
resolve: (value: T | PromiseLike<T>) => void;
|
|
4
|
+
reject: (reason?: unknown) => void;
|
|
5
|
+
complete: Promise<T>;
|
|
5
6
|
};
|
|
6
|
-
export declare
|
|
7
|
+
export declare function createDeferrable<T = void>(): Deferrable<T>;
|
|
7
8
|
export declare const createDeferrables: (count: number) => Deferrable[];
|
|
8
9
|
export declare const allComplete: (deferrables: Deferrable[]) => Promise<void>;
|
|
9
10
|
export declare class AsyncBuffer<T> {
|
package/dist/async.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,GAAU,CAAC,EACvC,KAAK,cAAc,CAAC,CAAC,CAAC,EACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EAChD,UAAS,OAAO,CAAC,OAAO,CAAqB,EAC7C,kBAAmC,KAClC,OAAO,CAAC,CAAC,EAAE,CAiCb,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;
|
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":"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"}
|
package/dist/async.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AsyncBufferFullError = exports.AsyncBuffer = exports.allComplete = exports.createDeferrables = exports.
|
|
3
|
+
exports.AsyncBufferFullError = exports.AsyncBuffer = exports.allComplete = exports.createDeferrables = exports.readFromGenerator = void 0;
|
|
4
|
+
exports.createDeferrable = createDeferrable;
|
|
4
5
|
exports.allFulfilled = allFulfilled;
|
|
5
6
|
exports.handleAllSettledErrors = handleAllSettledErrors;
|
|
6
7
|
exports.isRejectedResult = isRejectedResult;
|
|
@@ -47,18 +48,19 @@ const readFromGenerator = async (gen, isDone, waitFor = Promise.resolve(), maxLe
|
|
|
47
48
|
return evts;
|
|
48
49
|
};
|
|
49
50
|
exports.readFromGenerator = readFromGenerator;
|
|
50
|
-
|
|
51
|
-
let
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
function createDeferrable() {
|
|
52
|
+
let res;
|
|
53
|
+
let rej;
|
|
54
|
+
const promise = new Promise((resolve, reject) => {
|
|
55
|
+
res = resolve;
|
|
56
|
+
rej = reject;
|
|
54
57
|
});
|
|
55
|
-
return { resolve, complete: promise };
|
|
56
|
-
}
|
|
57
|
-
exports.createDeferrable = createDeferrable;
|
|
58
|
+
return { resolve: res, reject: rej, complete: promise };
|
|
59
|
+
}
|
|
58
60
|
const createDeferrables = (count) => {
|
|
59
61
|
const list = [];
|
|
60
62
|
for (let i = 0; i < count; i++) {
|
|
61
|
-
list.push(
|
|
63
|
+
list.push(createDeferrable());
|
|
62
64
|
}
|
|
63
65
|
return list;
|
|
64
66
|
};
|
package/dist/async.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":"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","sourcesContent":["import { aggregateErrors, bailableWait } from './util'\n\n// reads values from a generator into a list\n// breaks when isDone signals `true` AND `waitFor` completes OR when a max length is reached\n// NOTE: does not signal generator to close. it *will* continue to produce values\nexport const readFromGenerator = async <T>(\n gen: AsyncGenerator<T>,\n isDone: (last?: T) => Promise<boolean> | boolean,\n waitFor: Promise<unknown> = Promise.resolve(),\n maxLength = Number.MAX_SAFE_INTEGER,\n): Promise<T[]> => {\n const evts: T[] = []\n let bail: undefined | (() => void)\n let hasBroke = false\n const awaitDone = async () => {\n if (await isDone(evts.at(-1))) {\n return true\n }\n const bailable = bailableWait(20)\n await bailable.wait()\n bail = bailable.bail\n if (hasBroke) return false\n return await awaitDone()\n }\n const breakOn: Promise<void> = new Promise((resolve) => {\n waitFor.then(() => {\n awaitDone().then(() => resolve())\n })\n })\n\n try {\n while (evts.length < maxLength) {\n const maybeEvt = await Promise.race([gen.next(), breakOn])\n if (!maybeEvt) break\n const evt = maybeEvt as IteratorResult<T>\n if (evt.done) break\n evts.push(evt.value)\n }\n } finally {\n hasBroke = true\n bail && bail()\n }\n return evts\n}\n\nexport type Deferrable = {\n resolve: () => void\n complete: Promise<void>\n}\n\nexport const createDeferrable = (): Deferrable => {\n let resolve\n const promise: Promise<void> = new Promise((res) => {\n resolve = () => res()\n })\n return { resolve, complete: promise }\n}\n\nexport const createDeferrables = (count: number): Deferrable[] => {\n const list: Deferrable[] = []\n for (let i = 0; i < count; i++) {\n list.push(createDeferrable())\n }\n return list\n}\n\nexport const allComplete = async (deferrables: Deferrable[]): Promise<void> => {\n await Promise.all(deferrables.map((d) => d.complete))\n}\n\nexport class AsyncBuffer<T> {\n private buffer: T[] = []\n private promise: Promise<void>\n private resolve: () => void\n private closed = false\n private toThrow: unknown | undefined\n\n constructor(public maxSize?: number) {\n // Initializing to satisfy types/build, immediately reset by resetPromise()\n this.promise = Promise.resolve()\n this.resolve = () => null\n this.resetPromise()\n }\n\n get curr(): T[] {\n return this.buffer\n }\n\n get size(): number {\n return this.buffer.length\n }\n\n get isClosed(): boolean {\n return this.closed\n }\n\n resetPromise() {\n this.promise = new Promise<void>((r) => (this.resolve = r))\n }\n\n push(item: T) {\n this.buffer.push(item)\n this.resolve()\n }\n\n pushMany(items: T[]) {\n items.forEach((i) => this.buffer.push(i))\n this.resolve()\n }\n\n async *events(): AsyncGenerator<T> {\n while (true) {\n if (this.closed && this.buffer.length === 0) {\n if (this.toThrow) {\n throw this.toThrow\n } else {\n return\n }\n }\n await this.promise\n if (this.toThrow) {\n throw this.toThrow\n }\n if (this.maxSize && this.size > this.maxSize) {\n throw new AsyncBufferFullError(this.maxSize)\n }\n const [first, ...rest] = this.buffer\n if (first) {\n this.buffer = rest\n yield first\n } else {\n this.resetPromise()\n }\n }\n }\n\n throw(err: unknown) {\n this.toThrow = err\n this.closed = true\n this.resolve()\n }\n\n close() {\n this.closed = true\n this.resolve()\n }\n}\n\nexport class AsyncBufferFullError extends Error {\n constructor(maxSize: number) {\n super(`ReachedMaxBufferSize: ${maxSize}`)\n }\n}\n\n/**\n * Utility function that behaves like {@link Promise.allSettled} but returns the\n * same result as {@link Promise.all} in case every promise is fulfilled, and\n * throws an {@link AggregateError} if there are more than one errors.\n */\nexport function allFulfilled<T extends readonly unknown[] | []>(\n promises: T,\n): Promise<{ -readonly [P in keyof T]: Awaited<T[P]> }>\nexport function allFulfilled<T>(\n promises: Iterable<T | PromiseLike<T>>,\n): Promise<Awaited<T>[]>\nexport function allFulfilled(\n promises: Iterable<Promise<unknown>>,\n): Promise<unknown[]> {\n return Promise.allSettled(promises).then(handleAllSettledErrors)\n}\n\nexport function handleAllSettledErrors<\n T extends readonly PromiseSettledResult<unknown>[] | [],\n>(\n results: T,\n): {\n -readonly [P in keyof T]: T[P] extends PromiseSettledResult<infer U>\n ? U\n : never\n}\nexport function handleAllSettledErrors<T>(\n results: PromiseSettledResult<T>[],\n): T[]\nexport function handleAllSettledErrors(\n results: PromiseSettledResult<unknown>[],\n): unknown[] {\n if (results.every(isFulfilledResult)) return results.map(extractValue)\n\n const errors = results.filter(isRejectedResult).map(extractReason)\n throw aggregateErrors(errors)\n}\n\nexport function isRejectedResult(\n result: PromiseSettledResult<unknown>,\n): result is PromiseRejectedResult {\n return result.status === 'rejected'\n}\n\nfunction extractReason(result: PromiseRejectedResult): unknown {\n return result.reason\n}\n\nexport function isFulfilledResult<T>(\n result: PromiseSettledResult<T>,\n): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nfunction extractValue<T>(result: PromiseFulfilledResult<T>): T {\n return result.value\n}\n"]}
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":"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","sourcesContent":["import { aggregateErrors, bailableWait } from './util'\n\n// reads values from a generator into a list\n// breaks when isDone signals `true` AND `waitFor` completes OR when a max length is reached\n// NOTE: does not signal generator to close. it *will* continue to produce values\nexport const readFromGenerator = async <T>(\n gen: AsyncGenerator<T>,\n isDone: (last?: T) => Promise<boolean> | boolean,\n waitFor: Promise<unknown> = Promise.resolve(),\n maxLength = Number.MAX_SAFE_INTEGER,\n): Promise<T[]> => {\n const evts: T[] = []\n let bail: undefined | (() => void)\n let hasBroke = false\n const awaitDone = async () => {\n if (await isDone(evts.at(-1))) {\n return true\n }\n const bailable = bailableWait(20)\n await bailable.wait()\n bail = bailable.bail\n if (hasBroke) return false\n return await awaitDone()\n }\n const breakOn: Promise<void> = new Promise((resolve) => {\n waitFor.then(() => {\n awaitDone().then(() => resolve())\n })\n })\n\n try {\n while (evts.length < maxLength) {\n const maybeEvt = await Promise.race([gen.next(), breakOn])\n if (!maybeEvt) break\n const evt = maybeEvt as IteratorResult<T>\n if (evt.done) break\n evts.push(evt.value)\n }\n } finally {\n hasBroke = true\n bail && bail()\n }\n return evts\n}\n\nexport type Deferrable<T = void> = {\n resolve: (value: T | PromiseLike<T>) => void\n reject: (reason?: unknown) => void\n complete: Promise<T>\n}\n\nexport function createDeferrable<T = void>(): Deferrable<T> {\n let res: (value: T | PromiseLike<T>) => void\n let rej: (reason?: unknown) => void\n const promise = new Promise<T>((resolve, reject) => {\n res = resolve\n rej = reject\n })\n return { resolve: res!, reject: rej!, complete: promise }\n}\n\nexport const createDeferrables = (count: number): Deferrable[] => {\n const list: Deferrable[] = []\n for (let i = 0; i < count; i++) {\n list.push(createDeferrable())\n }\n return list\n}\n\nexport const allComplete = async (deferrables: Deferrable[]): Promise<void> => {\n await Promise.all(deferrables.map((d) => d.complete))\n}\n\nexport class AsyncBuffer<T> {\n private buffer: T[] = []\n private promise: Promise<void>\n private resolve: () => void\n private closed = false\n private toThrow: unknown | undefined\n\n constructor(public maxSize?: number) {\n // Initializing to satisfy types/build, immediately reset by resetPromise()\n this.promise = Promise.resolve()\n this.resolve = () => null\n this.resetPromise()\n }\n\n get curr(): T[] {\n return this.buffer\n }\n\n get size(): number {\n return this.buffer.length\n }\n\n get isClosed(): boolean {\n return this.closed\n }\n\n resetPromise() {\n this.promise = new Promise<void>((r) => (this.resolve = r))\n }\n\n push(item: T) {\n this.buffer.push(item)\n this.resolve()\n }\n\n pushMany(items: T[]) {\n items.forEach((i) => this.buffer.push(i))\n this.resolve()\n }\n\n async *events(): AsyncGenerator<T> {\n while (true) {\n if (this.closed && this.buffer.length === 0) {\n if (this.toThrow) {\n throw this.toThrow\n } else {\n return\n }\n }\n await this.promise\n if (this.toThrow) {\n throw this.toThrow\n }\n if (this.maxSize && this.size > this.maxSize) {\n throw new AsyncBufferFullError(this.maxSize)\n }\n const [first, ...rest] = this.buffer\n if (first) {\n this.buffer = rest\n yield first\n } else {\n this.resetPromise()\n }\n }\n }\n\n throw(err: unknown) {\n this.toThrow = err\n this.closed = true\n this.resolve()\n }\n\n close() {\n this.closed = true\n this.resolve()\n }\n}\n\nexport class AsyncBufferFullError extends Error {\n constructor(maxSize: number) {\n super(`ReachedMaxBufferSize: ${maxSize}`)\n }\n}\n\n/**\n * Utility function that behaves like {@link Promise.allSettled} but returns the\n * same result as {@link Promise.all} in case every promise is fulfilled, and\n * throws an {@link AggregateError} if there are more than one errors.\n */\nexport function allFulfilled<T extends readonly unknown[] | []>(\n promises: T,\n): Promise<{ -readonly [P in keyof T]: Awaited<T[P]> }>\nexport function allFulfilled<T>(\n promises: Iterable<T | PromiseLike<T>>,\n): Promise<Awaited<T>[]>\nexport function allFulfilled(\n promises: Iterable<Promise<unknown>>,\n): Promise<unknown[]> {\n return Promise.allSettled(promises).then(handleAllSettledErrors)\n}\n\nexport function handleAllSettledErrors<\n T extends readonly PromiseSettledResult<unknown>[] | [],\n>(\n results: T,\n): {\n -readonly [P in keyof T]: T[P] extends PromiseSettledResult<infer U>\n ? U\n : never\n}\nexport function handleAllSettledErrors<T>(\n results: PromiseSettledResult<T>[],\n): T[]\nexport function handleAllSettledErrors(\n results: PromiseSettledResult<unknown>[],\n): unknown[] {\n if (results.every(isFulfilledResult)) return results.map(extractValue)\n\n const errors = results.filter(isRejectedResult).map(extractReason)\n throw aggregateErrors(errors)\n}\n\nexport function isRejectedResult(\n result: PromiseSettledResult<unknown>,\n): result is PromiseRejectedResult {\n return result.status === 'rejected'\n}\n\nfunction extractReason(result: PromiseRejectedResult): unknown {\n return result.reason\n}\n\nexport function isFulfilledResult<T>(\n result: PromiseSettledResult<T>,\n): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nfunction extractValue<T>(result: PromiseFulfilledResult<T>): T {\n return result.value\n}\n"]}
|
package/dist/util.d.ts
CHANGED
|
@@ -21,6 +21,6 @@ export declare const isErrnoException: (err: unknown) => err is NodeJS.ErrnoExce
|
|
|
21
21
|
export declare const errHasMsg: (err: unknown, msg: string) => boolean;
|
|
22
22
|
export declare const chunkArray: <T>(arr: T[], chunkSize: number) => T[][];
|
|
23
23
|
export declare const range: (num: number) => number[];
|
|
24
|
-
export declare const dedupeStrs: (strs:
|
|
24
|
+
export declare const dedupeStrs: <T extends string>(strs: Iterable<T>) => T[];
|
|
25
25
|
export declare const parseIntWithFallback: <T>(value: string | undefined, fallback: T) => number | T;
|
|
26
26
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,GAAI,CAAC,EAC/B,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,KACjC,MAAM,CAAC,MAAM,EAAE,CAAC,CAOlB,CAAA;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,KAAK,GAAG,cAAc,CAWxB;AASD;;;GAGG;AACH,wBAAgB,IAAI,CAClB,CAAC,SAAS,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,CAAC,EAE9B,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,SAAS,CAAC,EAAE,GACzB,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAoBvE,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,WAEnC,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,IAAI,MAAM,qBAE9B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,KAAG,YAUzC,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,MAAM,UAAU,EAAE,KAAG,UAWvD,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,QAAQ,aAAa,CAAC,UAAU,CAAC,KAChC,OAAO,CAAC,UAAU,CAMpB,CAAA;AAID,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAQrC,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAMrC,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,CAAC,EACjC,KAAK,CAAC,EAAE,EACR,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,iBAI/B,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,KAAK,OAAO,KACX,GAAG,IAAI,MAAM,CAAC,cAEhB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,EAAE,KAAK,MAAM,KAAG,OAErD,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,MAAM,KAAG,CAAC,EAAE,EAS9D,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,KAAG,MAAM,EAMzC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,GAAI,CAAC,EAC/B,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,KACjC,MAAM,CAAC,MAAM,EAAE,CAAC,CAOlB,CAAA;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,KAAK,GAAG,cAAc,CAWxB;AASD;;;GAGG;AACH,wBAAgB,IAAI,CAClB,CAAC,SAAS,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,CAAC,EAE9B,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,SAAS,CAAC,EAAE,GACzB,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAoBvE,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,WAEnC,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,IAAI,MAAM,qBAE9B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,KAAG,YAUzC,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,MAAM,UAAU,EAAE,KAAG,UAWvD,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,QAAQ,aAAa,CAAC,UAAU,CAAC,KAChC,OAAO,CAAC,UAAU,CAMpB,CAAA;AAID,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAQrC,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAMrC,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,CAAC,EACjC,KAAK,CAAC,EAAE,EACR,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,iBAI/B,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,KAAK,OAAO,KACX,GAAG,IAAI,MAAM,CAAC,cAEhB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,EAAE,KAAK,MAAM,KAAG,OAErD,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,MAAM,KAAG,CAAC,EAAE,EAS9D,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,KAAG,MAAM,EAMzC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,KAAG,CAAC,EAEjE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,EACpC,OAAO,MAAM,GAAG,SAAS,EACzB,UAAU,CAAC,KACV,MAAM,GAAG,CAGX,CAAA"}
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["export const noUndefinedVals = <T>(\n obj: Record<string, T | undefined>,\n): Record<string, T> => {\n for (const k of Object.keys(obj)) {\n if (obj[k] === undefined) {\n delete obj[k]\n }\n }\n return obj as Record<string, T>\n}\n\nexport function aggregateErrors(\n errors: unknown[],\n message?: string,\n): Error | AggregateError {\n if (errors.length === 1) {\n return errors[0] instanceof Error\n ? errors[0]\n : new Error(message ?? stringifyError(errors[0]), { cause: errors[0] })\n } else {\n return new AggregateError(\n errors,\n message ?? `Multiple errors: ${errors.map(stringifyError).join('\\n')}`,\n )\n }\n}\n\nfunction stringifyError(reason: unknown): string {\n if (reason instanceof Error) {\n return reason.message\n }\n return String(reason)\n}\n\n/**\n * Returns a shallow copy of the object without the specified keys. If the input\n * is nullish, it returns the input.\n */\nexport function omit<\n T extends undefined | null | Record<string, unknown>,\n K extends keyof NonNullable<T>,\n>(\n object: T,\n rejectedKeys: readonly K[],\n): T extends undefined ? undefined : T extends null ? null : Omit<T, K>\nexport function omit(\n src: undefined | null | Record<string, unknown>,\n rejectedKeys: readonly string[],\n): undefined | null | Record<string, unknown> {\n // Hot path\n\n if (!src) return src\n\n const dst = {}\n const srcKeys = Object.keys(src)\n for (let i = 0; i < srcKeys.length; i++) {\n const key = srcKeys[i]\n if (!rejectedKeys.includes(key)) {\n dst[key] = src[key]\n }\n }\n return dst\n}\n\nexport const jitter = (maxMs: number) => {\n return Math.round((Math.random() - 0.5) * maxMs * 2)\n}\n\nexport const wait = (ms: number) => {\n return new Promise((res) => setTimeout(res, ms))\n}\n\nexport type BailableWait = {\n bail: () => void\n wait: () => Promise<void>\n}\n\nexport const bailableWait = (ms: number): BailableWait => {\n let bail\n const waitPromise = new Promise<void>((res) => {\n const timeout = setTimeout(res, ms)\n bail = () => {\n clearTimeout(timeout)\n res()\n }\n })\n return { bail, wait: () => waitPromise }\n}\n\nexport const flattenUint8Arrays = (arrs: Uint8Array[]): Uint8Array => {\n const length = arrs.reduce((acc, cur) => {\n return acc + cur.length\n }, 0)\n const flattened = new Uint8Array(length)\n let offset = 0\n arrs.forEach((arr) => {\n flattened.set(arr, offset)\n offset += arr.length\n })\n return flattened\n}\n\nexport const streamToBuffer = async (\n stream: AsyncIterable<Uint8Array>,\n): Promise<Uint8Array> => {\n const arrays: Uint8Array[] = []\n for await (const chunk of stream) {\n arrays.push(chunk)\n }\n return flattenUint8Arrays(arrays)\n}\n\nconst S32_CHAR = '234567abcdefghijklmnopqrstuvwxyz'\n\nexport const s32encode = (i: number): string => {\n let s = ''\n while (i) {\n const c = i % 32\n i = Math.floor(i / 32)\n s = S32_CHAR.charAt(c) + s\n }\n return s\n}\n\nexport const s32decode = (s: string): number => {\n let i = 0\n for (const c of s) {\n i = i * 32 + S32_CHAR.indexOf(c)\n }\n return i\n}\n\nexport const asyncFilter = async <T>(\n arr: T[],\n fn: (t: T) => Promise<boolean>,\n) => {\n const results = await Promise.all(arr.map((t) => fn(t)))\n return arr.filter((_, i) => results[i])\n}\n\nexport const isErrnoException = (\n err: unknown,\n): err is NodeJS.ErrnoException => {\n return !!err && err['code']\n}\n\nexport const errHasMsg = (err: unknown, msg: string): boolean => {\n return !!err && typeof err === 'object' && err['message'] === msg\n}\n\nexport const chunkArray = <T>(arr: T[], chunkSize: number): T[][] => {\n return arr.reduce((acc, cur, i) => {\n const chunkI = Math.floor(i / chunkSize)\n if (!acc[chunkI]) {\n acc[chunkI] = []\n }\n acc[chunkI].push(cur)\n return acc\n }, [] as T[][])\n}\n\nexport const range = (num: number): number[] => {\n const nums: number[] = []\n for (let i = 0; i < num; i++) {\n nums.push(i)\n }\n return nums\n}\n\nexport const dedupeStrs = <T extends string>(strs: Iterable<T>): T[] => {\n return [...new Set(strs)]\n}\n\nexport const parseIntWithFallback = <T>(\n value: string | undefined,\n fallback: T,\n): number | T => {\n const parsed = parseInt(value || '', 10)\n return isNaN(parsed) ? fallback : parsed\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/common-web",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.18",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Shared web-platform-friendly code for atproto libraries",
|
|
6
6
|
"keywords": [
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"types": "dist/index.d.ts",
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"zod": "^3.23.8",
|
|
19
|
-
"@atproto/lex-data": "^0.0.
|
|
20
|
-
"@atproto/lex-json": "^0.0.
|
|
21
|
-
"@atproto/syntax": "^0.
|
|
19
|
+
"@atproto/lex-data": "^0.0.13",
|
|
20
|
+
"@atproto/lex-json": "^0.0.13",
|
|
21
|
+
"@atproto/syntax": "^0.5.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"jest": "^28.1.2",
|
package/src/async.ts
CHANGED
|
@@ -43,17 +43,20 @@ export const readFromGenerator = async <T>(
|
|
|
43
43
|
return evts
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
export type Deferrable = {
|
|
47
|
-
resolve: () => void
|
|
48
|
-
|
|
46
|
+
export type Deferrable<T = void> = {
|
|
47
|
+
resolve: (value: T | PromiseLike<T>) => void
|
|
48
|
+
reject: (reason?: unknown) => void
|
|
49
|
+
complete: Promise<T>
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
export
|
|
52
|
-
let
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
export function createDeferrable<T = void>(): Deferrable<T> {
|
|
53
|
+
let res: (value: T | PromiseLike<T>) => void
|
|
54
|
+
let rej: (reason?: unknown) => void
|
|
55
|
+
const promise = new Promise<T>((resolve, reject) => {
|
|
56
|
+
res = resolve
|
|
57
|
+
rej = reject
|
|
55
58
|
})
|
|
56
|
-
return { resolve
|
|
59
|
+
return { resolve: res!, reject: rej!, complete: promise }
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
export const createDeferrables = (count: number): Deferrable[] => {
|
package/src/util.ts
CHANGED
|
@@ -167,7 +167,7 @@ export const range = (num: number): number[] => {
|
|
|
167
167
|
return nums
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
export const dedupeStrs = (strs:
|
|
170
|
+
export const dedupeStrs = <T extends string>(strs: Iterable<T>): T[] => {
|
|
171
171
|
return [...new Set(strs)]
|
|
172
172
|
}
|
|
173
173
|
|