@atproto/lex-data 0.0.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/dist/blob.d.ts +16 -0
- package/dist/blob.d.ts.map +1 -0
- package/dist/blob.js +73 -0
- package/dist/blob.js.map +1 -0
- package/dist/cid.d.ts +12 -0
- package/dist/cid.d.ts.map +1 -0
- package/dist/cid.js +47 -0
- package/dist/cid.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/language.d.ts +18 -0
- package/dist/language.d.ts.map +1 -0
- package/dist/language.js +30 -0
- package/dist/language.js.map +1 -0
- package/dist/lex-equals.d.ts +3 -0
- package/dist/lex-equals.d.ts.map +1 -0
- package/dist/lex-equals.js +78 -0
- package/dist/lex-equals.js.map +1 -0
- package/dist/lex.d.ts +18 -0
- package/dist/lex.d.ts.map +1 -0
- package/dist/lex.js +83 -0
- package/dist/lex.js.map +1 -0
- package/dist/lib/nodejs-buffer.d.ts +15 -0
- package/dist/lib/nodejs-buffer.d.ts.map +1 -0
- package/dist/lib/nodejs-buffer.js +12 -0
- package/dist/lib/nodejs-buffer.js.map +1 -0
- package/dist/object.d.ts +3 -0
- package/dist/object.d.ts.map +1 -0
- package/dist/object.js +22 -0
- package/dist/object.js.map +1 -0
- package/dist/uint8array-from-base64.d.ts +16 -0
- package/dist/uint8array-from-base64.d.ts.map +1 -0
- package/dist/uint8array-from-base64.js +60 -0
- package/dist/uint8array-from-base64.js.map +1 -0
- package/dist/uint8array-to-base64.d.ts +16 -0
- package/dist/uint8array-to-base64.d.ts.map +1 -0
- package/dist/uint8array-to-base64.js +30 -0
- package/dist/uint8array-to-base64.js.map +1 -0
- package/dist/uint8array.d.ts +21 -0
- package/dist/uint8array.d.ts.map +1 -0
- package/dist/uint8array.js +57 -0
- package/dist/uint8array.js.map +1 -0
- package/dist/utf8-grapheme-len.d.ts +3 -0
- package/dist/utf8-grapheme-len.d.ts.map +1 -0
- package/dist/utf8-grapheme-len.js +23 -0
- package/dist/utf8-grapheme-len.js.map +1 -0
- package/dist/utf8-len.d.ts +3 -0
- package/dist/utf8-len.d.ts.map +1 -0
- package/dist/utf8-len.js +50 -0
- package/dist/utf8-len.js.map +1 -0
- package/dist/utf8.d.ts +3 -0
- package/dist/utf8.d.ts.map +1 -0
- package/dist/utf8.js +12 -0
- package/dist/utf8.js.map +1 -0
- package/package.json +51 -0
- package/src/blob.test.ts +186 -0
- package/src/blob.ts +99 -0
- package/src/cid.ts +50 -0
- package/src/index.ts +8 -0
- package/src/language.test.ts +87 -0
- package/src/language.ts +39 -0
- package/src/lex-equals.test.ts +153 -0
- package/src/lex-equals.ts +85 -0
- package/src/lex.test.ts +124 -0
- package/src/lex.ts +78 -0
- package/src/lib/nodejs-buffer.ts +27 -0
- package/src/object.test.ts +78 -0
- package/src/object.ts +21 -0
- package/src/uint8array-from-base64.test.ts +113 -0
- package/src/uint8array-from-base64.ts +85 -0
- package/src/uint8array-to-base64.ts +45 -0
- package/src/uint8array.ts +78 -0
- package/src/utf8-grapheme-len.test.ts +37 -0
- package/src/utf8-grapheme-len.ts +21 -0
- package/src/utf8-len.test.ts +31 -0
- package/src/utf8-len.ts +51 -0
- package/src/utf8.ts +14 -0
- package/tsconfig.build.json +12 -0
- package/tsconfig.json +7 -0
- package/tsconfig.tests.json +9 -0
package/dist/blob.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CID } from './cid.js';
|
|
2
|
+
export type BlobRef = {
|
|
3
|
+
$type: 'blob';
|
|
4
|
+
mimeType: string;
|
|
5
|
+
ref: CID;
|
|
6
|
+
size: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function isBlobRef(input: unknown, options?: {
|
|
9
|
+
strict?: boolean;
|
|
10
|
+
}): input is BlobRef;
|
|
11
|
+
export type LegacyBlobRef = {
|
|
12
|
+
cid: string;
|
|
13
|
+
mimeType: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function isLegacyBlobRef(input: unknown): input is LegacyBlobRef;
|
|
16
|
+
//# sourceMappingURL=blob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../src/blob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAA+C,MAAM,UAAU,CAAA;AAG3E,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,KAAK,IAAI,OAAO,CAmDlB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CA2BtE"}
|
package/dist/blob.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isBlobRef = isBlobRef;
|
|
4
|
+
exports.isLegacyBlobRef = isLegacyBlobRef;
|
|
5
|
+
const cid_js_1 = require("./cid.js");
|
|
6
|
+
const object_js_1 = require("./object.js");
|
|
7
|
+
function isBlobRef(input, options) {
|
|
8
|
+
if (!(0, object_js_1.isPlainObject)(input)) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
if (input?.$type !== 'blob') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const { mimeType, size, ref } = input;
|
|
15
|
+
if (typeof mimeType !== 'string') {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (typeof size !== 'number' || size < 0 || !Number.isInteger(size)) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
if (typeof ref !== 'object' || ref === null) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
for (const key in input) {
|
|
25
|
+
if (key !== '$type' &&
|
|
26
|
+
key !== 'mimeType' &&
|
|
27
|
+
key !== 'ref' &&
|
|
28
|
+
key !== 'size') {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const cid = cid_js_1.CID.asCID(ref);
|
|
33
|
+
if (!cid) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
if (options?.strict) {
|
|
37
|
+
if (cid.version !== 1) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if (cid.code !== cid_js_1.RAW_BIN_MULTICODEC) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (cid.multihash.code !== cid_js_1.SHA2_256_MULTIHASH_CODE) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
function isLegacyBlobRef(input) {
|
|
50
|
+
if (!(0, object_js_1.isPlainObject)(input)) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
const { cid, mimeType } = input;
|
|
54
|
+
if (typeof cid !== 'string') {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
if (typeof mimeType !== 'string') {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
for (const key in input) {
|
|
61
|
+
if (key !== 'cid' && key !== 'mimeType') {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
cid_js_1.CID.parse(cid);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=blob.js.map
|
package/dist/blob.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob.js","sourceRoot":"","sources":["../src/blob.ts"],"names":[],"mappings":";;AAUA,8BAsDC;AAOD,0CA2BC;AAlGD,qCAA2E;AAC3E,2CAA2C;AAS3C,SAAgB,SAAS,CACvB,KAAc,EACd,OAA8B;IAE9B,IAAI,CAAC,IAAA,yBAAa,EAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,KAAK,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAA;IACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IACE,GAAG,KAAK,OAAO;YACf,GAAG,KAAK,UAAU;YAClB,GAAG,KAAK,KAAK;YACb,GAAG,KAAK,MAAM,EACd,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,YAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,2BAAkB,EAAE,CAAC;YACpC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,gCAAuB,EAAE,CAAC;YACnD,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAOD,SAAgB,eAAe,CAAC,KAAc;IAC5C,IAAI,CAAC,IAAA,yBAAa,EAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACxC,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,YAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { CID, RAW_BIN_MULTICODEC, SHA2_256_MULTIHASH_CODE } from './cid.js'\nimport { isPlainObject } from './object.js'\n\nexport type BlobRef = {\n $type: 'blob'\n mimeType: string\n ref: CID\n size: number\n}\n\nexport function isBlobRef(\n input: unknown,\n options?: { strict?: boolean },\n): input is BlobRef {\n if (!isPlainObject(input)) {\n return false\n }\n\n if (input?.$type !== 'blob') {\n return false\n }\n\n const { mimeType, size, ref } = input\n if (typeof mimeType !== 'string') {\n return false\n }\n\n if (typeof size !== 'number' || size < 0 || !Number.isInteger(size)) {\n return false\n }\n\n if (typeof ref !== 'object' || ref === null) {\n return false\n }\n\n for (const key in input) {\n if (\n key !== '$type' &&\n key !== 'mimeType' &&\n key !== 'ref' &&\n key !== 'size'\n ) {\n return false\n }\n }\n\n const cid = CID.asCID(ref)\n if (!cid) {\n return false\n }\n\n if (options?.strict) {\n if (cid.version !== 1) {\n return false\n }\n if (cid.code !== RAW_BIN_MULTICODEC) {\n return false\n }\n if (cid.multihash.code !== SHA2_256_MULTIHASH_CODE) {\n return false\n }\n }\n\n return true\n}\n\nexport type LegacyBlobRef = {\n cid: string\n mimeType: string\n}\n\nexport function isLegacyBlobRef(input: unknown): input is LegacyBlobRef {\n if (!isPlainObject(input)) {\n return false\n }\n\n const { cid, mimeType } = input\n if (typeof cid !== 'string') {\n return false\n }\n\n if (typeof mimeType !== 'string') {\n return false\n }\n\n for (const key in input) {\n if (key !== 'cid' && key !== 'mimeType') {\n return false\n }\n }\n\n try {\n CID.parse(cid)\n } catch {\n return false\n }\n\n return true\n}\n"]}
|
package/dist/cid.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CID } from 'multiformats/cid';
|
|
2
|
+
export declare const DAG_CBOR_MULTICODEC = 113;
|
|
3
|
+
export declare const RAW_BIN_MULTICODEC = 85;
|
|
4
|
+
export declare const SHA2_256_MULTIHASH_CODE = 18;
|
|
5
|
+
export { CID };
|
|
6
|
+
export declare function isCid(value: unknown, options?: {
|
|
7
|
+
strict?: boolean;
|
|
8
|
+
}): value is CID;
|
|
9
|
+
export declare function validateCidString(input: string): boolean;
|
|
10
|
+
export declare function parseCidString(input: string): CID | undefined;
|
|
11
|
+
export declare function ensureValidCidString(input: string): void;
|
|
12
|
+
//# sourceMappingURL=cid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cid.d.ts","sourceRoot":"","sources":["../src/cid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,eAAO,MAAM,mBAAmB,MAAO,CAAA;AACvC,eAAO,MAAM,kBAAkB,KAAO,CAAA;AAEtC,eAAO,MAAM,uBAAuB,KAAO,CAAA;AAE3C,OAAO,EAAE,GAAG,EAAE,CAAA;AAEd,wBAAgB,KAAK,CACnB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,KAAK,IAAI,GAAG,CAmBd;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAM7D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIxD"}
|
package/dist/cid.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CID = exports.SHA2_256_MULTIHASH_CODE = exports.RAW_BIN_MULTICODEC = exports.DAG_CBOR_MULTICODEC = void 0;
|
|
4
|
+
exports.isCid = isCid;
|
|
5
|
+
exports.validateCidString = validateCidString;
|
|
6
|
+
exports.parseCidString = parseCidString;
|
|
7
|
+
exports.ensureValidCidString = ensureValidCidString;
|
|
8
|
+
const cid_1 = require("multiformats/cid");
|
|
9
|
+
Object.defineProperty(exports, "CID", { enumerable: true, get: function () { return cid_1.CID; } });
|
|
10
|
+
exports.DAG_CBOR_MULTICODEC = 0x71;
|
|
11
|
+
exports.RAW_BIN_MULTICODEC = 0x55;
|
|
12
|
+
exports.SHA2_256_MULTIHASH_CODE = 0x12;
|
|
13
|
+
function isCid(value, options) {
|
|
14
|
+
const cid = cid_1.CID.asCID(value);
|
|
15
|
+
if (!cid) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (options?.strict) {
|
|
19
|
+
if (cid.version !== 1) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
if (cid.code !== exports.RAW_BIN_MULTICODEC && cid.code !== exports.DAG_CBOR_MULTICODEC) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
if (cid.multihash.code !== exports.SHA2_256_MULTIHASH_CODE) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
function validateCidString(input) {
|
|
32
|
+
return parseCidString(input)?.toString() === input;
|
|
33
|
+
}
|
|
34
|
+
function parseCidString(input) {
|
|
35
|
+
try {
|
|
36
|
+
return cid_1.CID.parse(input);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function ensureValidCidString(input) {
|
|
43
|
+
if (!validateCidString(input)) {
|
|
44
|
+
throw new Error(`Invalid CID string`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=cid.js.map
|
package/dist/cid.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cid.js","sourceRoot":"","sources":["../src/cid.ts"],"names":[],"mappings":";;;AASA,sBAsBC;AAED,8CAEC;AAED,wCAMC;AAED,oDAIC;AAjDD,0CAAsC;AAO7B,oFAPA,SAAG,OAOA;AALC,QAAA,mBAAmB,GAAG,IAAI,CAAA;AAC1B,QAAA,kBAAkB,GAAG,IAAI,CAAA;AAEzB,QAAA,uBAAuB,GAAG,IAAI,CAAA;AAI3C,SAAgB,KAAK,CACnB,KAAc,EACd,OAA8B;IAE9B,MAAM,GAAG,GAAG,SAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,0BAAkB,IAAI,GAAG,CAAC,IAAI,KAAK,2BAAmB,EAAE,CAAC;YACxE,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,+BAAuB,EAAE,CAAC;YACnD,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,OAAO,cAAc,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,KAAK,CAAA;AACpD,CAAC;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,IAAI,CAAC;QACH,OAAO,SAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAa;IAChD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACvC,CAAC;AACH,CAAC","sourcesContent":["import { CID } from 'multiformats/cid'\n\nexport const DAG_CBOR_MULTICODEC = 0x71\nexport const RAW_BIN_MULTICODEC = 0x55\n\nexport const SHA2_256_MULTIHASH_CODE = 0x12\n\nexport { CID }\n\nexport function isCid(\n value: unknown,\n options?: { strict?: boolean },\n): value is CID {\n const cid = CID.asCID(value)\n if (!cid) {\n return false\n }\n\n if (options?.strict) {\n if (cid.version !== 1) {\n return false\n }\n if (cid.code !== RAW_BIN_MULTICODEC && cid.code !== DAG_CBOR_MULTICODEC) {\n return false\n }\n if (cid.multihash.code !== SHA2_256_MULTIHASH_CODE) {\n return false\n }\n }\n\n return true\n}\n\nexport function validateCidString(input: string): boolean {\n return parseCidString(input)?.toString() === input\n}\n\nexport function parseCidString(input: string): CID | undefined {\n try {\n return CID.parse(input)\n } catch {\n return undefined\n }\n}\n\nexport function ensureValidCidString(input: string): void {\n if (!validateCidString(input)) {\n throw new Error(`Invalid CID string`)\n }\n}\n"]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './blob.js';
|
|
2
|
+
export * from './cid.js';
|
|
3
|
+
export * from './language.js';
|
|
4
|
+
export * from './lex-equals.js';
|
|
5
|
+
export * from './lex.js';
|
|
6
|
+
export * from './object.js';
|
|
7
|
+
export * from './uint8array.js';
|
|
8
|
+
export * from './utf8.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./blob.js"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./cid.js"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./language.js"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./lex-equals.js"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./lex.js"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./object.js"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./uint8array.js"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./utf8.js"), exports);
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB;AACzB,mDAAwB;AACxB,wDAA6B;AAC7B,0DAA+B;AAC/B,mDAAwB;AACxB,sDAA2B;AAC3B,0DAA+B;AAC/B,oDAAyB","sourcesContent":["export * from './blob.js'\nexport * from './cid.js'\nexport * from './language.js'\nexport * from './lex-equals.js'\nexport * from './lex.js'\nexport * from './object.js'\nexport * from './uint8array.js'\nexport * from './utf8.js'\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type LanguageTag = {
|
|
2
|
+
grandfathered?: string;
|
|
3
|
+
language?: string;
|
|
4
|
+
extlang?: string;
|
|
5
|
+
script?: string;
|
|
6
|
+
region?: string;
|
|
7
|
+
variant?: string;
|
|
8
|
+
extension?: string;
|
|
9
|
+
privateUse?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function parseLanguage(input: string): LanguageTag | null;
|
|
12
|
+
/**
|
|
13
|
+
* Validates well-formed BCP 47 syntax
|
|
14
|
+
*
|
|
15
|
+
* @see {@link https://www.rfc-editor.org/rfc/rfc5646.html#section-2.1}
|
|
16
|
+
*/
|
|
17
|
+
export declare function isLanguage(input: string): boolean;
|
|
18
|
+
//# sourceMappingURL=language.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../src/language.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAe/D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD"}
|
package/dist/language.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseLanguage = parseLanguage;
|
|
4
|
+
exports.isLanguage = isLanguage;
|
|
5
|
+
const BCP47_REGEXP = /^((?<grandfathered>(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))|((?<language>([A-Za-z]{2,3}(-(?<extlang>[A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-(?<script>[A-Za-z]{4}))?(-(?<region>[A-Za-z]{2}|[0-9]{3}))?(-(?<variant>[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-(?<extension>[0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(?<privateUseA>x(-[A-Za-z0-9]{1,8})+))?)|(?<privateUseB>x(-[A-Za-z0-9]{1,8})+))$/;
|
|
6
|
+
function parseLanguage(input) {
|
|
7
|
+
const parsed = input.match(BCP47_REGEXP);
|
|
8
|
+
if (!parsed?.groups)
|
|
9
|
+
return null;
|
|
10
|
+
const { groups } = parsed;
|
|
11
|
+
return {
|
|
12
|
+
grandfathered: groups.grandfathered,
|
|
13
|
+
language: groups.language,
|
|
14
|
+
extlang: groups.extlang,
|
|
15
|
+
script: groups.script,
|
|
16
|
+
region: groups.region,
|
|
17
|
+
variant: groups.variant,
|
|
18
|
+
extension: groups.extension,
|
|
19
|
+
privateUse: groups.privateUseA || groups.privateUseB,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Validates well-formed BCP 47 syntax
|
|
24
|
+
*
|
|
25
|
+
* @see {@link https://www.rfc-editor.org/rfc/rfc5646.html#section-2.1}
|
|
26
|
+
*/
|
|
27
|
+
function isLanguage(input) {
|
|
28
|
+
return BCP47_REGEXP.test(input);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=language.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.js","sourceRoot":"","sources":["../src/language.ts"],"names":[],"mappings":";;AAcA,sCAeC;AAOD,gCAEC;AAtCD,MAAM,YAAY,GAChB,mlBAAmlB,CAAA;AAarlB,SAAgB,aAAa,CAAC,KAAa;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,IAAI,CAAA;IAEhC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACzB,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW;KACrD,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC","sourcesContent":["const BCP47_REGEXP =\n /^((?<grandfathered>(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))|((?<language>([A-Za-z]{2,3}(-(?<extlang>[A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-(?<script>[A-Za-z]{4}))?(-(?<region>[A-Za-z]{2}|[0-9]{3}))?(-(?<variant>[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-(?<extension>[0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(?<privateUseA>x(-[A-Za-z0-9]{1,8})+))?)|(?<privateUseB>x(-[A-Za-z0-9]{1,8})+))$/\n\nexport type LanguageTag = {\n grandfathered?: string\n language?: string\n extlang?: string\n script?: string\n region?: string\n variant?: string\n extension?: string\n privateUse?: string\n}\n\nexport function parseLanguage(input: string): LanguageTag | null {\n const parsed = input.match(BCP47_REGEXP)\n if (!parsed?.groups) return null\n\n const { groups } = parsed\n return {\n grandfathered: groups.grandfathered,\n language: groups.language,\n extlang: groups.extlang,\n script: groups.script,\n region: groups.region,\n variant: groups.variant,\n extension: groups.extension,\n privateUse: groups.privateUseA || groups.privateUseB,\n }\n}\n\n/**\n * Validates well-formed BCP 47 syntax\n *\n * @see {@link https://www.rfc-editor.org/rfc/rfc5646.html#section-2.1}\n */\nexport function isLanguage(input: string): boolean {\n return BCP47_REGEXP.test(input)\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lex-equals.d.ts","sourceRoot":"","sources":["../src/lex-equals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAInC,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CA+E3D"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lexEquals = lexEquals;
|
|
4
|
+
const cid_js_1 = require("./cid.js");
|
|
5
|
+
const object_js_1 = require("./object.js");
|
|
6
|
+
const uint8array_js_1 = require("./uint8array.js");
|
|
7
|
+
function lexEquals(a, b) {
|
|
8
|
+
if (Object.is(a, b)) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
if (a == null ||
|
|
12
|
+
b == null ||
|
|
13
|
+
typeof a !== 'object' ||
|
|
14
|
+
typeof b !== 'object') {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
if (Array.isArray(a)) {
|
|
18
|
+
if (!Array.isArray(b)) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
if (a.length !== b.length) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
for (let i = 0; i < a.length; i++) {
|
|
25
|
+
if (!lexEquals(a[i], b[i])) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
else if (Array.isArray(b)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (ArrayBuffer.isView(a)) {
|
|
35
|
+
if (!ArrayBuffer.isView(b))
|
|
36
|
+
return false;
|
|
37
|
+
return (0, uint8array_js_1.ui8Equals)(a, b);
|
|
38
|
+
}
|
|
39
|
+
else if (ArrayBuffer.isView(b)) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
if ((0, cid_js_1.isCid)(a)) {
|
|
43
|
+
// @NOTE CID.equals returns its argument when it is falsy (e.g. null or
|
|
44
|
+
// undefined) so we need to explicitly check that the output is "true".
|
|
45
|
+
return cid_js_1.CID.asCID(a).equals(cid_js_1.CID.asCID(b)) === true;
|
|
46
|
+
}
|
|
47
|
+
else if ((0, cid_js_1.isCid)(b)) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
if (!(0, object_js_1.isPlainObject)(a) || !(0, object_js_1.isPlainObject)(b)) {
|
|
51
|
+
// Foolproof (should never happen)
|
|
52
|
+
throw new TypeError('Invalid LexValue (expected CID, Uint8Array, or LexMap)');
|
|
53
|
+
}
|
|
54
|
+
const aKeys = Object.keys(a);
|
|
55
|
+
const bKeys = Object.keys(b);
|
|
56
|
+
if (aKeys.length !== bKeys.length) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
for (const key of aKeys) {
|
|
60
|
+
const aVal = a[key];
|
|
61
|
+
const bVal = b[key];
|
|
62
|
+
// Needed because of the optional index signature in the Lex object type
|
|
63
|
+
// though, in practice, aVal should never be undefined here.
|
|
64
|
+
if (aVal === undefined) {
|
|
65
|
+
if (bVal === undefined && bKeys.includes(key))
|
|
66
|
+
continue;
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
else if (bVal === undefined) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
if (!lexEquals(aVal, bVal)) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=lex-equals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lex-equals.js","sourceRoot":"","sources":["../src/lex-equals.ts"],"names":[],"mappings":"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","sourcesContent":["import { CID, isCid } from './cid.js'\nimport { LexValue } from './lex.js'\nimport { isPlainObject } from './object.js'\nimport { ui8Equals } from './uint8array.js'\n\nexport function lexEquals(a: LexValue, b: LexValue): boolean {\n if (Object.is(a, b)) {\n return true\n }\n\n if (\n a == null ||\n b == null ||\n typeof a !== 'object' ||\n typeof b !== 'object'\n ) {\n return false\n }\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b)) {\n return false\n }\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!lexEquals(a[i], b[i])) {\n return false\n }\n }\n return true\n } else if (Array.isArray(b)) {\n return false\n }\n\n if (ArrayBuffer.isView(a)) {\n if (!ArrayBuffer.isView(b)) return false\n return ui8Equals(a, b)\n } else if (ArrayBuffer.isView(b)) {\n return false\n }\n\n if (isCid(a)) {\n // @NOTE CID.equals returns its argument when it is falsy (e.g. null or\n // undefined) so we need to explicitly check that the output is \"true\".\n return CID.asCID(a)!.equals(CID.asCID(b)) === true\n } else if (isCid(b)) {\n return false\n }\n\n if (!isPlainObject(a) || !isPlainObject(b)) {\n // Foolproof (should never happen)\n throw new TypeError(\n 'Invalid LexValue (expected CID, Uint8Array, or LexMap)',\n )\n }\n\n const aKeys = Object.keys(a)\n const bKeys = Object.keys(b)\n\n if (aKeys.length !== bKeys.length) {\n return false\n }\n\n for (const key of aKeys) {\n const aVal = a[key]\n const bVal = b[key]\n\n // Needed because of the optional index signature in the Lex object type\n // though, in practice, aVal should never be undefined here.\n if (aVal === undefined) {\n if (bVal === undefined && bKeys.includes(key)) continue\n return false\n } else if (bVal === undefined) {\n return false\n }\n\n if (!lexEquals(aVal, bVal)) {\n return false\n }\n }\n\n return true\n}\n"]}
|
package/dist/lex.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CID } from './cid.js';
|
|
2
|
+
export type LexScalar = number | string | boolean | null | CID | Uint8Array;
|
|
3
|
+
export type LexValue = LexScalar | LexValue[] | {
|
|
4
|
+
[_ in string]?: LexValue;
|
|
5
|
+
};
|
|
6
|
+
export type LexMap = {
|
|
7
|
+
[_ in string]?: LexValue;
|
|
8
|
+
};
|
|
9
|
+
export type LexArray = LexValue[];
|
|
10
|
+
export declare function isLexMap(value: unknown): value is LexMap;
|
|
11
|
+
export declare function isLexArray(value: unknown): value is LexArray;
|
|
12
|
+
export declare function isLexScalar(value: unknown): value is LexScalar;
|
|
13
|
+
export declare function isLexValue(value: unknown): value is LexValue;
|
|
14
|
+
export type TypedLexMap = LexMap & {
|
|
15
|
+
$type: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function isTypedLexMap(value: LexValue): value is TypedLexMap;
|
|
18
|
+
//# sourceMappingURL=lex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lex.d.ts","sourceRoot":"","sources":["../src/lex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAS,MAAM,UAAU,CAAA;AAKrC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,GAAG,UAAU,CAAA;AAC3E,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,QAAQ;CAAE,CAAA;AAC5E,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,QAAQ;CAAE,CAAA;AACjD,MAAM,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAA;AAEjC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMxD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAM5D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAc9D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CA4B5D;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AACpD,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,WAAW,CAInE"}
|
package/dist/lex.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isLexMap = isLexMap;
|
|
4
|
+
exports.isLexArray = isLexArray;
|
|
5
|
+
exports.isLexScalar = isLexScalar;
|
|
6
|
+
exports.isLexValue = isLexValue;
|
|
7
|
+
exports.isTypedLexMap = isTypedLexMap;
|
|
8
|
+
const cid_js_1 = require("./cid.js");
|
|
9
|
+
const object_js_1 = require("./object.js");
|
|
10
|
+
function isLexMap(value) {
|
|
11
|
+
if (!(0, object_js_1.isPlainObject)(value))
|
|
12
|
+
return false;
|
|
13
|
+
for (const key in value) {
|
|
14
|
+
if (!isLexValue(value[key]))
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
function isLexArray(value) {
|
|
20
|
+
if (!Array.isArray(value))
|
|
21
|
+
return false;
|
|
22
|
+
for (let i = 0; i < value.length; i++) {
|
|
23
|
+
if (!isLexValue(value[i]))
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
function isLexScalar(value) {
|
|
29
|
+
switch (typeof value) {
|
|
30
|
+
case 'object':
|
|
31
|
+
if (value === null)
|
|
32
|
+
return true;
|
|
33
|
+
return value instanceof Uint8Array || (0, cid_js_1.isCid)(value);
|
|
34
|
+
case 'string':
|
|
35
|
+
case 'boolean':
|
|
36
|
+
return true;
|
|
37
|
+
case 'number':
|
|
38
|
+
if (Number.isInteger(value))
|
|
39
|
+
return true;
|
|
40
|
+
throw new TypeError(`Invalid Lex value: ${value}`);
|
|
41
|
+
default:
|
|
42
|
+
throw new TypeError(`Invalid Lex value: ${typeof value}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function isLexValue(value) {
|
|
46
|
+
switch (typeof value) {
|
|
47
|
+
case 'number':
|
|
48
|
+
if (!Number.isInteger(value))
|
|
49
|
+
return false;
|
|
50
|
+
// fallthrough
|
|
51
|
+
case 'string':
|
|
52
|
+
case 'boolean':
|
|
53
|
+
return true;
|
|
54
|
+
case 'object':
|
|
55
|
+
if (value === null)
|
|
56
|
+
return true;
|
|
57
|
+
if (Array.isArray(value)) {
|
|
58
|
+
for (let i = 0; i < value.length; i++) {
|
|
59
|
+
if (!isLexValue(value[i]))
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
if ((0, object_js_1.isPlainObject)(value)) {
|
|
65
|
+
for (const key in value) {
|
|
66
|
+
if (!isLexValue(value[key]))
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
if (value instanceof Uint8Array)
|
|
72
|
+
return true;
|
|
73
|
+
if ((0, cid_js_1.isCid)(value))
|
|
74
|
+
return true;
|
|
75
|
+
// fallthrough
|
|
76
|
+
default:
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function isTypedLexMap(value) {
|
|
81
|
+
return (isLexMap(value) && typeof value.$type === 'string' && value.$type.length > 0);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=lex.js.map
|
package/dist/lex.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lex.js","sourceRoot":"","sources":["../src/lex.ts"],"names":[],"mappings":"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","sourcesContent":["import { CID, isCid } from './cid.js'\nimport { isPlainObject } from './object.js'\n\n// @NOTE BlobRef is just a special case of LexMap.\n\nexport type LexScalar = number | string | boolean | null | CID | Uint8Array\nexport type LexValue = LexScalar | LexValue[] | { [_ in string]?: LexValue }\nexport type LexMap = { [_ in string]?: LexValue }\nexport type LexArray = LexValue[]\n\nexport function isLexMap(value: unknown): value is LexMap {\n if (!isPlainObject(value)) return false\n for (const key in value) {\n if (!isLexValue(value[key])) return false\n }\n return true\n}\n\nexport function isLexArray(value: unknown): value is LexArray {\n if (!Array.isArray(value)) return false\n for (let i = 0; i < value.length; i++) {\n if (!isLexValue(value[i])) return false\n }\n return true\n}\n\nexport function isLexScalar(value: unknown): value is LexScalar {\n switch (typeof value) {\n case 'object':\n if (value === null) return true\n return value instanceof Uint8Array || isCid(value)\n case 'string':\n case 'boolean':\n return true\n case 'number':\n if (Number.isInteger(value)) return true\n throw new TypeError(`Invalid Lex value: ${value}`)\n default:\n throw new TypeError(`Invalid Lex value: ${typeof value}`)\n }\n}\n\nexport function isLexValue(value: unknown): value is LexValue {\n switch (typeof value) {\n case 'number':\n if (!Number.isInteger(value)) return false\n // fallthrough\n case 'string':\n case 'boolean':\n return true\n case 'object':\n if (value === null) return true\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n if (!isLexValue(value[i])) return false\n }\n return true\n }\n if (isPlainObject(value)) {\n for (const key in value) {\n if (!isLexValue(value[key])) return false\n }\n return true\n }\n if (value instanceof Uint8Array) return true\n if (isCid(value)) return true\n // fallthrough\n default:\n return false\n }\n}\n\nexport type TypedLexMap = LexMap & { $type: string }\nexport function isTypedLexMap(value: LexValue): value is TypedLexMap {\n return (\n isLexMap(value) && typeof value.$type === 'string' && value.$type.length > 0\n )\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type Encoding = 'utf8' | 'base64' | 'base64url';
|
|
2
|
+
interface NodeJSBuffer<TArrayBuffer extends ArrayBufferLike = ArrayBufferLike> extends Uint8Array<TArrayBuffer> {
|
|
3
|
+
byteLength: number;
|
|
4
|
+
toString(encoding?: Encoding): string;
|
|
5
|
+
}
|
|
6
|
+
interface NodeJSBufferConstructor {
|
|
7
|
+
new (input: string, encoding?: Encoding): NodeJSBuffer;
|
|
8
|
+
from(input: Uint8Array | ArrayBuffer | ArrayBufferView): NodeJSBuffer<ArrayBuffer>;
|
|
9
|
+
from(input: string, encoding?: Encoding): NodeJSBuffer<ArrayBuffer>;
|
|
10
|
+
byteLength(input: string, encoding?: Encoding): number;
|
|
11
|
+
prototype: NodeJSBuffer;
|
|
12
|
+
}
|
|
13
|
+
export declare const NodeJSBuffer: NodeJSBufferConstructor | null;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=nodejs-buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodejs-buffer.d.ts","sourceRoot":"","sources":["../../src/lib/nodejs-buffer.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAA;AAE/C,UAAU,YAAY,CAAC,YAAY,SAAS,eAAe,GAAG,eAAe,CAC3E,SAAQ,UAAU,CAAC,YAAY,CAAC;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;CACtC;AAED,UAAU,uBAAuB;IAC/B,KAAK,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAA;IACtD,IAAI,CACF,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,eAAe,GAChD,YAAY,CAAC,WAAW,CAAC,CAAA;IAC5B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;IACnE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IACtD,SAAS,EAAE,YAAY,CAAA;CACxB;AAMD,eAAO,MAAM,YAAY,EAAE,uBAAuB,GAAG,IAI3C,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeJSBuffer = void 0;
|
|
4
|
+
// Avoids a direct reference to Node.js Buffer, which might not exist in some
|
|
5
|
+
// environments (e.g. browsers, Deno, Bun) to prevent bundlers from trying to
|
|
6
|
+
// include polyfills.
|
|
7
|
+
const BUFFER = /*#__PURE__*/ (() => 'Bu' + 'f'.repeat(2) + 'er')();
|
|
8
|
+
exports.NodeJSBuffer = globalThis?.[BUFFER]?.prototype instanceof Uint8Array &&
|
|
9
|
+
'byteLength' in globalThis[BUFFER]
|
|
10
|
+
? globalThis[BUFFER]
|
|
11
|
+
: null;
|
|
12
|
+
//# sourceMappingURL=nodejs-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodejs-buffer.js","sourceRoot":"","sources":["../../src/lib/nodejs-buffer.ts"],"names":[],"mappings":";;;AAkBA,6EAA6E;AAC7E,6EAA6E;AAC7E,qBAAqB;AACrB,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAc,CAAA;AACjE,QAAA,YAAY,GACtB,UAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,YAAY,UAAU;IAC9D,YAAY,IAAK,UAAkB,CAAC,MAAM,CAAC;IACzC,CAAC,CAAG,UAAkB,CAAC,MAAM,CAA6B;IAC1D,CAAC,CAAC,IAAI,CAAA","sourcesContent":["type Encoding = 'utf8' | 'base64' | 'base64url'\n\ninterface NodeJSBuffer<TArrayBuffer extends ArrayBufferLike = ArrayBufferLike>\n extends Uint8Array<TArrayBuffer> {\n byteLength: number\n toString(encoding?: Encoding): string\n}\n\ninterface NodeJSBufferConstructor {\n new (input: string, encoding?: Encoding): NodeJSBuffer\n from(\n input: Uint8Array | ArrayBuffer | ArrayBufferView,\n ): NodeJSBuffer<ArrayBuffer>\n from(input: string, encoding?: Encoding): NodeJSBuffer<ArrayBuffer>\n byteLength(input: string, encoding?: Encoding): number\n prototype: NodeJSBuffer\n}\n\n// Avoids a direct reference to Node.js Buffer, which might not exist in some\n// environments (e.g. browsers, Deno, Bun) to prevent bundlers from trying to\n// include polyfills.\nconst BUFFER = /*#__PURE__*/ (() => 'Bu' + 'f'.repeat(2) + 'er')() as 'Buffer'\nexport const NodeJSBuffer: NodeJSBufferConstructor | null =\n (globalThis as any)?.[BUFFER]?.prototype instanceof Uint8Array &&\n 'byteLength' in (globalThis as any)[BUFFER]\n ? ((globalThis as any)[BUFFER] as NodeJSBufferConstructor)\n : null\n"]}
|
package/dist/object.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAKD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW3C"}
|
package/dist/object.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isObject = isObject;
|
|
4
|
+
exports.isPlainObject = isPlainObject;
|
|
5
|
+
function isObject(input) {
|
|
6
|
+
return input != null && typeof input === 'object';
|
|
7
|
+
}
|
|
8
|
+
const ObjectProto = Object.prototype;
|
|
9
|
+
const ObjectToString = Object.prototype.toString;
|
|
10
|
+
function isPlainObject(input) {
|
|
11
|
+
if (!input || typeof input !== 'object')
|
|
12
|
+
return false;
|
|
13
|
+
const proto = Object.getPrototypeOf(input);
|
|
14
|
+
if (proto === null)
|
|
15
|
+
return true;
|
|
16
|
+
return ((proto === ObjectProto ||
|
|
17
|
+
// Needed to support NodeJS's `runInNewContext` which produces objects
|
|
18
|
+
// with a different prototype
|
|
19
|
+
Object.getPrototypeOf(proto) === null) &&
|
|
20
|
+
ObjectToString.call(input) === '[object Object]');
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":";;AAAA,4BAEC;AAKD,sCAaC;AApBD,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAA;AACnD,CAAC;AAED,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAA;AACpC,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAA;AAEhD,SAAgB,aAAa,CAC3B,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC/B,OAAO,CACL,CAAC,KAAK,KAAK,WAAW;QACpB,sEAAsE;QACtE,6BAA6B;QAC7B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CACjD,CAAA;AACH,CAAC","sourcesContent":["export function isObject(input: unknown): input is object {\n return input != null && typeof input === 'object'\n}\n\nconst ObjectProto = Object.prototype\nconst ObjectToString = Object.prototype.toString\n\nexport function isPlainObject(\n input: unknown,\n): input is object & Record<string, unknown> {\n if (!input || typeof input !== 'object') return false\n const proto = Object.getPrototypeOf(input)\n if (proto === null) return true\n return (\n (proto === ObjectProto ||\n // Needed to support NodeJS's `runInNewContext` which produces objects\n // with a different prototype\n Object.getPrototypeOf(proto) === null) &&\n ObjectToString.call(input) === '[object Object]'\n )\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
interface Uint8ArrayConstructor {
|
|
3
|
+
/**
|
|
4
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/fromBase64 Uint8Array.fromBase64()}
|
|
5
|
+
*/
|
|
6
|
+
fromBase64?: (b64: string, options?: {
|
|
7
|
+
/** @default 'base64' */
|
|
8
|
+
alphabet?: 'base64' | 'base64url';
|
|
9
|
+
lastChunkHandling?: 'loose' | 'strict' | 'stop-before-partial';
|
|
10
|
+
}) => Uint8Array;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare const fromBase64Native: ((b64: string) => Uint8Array) | null;
|
|
14
|
+
export declare const fromBase64Node: ((b64: string) => Uint8Array) | null;
|
|
15
|
+
export declare function fromBase64Ponyfill(b64: string): Uint8Array;
|
|
16
|
+
//# sourceMappingURL=uint8array-from-base64.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uint8array-from-base64.d.ts","sourceRoot":"","sources":["../src/uint8array-from-base64.ts"],"names":[],"mappings":"AAKA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B;;WAEG;QACH,UAAU,CAAC,EAAE,CACX,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;YACR,wBAAwB;YACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAA;YACjC,iBAAiB,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,qBAAqB,CAAA;SAC/D,KACE,UAAU,CAAA;KAChB;CACF;AAED,eAAO,MAAM,gBAAgB,SAEQ,MAAM,KAAG,UAAU,QAG9C,CAAA;AAEV,eAAO,MAAM,cAAc,SACM,MAAM,KAAG,UAAU,QAQ5C,CAAA;AAER,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAI1D"}
|