@atproto/xrpc 0.2.0 → 0.3.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/index.js +150 -1192
- package/dist/index.js.map +4 -4
- package/dist/types.d.ts +3 -2
- package/package.json +1 -1
- package/src/client.ts +6 -1
- package/src/types.ts +6 -3
- package/tsconfig.build.tsbuildinfo +1 -1
package/dist/index.js
CHANGED
|
@@ -8870,8 +8870,8 @@ var require_dist = __commonJS({
|
|
|
8870
8870
|
});
|
|
8871
8871
|
|
|
8872
8872
|
// src/index.ts
|
|
8873
|
-
var
|
|
8874
|
-
__export(
|
|
8873
|
+
var src_exports2 = {};
|
|
8874
|
+
__export(src_exports2, {
|
|
8875
8875
|
Client: () => Client,
|
|
8876
8876
|
ResponseType: () => ResponseType,
|
|
8877
8877
|
ResponseTypeNames: () => ResponseTypeNames,
|
|
@@ -8884,7 +8884,7 @@ __export(src_exports4, {
|
|
|
8884
8884
|
defaultFetchHandler: () => defaultFetchHandler,
|
|
8885
8885
|
errorResponseBody: () => errorResponseBody
|
|
8886
8886
|
});
|
|
8887
|
-
module.exports = __toCommonJS(
|
|
8887
|
+
module.exports = __toCommonJS(src_exports2);
|
|
8888
8888
|
|
|
8889
8889
|
// ../../node_modules/zod/lib/index.mjs
|
|
8890
8890
|
var util;
|
|
@@ -12493,7 +12493,7 @@ var ResponseType = /* @__PURE__ */ ((ResponseType2) => {
|
|
|
12493
12493
|
ResponseType2[ResponseType2["InternalServerError"] = 500] = "InternalServerError";
|
|
12494
12494
|
ResponseType2[ResponseType2["MethodNotImplemented"] = 501] = "MethodNotImplemented";
|
|
12495
12495
|
ResponseType2[ResponseType2["UpstreamFailure"] = 502] = "UpstreamFailure";
|
|
12496
|
-
ResponseType2[ResponseType2["
|
|
12496
|
+
ResponseType2[ResponseType2["NotEnoughResources"] = 503] = "NotEnoughResources";
|
|
12497
12497
|
ResponseType2[ResponseType2["UpstreamTimeout"] = 504] = "UpstreamTimeout";
|
|
12498
12498
|
return ResponseType2;
|
|
12499
12499
|
})(ResponseType || {});
|
|
@@ -12509,7 +12509,7 @@ var ResponseTypeNames = {
|
|
|
12509
12509
|
[500 /* InternalServerError */]: "InternalServerError",
|
|
12510
12510
|
[501 /* MethodNotImplemented */]: "MethodNotImplemented",
|
|
12511
12511
|
[502 /* UpstreamFailure */]: "UpstreamFailure",
|
|
12512
|
-
[503 /*
|
|
12512
|
+
[503 /* NotEnoughResources */]: "NotEnoughResources",
|
|
12513
12513
|
[504 /* UpstreamTimeout */]: "UpstreamTimeout"
|
|
12514
12514
|
};
|
|
12515
12515
|
var ResponseTypeStrings = {
|
|
@@ -12524,7 +12524,7 @@ var ResponseTypeStrings = {
|
|
|
12524
12524
|
[500 /* InternalServerError */]: "Internal Server Error",
|
|
12525
12525
|
[501 /* MethodNotImplemented */]: "Method Not Implemented",
|
|
12526
12526
|
[502 /* UpstreamFailure */]: "Upstream Failure",
|
|
12527
|
-
[503 /*
|
|
12527
|
+
[503 /* NotEnoughResources */]: "Not Enough Resources",
|
|
12528
12528
|
[504 /* UpstreamTimeout */]: "Upstream Timeout"
|
|
12529
12529
|
};
|
|
12530
12530
|
var XRPCResponse = class {
|
|
@@ -12535,7 +12535,7 @@ var XRPCResponse = class {
|
|
|
12535
12535
|
}
|
|
12536
12536
|
};
|
|
12537
12537
|
var XRPCError = class extends Error {
|
|
12538
|
-
constructor(status, error, message) {
|
|
12538
|
+
constructor(status, error, message, headers) {
|
|
12539
12539
|
super(message || error || ResponseTypeStrings[status]);
|
|
12540
12540
|
this.status = status;
|
|
12541
12541
|
this.error = error;
|
|
@@ -12543,6 +12543,7 @@ var XRPCError = class extends Error {
|
|
|
12543
12543
|
if (!this.error) {
|
|
12544
12544
|
this.error = ResponseTypeNames[status];
|
|
12545
12545
|
}
|
|
12546
|
+
this.headers = headers;
|
|
12546
12547
|
}
|
|
12547
12548
|
};
|
|
12548
12549
|
var XRPCInvalidResponseError = class extends XRPCError {
|
|
@@ -12558,7 +12559,73 @@ var XRPCInvalidResponseError = class extends XRPCError {
|
|
|
12558
12559
|
}
|
|
12559
12560
|
};
|
|
12560
12561
|
|
|
12561
|
-
// ../
|
|
12562
|
+
// ../syntax/src/handle.ts
|
|
12563
|
+
var ensureValidHandle = (handle2) => {
|
|
12564
|
+
if (!/^[a-zA-Z0-9.-]*$/.test(handle2)) {
|
|
12565
|
+
throw new InvalidHandleError(
|
|
12566
|
+
"Disallowed characters in handle (ASCII letters, digits, dashes, periods only)"
|
|
12567
|
+
);
|
|
12568
|
+
}
|
|
12569
|
+
if (handle2.length > 253) {
|
|
12570
|
+
throw new InvalidHandleError("Handle is too long (253 chars max)");
|
|
12571
|
+
}
|
|
12572
|
+
const labels = handle2.split(".");
|
|
12573
|
+
if (labels.length < 2) {
|
|
12574
|
+
throw new InvalidHandleError("Handle domain needs at least two parts");
|
|
12575
|
+
}
|
|
12576
|
+
for (let i = 0; i < labels.length; i++) {
|
|
12577
|
+
const l = labels[i];
|
|
12578
|
+
if (l.length < 1) {
|
|
12579
|
+
throw new InvalidHandleError("Handle parts can not be empty");
|
|
12580
|
+
}
|
|
12581
|
+
if (l.length > 63) {
|
|
12582
|
+
throw new InvalidHandleError("Handle part too long (max 63 chars)");
|
|
12583
|
+
}
|
|
12584
|
+
if (l.endsWith("-") || l.startsWith("-")) {
|
|
12585
|
+
throw new InvalidHandleError(
|
|
12586
|
+
"Handle parts can not start or end with hyphens"
|
|
12587
|
+
);
|
|
12588
|
+
}
|
|
12589
|
+
if (i + 1 == labels.length && !/^[a-zA-Z]/.test(l)) {
|
|
12590
|
+
throw new InvalidHandleError(
|
|
12591
|
+
"Handle final component (TLD) must start with ASCII letter"
|
|
12592
|
+
);
|
|
12593
|
+
}
|
|
12594
|
+
}
|
|
12595
|
+
};
|
|
12596
|
+
var InvalidHandleError = class extends Error {
|
|
12597
|
+
};
|
|
12598
|
+
|
|
12599
|
+
// ../syntax/src/did.ts
|
|
12600
|
+
var ensureValidDid = (did2) => {
|
|
12601
|
+
if (!/^[a-zA-Z0-9._:%-]*$/.test(did2)) {
|
|
12602
|
+
throw new InvalidDidError(
|
|
12603
|
+
"Disallowed characters in DID (ASCII letters, digits, and a couple other characters only)"
|
|
12604
|
+
);
|
|
12605
|
+
}
|
|
12606
|
+
const parts = did2.split(":");
|
|
12607
|
+
if (parts.length < 3) {
|
|
12608
|
+
throw new InvalidDidError(
|
|
12609
|
+
"DID requires prefix, method, and method-specific content"
|
|
12610
|
+
);
|
|
12611
|
+
}
|
|
12612
|
+
if (parts[0] != "did") {
|
|
12613
|
+
throw new InvalidDidError('DID requires "did:" prefix');
|
|
12614
|
+
}
|
|
12615
|
+
if (!/^[a-z]+$/.test(parts[1])) {
|
|
12616
|
+
throw new InvalidDidError("DID method must be lower-case letters");
|
|
12617
|
+
}
|
|
12618
|
+
if (did2.endsWith(":") || did2.endsWith("%")) {
|
|
12619
|
+
throw new InvalidDidError('DID can not end with ":" or "%"');
|
|
12620
|
+
}
|
|
12621
|
+
if (did2.length > 2 * 1024) {
|
|
12622
|
+
throw new InvalidDidError("DID is too long (2048 chars max)");
|
|
12623
|
+
}
|
|
12624
|
+
};
|
|
12625
|
+
var InvalidDidError = class extends Error {
|
|
12626
|
+
};
|
|
12627
|
+
|
|
12628
|
+
// ../syntax/src/nsid.ts
|
|
12562
12629
|
var NSID = class {
|
|
12563
12630
|
constructor(nsid2) {
|
|
12564
12631
|
this.segments = [];
|
|
@@ -12626,6 +12693,75 @@ var ensureValidNsid = (nsid2) => {
|
|
|
12626
12693
|
var InvalidNsidError = class extends Error {
|
|
12627
12694
|
};
|
|
12628
12695
|
|
|
12696
|
+
// ../syntax/src/aturi_validation.ts
|
|
12697
|
+
var ensureValidAtUri = (uri2) => {
|
|
12698
|
+
const uriParts = uri2.split("#");
|
|
12699
|
+
if (uriParts.length > 2) {
|
|
12700
|
+
throw new Error('ATURI can have at most one "#", separating fragment out');
|
|
12701
|
+
}
|
|
12702
|
+
const fragmentPart = uriParts[1] || null;
|
|
12703
|
+
uri2 = uriParts[0];
|
|
12704
|
+
if (!/^[a-zA-Z0-9._~:@!$&')(*+,;=%/-]*$/.test(uri2)) {
|
|
12705
|
+
throw new Error("Disallowed characters in ATURI (ASCII)");
|
|
12706
|
+
}
|
|
12707
|
+
const parts = uri2.split("/");
|
|
12708
|
+
if (parts.length >= 3 && (parts[0] != "at:" || parts[1].length != 0)) {
|
|
12709
|
+
throw new Error('ATURI must start with "at://"');
|
|
12710
|
+
}
|
|
12711
|
+
if (parts.length < 3) {
|
|
12712
|
+
throw new Error("ATURI requires at least method and authority sections");
|
|
12713
|
+
}
|
|
12714
|
+
try {
|
|
12715
|
+
ensureValidHandle(parts[2]);
|
|
12716
|
+
} catch {
|
|
12717
|
+
try {
|
|
12718
|
+
ensureValidDid(parts[2]);
|
|
12719
|
+
} catch {
|
|
12720
|
+
throw new Error("ATURI authority must be a valid handle or DID");
|
|
12721
|
+
}
|
|
12722
|
+
}
|
|
12723
|
+
if (parts.length >= 4) {
|
|
12724
|
+
if (parts[3].length == 0) {
|
|
12725
|
+
throw new Error(
|
|
12726
|
+
"ATURI can not have a slash after authority without a path segment"
|
|
12727
|
+
);
|
|
12728
|
+
}
|
|
12729
|
+
try {
|
|
12730
|
+
ensureValidNsid(parts[3]);
|
|
12731
|
+
} catch {
|
|
12732
|
+
throw new Error(
|
|
12733
|
+
"ATURI requires first path segment (if supplied) to be valid NSID"
|
|
12734
|
+
);
|
|
12735
|
+
}
|
|
12736
|
+
}
|
|
12737
|
+
if (parts.length >= 5) {
|
|
12738
|
+
if (parts[4].length == 0) {
|
|
12739
|
+
throw new Error(
|
|
12740
|
+
"ATURI can not have a slash after collection, unless record key is provided"
|
|
12741
|
+
);
|
|
12742
|
+
}
|
|
12743
|
+
}
|
|
12744
|
+
if (parts.length >= 6) {
|
|
12745
|
+
throw new Error(
|
|
12746
|
+
"ATURI path can have at most two parts, and no trailing slash"
|
|
12747
|
+
);
|
|
12748
|
+
}
|
|
12749
|
+
if (uriParts.length >= 2 && fragmentPart == null) {
|
|
12750
|
+
throw new Error("ATURI fragment must be non-empty and start with slash");
|
|
12751
|
+
}
|
|
12752
|
+
if (fragmentPart != null) {
|
|
12753
|
+
if (fragmentPart.length == 0 || fragmentPart[0] != "/") {
|
|
12754
|
+
throw new Error("ATURI fragment must be non-empty and start with slash");
|
|
12755
|
+
}
|
|
12756
|
+
if (!/^\/[a-zA-Z0-9._~:@!$&')(*+,;=%[\]/-]*$/.test(fragmentPart)) {
|
|
12757
|
+
throw new Error("Disallowed characters in ATURI fragment (ASCII)");
|
|
12758
|
+
}
|
|
12759
|
+
}
|
|
12760
|
+
if (uri2.length > 8 * 1024) {
|
|
12761
|
+
throw new Error("ATURI is far too long");
|
|
12762
|
+
}
|
|
12763
|
+
};
|
|
12764
|
+
|
|
12629
12765
|
// ../common-web/src/check.ts
|
|
12630
12766
|
var check_exports = {};
|
|
12631
12767
|
__export(check_exports, {
|
|
@@ -13856,1189 +13992,6 @@ var validateLanguage = (langTag) => {
|
|
|
13856
13992
|
};
|
|
13857
13993
|
var bcp47Regexp = /^((?<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})+))$/;
|
|
13858
13994
|
|
|
13859
|
-
// ../identifier/src/reserved.ts
|
|
13860
|
-
var atpSpecific = [
|
|
13861
|
-
"at",
|
|
13862
|
-
"atp",
|
|
13863
|
-
"plc",
|
|
13864
|
-
"pds",
|
|
13865
|
-
"did",
|
|
13866
|
-
"repo",
|
|
13867
|
-
"tid",
|
|
13868
|
-
"nsid",
|
|
13869
|
-
"xrpc",
|
|
13870
|
-
"lex",
|
|
13871
|
-
"lexicon",
|
|
13872
|
-
"bsky",
|
|
13873
|
-
"bluesky",
|
|
13874
|
-
"handle"
|
|
13875
|
-
];
|
|
13876
|
-
var commonlyReserved = [
|
|
13877
|
-
"about",
|
|
13878
|
-
"abuse",
|
|
13879
|
-
"access",
|
|
13880
|
-
"account",
|
|
13881
|
-
"accounts",
|
|
13882
|
-
"acme",
|
|
13883
|
-
"activate",
|
|
13884
|
-
"activities",
|
|
13885
|
-
"activity",
|
|
13886
|
-
"ad",
|
|
13887
|
-
"add",
|
|
13888
|
-
"address",
|
|
13889
|
-
"adm",
|
|
13890
|
-
"admanager",
|
|
13891
|
-
"admin",
|
|
13892
|
-
"administration",
|
|
13893
|
-
"administrator",
|
|
13894
|
-
"administrators",
|
|
13895
|
-
"admins",
|
|
13896
|
-
"ads",
|
|
13897
|
-
"adsense",
|
|
13898
|
-
"adult",
|
|
13899
|
-
"advertising",
|
|
13900
|
-
"adwords",
|
|
13901
|
-
"affiliate",
|
|
13902
|
-
"affiliatepage",
|
|
13903
|
-
"affiliates",
|
|
13904
|
-
"afp",
|
|
13905
|
-
"ajax",
|
|
13906
|
-
"all",
|
|
13907
|
-
"alpha",
|
|
13908
|
-
"analysis",
|
|
13909
|
-
"analytics",
|
|
13910
|
-
"android",
|
|
13911
|
-
"anon",
|
|
13912
|
-
"anonymous",
|
|
13913
|
-
"answer",
|
|
13914
|
-
"answers",
|
|
13915
|
-
"ap",
|
|
13916
|
-
"api",
|
|
13917
|
-
"apis",
|
|
13918
|
-
"app",
|
|
13919
|
-
"appengine",
|
|
13920
|
-
"appnews",
|
|
13921
|
-
"apps",
|
|
13922
|
-
"archive",
|
|
13923
|
-
"archives",
|
|
13924
|
-
"article",
|
|
13925
|
-
"asdf",
|
|
13926
|
-
"asset",
|
|
13927
|
-
"assets",
|
|
13928
|
-
"auth",
|
|
13929
|
-
"authentication",
|
|
13930
|
-
"avatar",
|
|
13931
|
-
"backup",
|
|
13932
|
-
"bank",
|
|
13933
|
-
"banner",
|
|
13934
|
-
"banners",
|
|
13935
|
-
"base",
|
|
13936
|
-
"beginners",
|
|
13937
|
-
"beta",
|
|
13938
|
-
"billing",
|
|
13939
|
-
"bin",
|
|
13940
|
-
"binaries",
|
|
13941
|
-
"binary",
|
|
13942
|
-
"blackberry",
|
|
13943
|
-
"blog",
|
|
13944
|
-
"blogs",
|
|
13945
|
-
"blogsearch",
|
|
13946
|
-
"board",
|
|
13947
|
-
"book",
|
|
13948
|
-
"bookmark",
|
|
13949
|
-
"bookmarks",
|
|
13950
|
-
"books",
|
|
13951
|
-
"bot",
|
|
13952
|
-
"bots",
|
|
13953
|
-
"bug",
|
|
13954
|
-
"bugs",
|
|
13955
|
-
"business",
|
|
13956
|
-
"buy",
|
|
13957
|
-
"buzz",
|
|
13958
|
-
"cache",
|
|
13959
|
-
"calendar",
|
|
13960
|
-
"call",
|
|
13961
|
-
"campaign",
|
|
13962
|
-
"cancel",
|
|
13963
|
-
"captcha",
|
|
13964
|
-
"career",
|
|
13965
|
-
"careers",
|
|
13966
|
-
"cart",
|
|
13967
|
-
"catalog",
|
|
13968
|
-
"catalogs",
|
|
13969
|
-
"categories",
|
|
13970
|
-
"category",
|
|
13971
|
-
"cdn",
|
|
13972
|
-
"cgi",
|
|
13973
|
-
"cgi-bin",
|
|
13974
|
-
"changelog",
|
|
13975
|
-
"chart",
|
|
13976
|
-
"charts",
|
|
13977
|
-
"chat",
|
|
13978
|
-
"check",
|
|
13979
|
-
"checked",
|
|
13980
|
-
"checking",
|
|
13981
|
-
"checkout",
|
|
13982
|
-
"client",
|
|
13983
|
-
"cliente",
|
|
13984
|
-
"clients",
|
|
13985
|
-
"clients1",
|
|
13986
|
-
"cnarne",
|
|
13987
|
-
"code",
|
|
13988
|
-
"comercial",
|
|
13989
|
-
"comment",
|
|
13990
|
-
"comments",
|
|
13991
|
-
"communities",
|
|
13992
|
-
"community",
|
|
13993
|
-
"company",
|
|
13994
|
-
"compare",
|
|
13995
|
-
"compras",
|
|
13996
|
-
"config",
|
|
13997
|
-
"configuration",
|
|
13998
|
-
"confirm",
|
|
13999
|
-
"confirmation",
|
|
14000
|
-
"connect",
|
|
14001
|
-
"contact",
|
|
14002
|
-
"contacts",
|
|
14003
|
-
"contactus",
|
|
14004
|
-
"contact-us",
|
|
14005
|
-
"contact_us",
|
|
14006
|
-
"content",
|
|
14007
|
-
"contest",
|
|
14008
|
-
"contribute",
|
|
14009
|
-
"contributor",
|
|
14010
|
-
"contributors",
|
|
14011
|
-
"coppa",
|
|
14012
|
-
"copyright",
|
|
14013
|
-
"copyrights",
|
|
14014
|
-
"core",
|
|
14015
|
-
"corp",
|
|
14016
|
-
"countries",
|
|
14017
|
-
"country",
|
|
14018
|
-
"cpanel",
|
|
14019
|
-
"create",
|
|
14020
|
-
"css",
|
|
14021
|
-
"cssproxy",
|
|
14022
|
-
"customise",
|
|
14023
|
-
"customize",
|
|
14024
|
-
"dashboard",
|
|
14025
|
-
"data",
|
|
14026
|
-
"db",
|
|
14027
|
-
"default",
|
|
14028
|
-
"delete",
|
|
14029
|
-
"demo",
|
|
14030
|
-
"design",
|
|
14031
|
-
"designer",
|
|
14032
|
-
"desktop",
|
|
14033
|
-
"destroy",
|
|
14034
|
-
"dev",
|
|
14035
|
-
"devel",
|
|
14036
|
-
"developer",
|
|
14037
|
-
"developers",
|
|
14038
|
-
"devs",
|
|
14039
|
-
"diagram",
|
|
14040
|
-
"diary",
|
|
14041
|
-
"dict",
|
|
14042
|
-
"dictionary",
|
|
14043
|
-
"die",
|
|
14044
|
-
"dir",
|
|
14045
|
-
"directory",
|
|
14046
|
-
"direct_messages",
|
|
14047
|
-
"direct-messages",
|
|
14048
|
-
"dist",
|
|
14049
|
-
"diversity",
|
|
14050
|
-
"dl",
|
|
14051
|
-
"dmca",
|
|
14052
|
-
"doc",
|
|
14053
|
-
"docs",
|
|
14054
|
-
"documentation",
|
|
14055
|
-
"documentations",
|
|
14056
|
-
"documents",
|
|
14057
|
-
"domain",
|
|
14058
|
-
"domains",
|
|
14059
|
-
"donate",
|
|
14060
|
-
"download",
|
|
14061
|
-
"downloads",
|
|
14062
|
-
"e",
|
|
14063
|
-
"e-mail",
|
|
14064
|
-
"earth",
|
|
14065
|
-
"ecommerce",
|
|
14066
|
-
"edit",
|
|
14067
|
-
"edits",
|
|
14068
|
-
"editor",
|
|
14069
|
-
"edu",
|
|
14070
|
-
"education",
|
|
14071
|
-
"email",
|
|
14072
|
-
"embed",
|
|
14073
|
-
"embedded",
|
|
14074
|
-
"employment",
|
|
14075
|
-
"employments",
|
|
14076
|
-
"empty",
|
|
14077
|
-
"enable",
|
|
14078
|
-
"encrypted",
|
|
14079
|
-
"end",
|
|
14080
|
-
"engine",
|
|
14081
|
-
"enterprise",
|
|
14082
|
-
"enterprises",
|
|
14083
|
-
"entries",
|
|
14084
|
-
"entry",
|
|
14085
|
-
"error",
|
|
14086
|
-
"errorlog",
|
|
14087
|
-
"errors",
|
|
14088
|
-
"eval",
|
|
14089
|
-
"event",
|
|
14090
|
-
"example",
|
|
14091
|
-
"examplecommunity",
|
|
14092
|
-
"exampleopenid",
|
|
14093
|
-
"examplesyn",
|
|
14094
|
-
"examplesyndicated",
|
|
14095
|
-
"exampleusername",
|
|
14096
|
-
"exchange",
|
|
14097
|
-
"exit",
|
|
14098
|
-
"explore",
|
|
14099
|
-
"faq",
|
|
14100
|
-
"faqs",
|
|
14101
|
-
"favorite",
|
|
14102
|
-
"favorites",
|
|
14103
|
-
"favourite",
|
|
14104
|
-
"favourites",
|
|
14105
|
-
"feature",
|
|
14106
|
-
"features",
|
|
14107
|
-
"feed",
|
|
14108
|
-
"feedback",
|
|
14109
|
-
"feedburner",
|
|
14110
|
-
"feedproxy",
|
|
14111
|
-
"feeds",
|
|
14112
|
-
"file",
|
|
14113
|
-
"files",
|
|
14114
|
-
"finance",
|
|
14115
|
-
"folder",
|
|
14116
|
-
"folders",
|
|
14117
|
-
"first",
|
|
14118
|
-
"following",
|
|
14119
|
-
"forgot",
|
|
14120
|
-
"form",
|
|
14121
|
-
"forms",
|
|
14122
|
-
"forum",
|
|
14123
|
-
"forums",
|
|
14124
|
-
"founder",
|
|
14125
|
-
"free",
|
|
14126
|
-
"friend",
|
|
14127
|
-
"friends",
|
|
14128
|
-
"ftp",
|
|
14129
|
-
"fuck",
|
|
14130
|
-
"fun",
|
|
14131
|
-
"fusion",
|
|
14132
|
-
"gadget",
|
|
14133
|
-
"gadgets",
|
|
14134
|
-
"game",
|
|
14135
|
-
"games",
|
|
14136
|
-
"gears",
|
|
14137
|
-
"general",
|
|
14138
|
-
"geographic",
|
|
14139
|
-
"get",
|
|
14140
|
-
"gettingstarted",
|
|
14141
|
-
"gift",
|
|
14142
|
-
"gifts",
|
|
14143
|
-
"gist",
|
|
14144
|
-
"git",
|
|
14145
|
-
"github",
|
|
14146
|
-
"gmail",
|
|
14147
|
-
"go",
|
|
14148
|
-
"golang",
|
|
14149
|
-
"goto",
|
|
14150
|
-
"gov",
|
|
14151
|
-
"graph",
|
|
14152
|
-
"graphs",
|
|
14153
|
-
"group",
|
|
14154
|
-
"groups",
|
|
14155
|
-
"guest",
|
|
14156
|
-
"guests",
|
|
14157
|
-
"guide",
|
|
14158
|
-
"guides",
|
|
14159
|
-
"hack",
|
|
14160
|
-
"hacks",
|
|
14161
|
-
"head",
|
|
14162
|
-
"help",
|
|
14163
|
-
"home",
|
|
14164
|
-
"homepage",
|
|
14165
|
-
"host",
|
|
14166
|
-
"hosting",
|
|
14167
|
-
"hostmaster",
|
|
14168
|
-
"hostname",
|
|
14169
|
-
"howto",
|
|
14170
|
-
"how-to",
|
|
14171
|
-
"how_to",
|
|
14172
|
-
"html",
|
|
14173
|
-
"htrnl",
|
|
14174
|
-
"http",
|
|
14175
|
-
"httpd",
|
|
14176
|
-
"https",
|
|
14177
|
-
"i",
|
|
14178
|
-
"iamges",
|
|
14179
|
-
"icon",
|
|
14180
|
-
"icons",
|
|
14181
|
-
"id",
|
|
14182
|
-
"idea",
|
|
14183
|
-
"ideas",
|
|
14184
|
-
"im",
|
|
14185
|
-
"image",
|
|
14186
|
-
"images",
|
|
14187
|
-
"img",
|
|
14188
|
-
"imap",
|
|
14189
|
-
"inbox",
|
|
14190
|
-
"inboxes",
|
|
14191
|
-
"index",
|
|
14192
|
-
"indexes",
|
|
14193
|
-
"info",
|
|
14194
|
-
"information",
|
|
14195
|
-
"inquiry",
|
|
14196
|
-
"intranet",
|
|
14197
|
-
"investor",
|
|
14198
|
-
"investors",
|
|
14199
|
-
"invitation",
|
|
14200
|
-
"invitations",
|
|
14201
|
-
"invite",
|
|
14202
|
-
"invoice",
|
|
14203
|
-
"invoices",
|
|
14204
|
-
"imac",
|
|
14205
|
-
"ios",
|
|
14206
|
-
"ipad",
|
|
14207
|
-
"iphone",
|
|
14208
|
-
"irc",
|
|
14209
|
-
"irnages",
|
|
14210
|
-
"irng",
|
|
14211
|
-
"is",
|
|
14212
|
-
"issue",
|
|
14213
|
-
"issues",
|
|
14214
|
-
"it",
|
|
14215
|
-
"item",
|
|
14216
|
-
"items",
|
|
14217
|
-
"java",
|
|
14218
|
-
"javascript",
|
|
14219
|
-
"job",
|
|
14220
|
-
"jobs",
|
|
14221
|
-
"join",
|
|
14222
|
-
"js",
|
|
14223
|
-
"json",
|
|
14224
|
-
"jump",
|
|
14225
|
-
"kb",
|
|
14226
|
-
"knowledge-base",
|
|
14227
|
-
"knowledgebase",
|
|
14228
|
-
"lab",
|
|
14229
|
-
"labs",
|
|
14230
|
-
"language",
|
|
14231
|
-
"languages",
|
|
14232
|
-
"last",
|
|
14233
|
-
"ldap_status",
|
|
14234
|
-
"ldap-status",
|
|
14235
|
-
"ldapstatus",
|
|
14236
|
-
"legal",
|
|
14237
|
-
"license",
|
|
14238
|
-
"licenses",
|
|
14239
|
-
"link",
|
|
14240
|
-
"links",
|
|
14241
|
-
"linux",
|
|
14242
|
-
"list",
|
|
14243
|
-
"lists",
|
|
14244
|
-
"livejournal",
|
|
14245
|
-
"lj",
|
|
14246
|
-
"local",
|
|
14247
|
-
"locale",
|
|
14248
|
-
"location",
|
|
14249
|
-
"log",
|
|
14250
|
-
"log-in",
|
|
14251
|
-
"log-out",
|
|
14252
|
-
"login",
|
|
14253
|
-
"logout",
|
|
14254
|
-
"logs",
|
|
14255
|
-
"log_in",
|
|
14256
|
-
"log_out",
|
|
14257
|
-
"m",
|
|
14258
|
-
"mac",
|
|
14259
|
-
"macos",
|
|
14260
|
-
"macosx",
|
|
14261
|
-
"mac-os",
|
|
14262
|
-
"mac-os-x",
|
|
14263
|
-
"mac_os_x",
|
|
14264
|
-
"mail",
|
|
14265
|
-
"mailer",
|
|
14266
|
-
"mailing",
|
|
14267
|
-
"main",
|
|
14268
|
-
"maintenance",
|
|
14269
|
-
"manage",
|
|
14270
|
-
"manager",
|
|
14271
|
-
"manual",
|
|
14272
|
-
"map",
|
|
14273
|
-
"maps",
|
|
14274
|
-
"marketing",
|
|
14275
|
-
"master",
|
|
14276
|
-
"me",
|
|
14277
|
-
"media",
|
|
14278
|
-
"member",
|
|
14279
|
-
"members",
|
|
14280
|
-
"memories",
|
|
14281
|
-
"memory",
|
|
14282
|
-
"merchandise",
|
|
14283
|
-
"message",
|
|
14284
|
-
"messages",
|
|
14285
|
-
"messenger",
|
|
14286
|
-
"mg",
|
|
14287
|
-
"microblog",
|
|
14288
|
-
"microblogs",
|
|
14289
|
-
"mine",
|
|
14290
|
-
"mis",
|
|
14291
|
-
"misc",
|
|
14292
|
-
"mms",
|
|
14293
|
-
"mob",
|
|
14294
|
-
"mobile",
|
|
14295
|
-
"model",
|
|
14296
|
-
"models",
|
|
14297
|
-
"money",
|
|
14298
|
-
"movie",
|
|
14299
|
-
"movies",
|
|
14300
|
-
"mp3",
|
|
14301
|
-
"mp4",
|
|
14302
|
-
"msg",
|
|
14303
|
-
"msn",
|
|
14304
|
-
"music",
|
|
14305
|
-
"mx",
|
|
14306
|
-
"my",
|
|
14307
|
-
"mymme",
|
|
14308
|
-
"mysql",
|
|
14309
|
-
"name",
|
|
14310
|
-
"named",
|
|
14311
|
-
"nan",
|
|
14312
|
-
"navi",
|
|
14313
|
-
"navigation",
|
|
14314
|
-
"net",
|
|
14315
|
-
"network",
|
|
14316
|
-
"networks",
|
|
14317
|
-
"new",
|
|
14318
|
-
"news",
|
|
14319
|
-
"newsletter",
|
|
14320
|
-
"nick",
|
|
14321
|
-
"nickname",
|
|
14322
|
-
"nil",
|
|
14323
|
-
"none",
|
|
14324
|
-
"notes",
|
|
14325
|
-
"noticias",
|
|
14326
|
-
"notification",
|
|
14327
|
-
"notifications",
|
|
14328
|
-
"notify",
|
|
14329
|
-
"ns",
|
|
14330
|
-
"ns1",
|
|
14331
|
-
"ns2",
|
|
14332
|
-
"ns3",
|
|
14333
|
-
"ns4",
|
|
14334
|
-
"ns5",
|
|
14335
|
-
"null",
|
|
14336
|
-
"oauth",
|
|
14337
|
-
"oauth-clients",
|
|
14338
|
-
"oauth_clients",
|
|
14339
|
-
"ocsp",
|
|
14340
|
-
"offer",
|
|
14341
|
-
"offers",
|
|
14342
|
-
"official",
|
|
14343
|
-
"old",
|
|
14344
|
-
"online",
|
|
14345
|
-
"openid",
|
|
14346
|
-
"operator",
|
|
14347
|
-
"option",
|
|
14348
|
-
"options",
|
|
14349
|
-
"order",
|
|
14350
|
-
"orders",
|
|
14351
|
-
"org",
|
|
14352
|
-
"organization",
|
|
14353
|
-
"organizations",
|
|
14354
|
-
"other",
|
|
14355
|
-
"overview",
|
|
14356
|
-
"owner",
|
|
14357
|
-
"owners",
|
|
14358
|
-
"p0rn",
|
|
14359
|
-
"pack",
|
|
14360
|
-
"page",
|
|
14361
|
-
"pager",
|
|
14362
|
-
"pages",
|
|
14363
|
-
"paid",
|
|
14364
|
-
"panel",
|
|
14365
|
-
"partner",
|
|
14366
|
-
"partnerpage",
|
|
14367
|
-
"partners",
|
|
14368
|
-
"password",
|
|
14369
|
-
"patch",
|
|
14370
|
-
"pay",
|
|
14371
|
-
"payment",
|
|
14372
|
-
"people",
|
|
14373
|
-
"perl",
|
|
14374
|
-
"person",
|
|
14375
|
-
"phone",
|
|
14376
|
-
"photo",
|
|
14377
|
-
"photoalbum",
|
|
14378
|
-
"photos",
|
|
14379
|
-
"php",
|
|
14380
|
-
"phpmyadmin",
|
|
14381
|
-
"phppgadmin",
|
|
14382
|
-
"phpredisadmin",
|
|
14383
|
-
"pic",
|
|
14384
|
-
"pics",
|
|
14385
|
-
"picture",
|
|
14386
|
-
"pictures",
|
|
14387
|
-
"ping",
|
|
14388
|
-
"pixel",
|
|
14389
|
-
"places",
|
|
14390
|
-
"plan",
|
|
14391
|
-
"plans",
|
|
14392
|
-
"plugin",
|
|
14393
|
-
"plugins",
|
|
14394
|
-
"podcasts",
|
|
14395
|
-
"policies",
|
|
14396
|
-
"policy",
|
|
14397
|
-
"pop",
|
|
14398
|
-
"pop3",
|
|
14399
|
-
"popular",
|
|
14400
|
-
"porn",
|
|
14401
|
-
"portal",
|
|
14402
|
-
"portals",
|
|
14403
|
-
"post",
|
|
14404
|
-
"postfix",
|
|
14405
|
-
"postmaster",
|
|
14406
|
-
"posts",
|
|
14407
|
-
"pr",
|
|
14408
|
-
"pr0n",
|
|
14409
|
-
"premium",
|
|
14410
|
-
"press",
|
|
14411
|
-
"price",
|
|
14412
|
-
"pricing",
|
|
14413
|
-
"principles",
|
|
14414
|
-
"print",
|
|
14415
|
-
"privacy",
|
|
14416
|
-
"privacy-policy",
|
|
14417
|
-
"privacypolicy",
|
|
14418
|
-
"privacy_policy",
|
|
14419
|
-
"private",
|
|
14420
|
-
"prod",
|
|
14421
|
-
"product",
|
|
14422
|
-
"production",
|
|
14423
|
-
"products",
|
|
14424
|
-
"profile",
|
|
14425
|
-
"profiles",
|
|
14426
|
-
"project",
|
|
14427
|
-
"projects",
|
|
14428
|
-
"promo",
|
|
14429
|
-
"promotions",
|
|
14430
|
-
"proxies",
|
|
14431
|
-
"proxy",
|
|
14432
|
-
"pub",
|
|
14433
|
-
"public",
|
|
14434
|
-
"purchase",
|
|
14435
|
-
"purpose",
|
|
14436
|
-
"put",
|
|
14437
|
-
"python",
|
|
14438
|
-
"queries",
|
|
14439
|
-
"query",
|
|
14440
|
-
"radio",
|
|
14441
|
-
"random",
|
|
14442
|
-
"ranking",
|
|
14443
|
-
"read",
|
|
14444
|
-
"reader",
|
|
14445
|
-
"readme",
|
|
14446
|
-
"recent",
|
|
14447
|
-
"recruit",
|
|
14448
|
-
"recruitment",
|
|
14449
|
-
"redirect",
|
|
14450
|
-
"register",
|
|
14451
|
-
"registration",
|
|
14452
|
-
"release",
|
|
14453
|
-
"remove",
|
|
14454
|
-
"replies",
|
|
14455
|
-
"report",
|
|
14456
|
-
"reports",
|
|
14457
|
-
"repositories",
|
|
14458
|
-
"repository",
|
|
14459
|
-
"req",
|
|
14460
|
-
"request",
|
|
14461
|
-
"requests",
|
|
14462
|
-
"research",
|
|
14463
|
-
"reset",
|
|
14464
|
-
"resolve",
|
|
14465
|
-
"resolver",
|
|
14466
|
-
"review",
|
|
14467
|
-
"rnail",
|
|
14468
|
-
"rnicrosoft",
|
|
14469
|
-
"roc",
|
|
14470
|
-
"root",
|
|
14471
|
-
"rss",
|
|
14472
|
-
"ruby",
|
|
14473
|
-
"rule",
|
|
14474
|
-
"sag",
|
|
14475
|
-
"sale",
|
|
14476
|
-
"sales",
|
|
14477
|
-
"sample",
|
|
14478
|
-
"samples",
|
|
14479
|
-
"sandbox",
|
|
14480
|
-
"save",
|
|
14481
|
-
"scholar",
|
|
14482
|
-
"school",
|
|
14483
|
-
"schools",
|
|
14484
|
-
"script",
|
|
14485
|
-
"scripts",
|
|
14486
|
-
"search",
|
|
14487
|
-
"secure",
|
|
14488
|
-
"security",
|
|
14489
|
-
"self",
|
|
14490
|
-
"seminars",
|
|
14491
|
-
"send",
|
|
14492
|
-
"server",
|
|
14493
|
-
"server-info",
|
|
14494
|
-
"server_info",
|
|
14495
|
-
"server-status",
|
|
14496
|
-
"server_status",
|
|
14497
|
-
"servers",
|
|
14498
|
-
"service",
|
|
14499
|
-
"services",
|
|
14500
|
-
"session",
|
|
14501
|
-
"sessions",
|
|
14502
|
-
"setting",
|
|
14503
|
-
"settings",
|
|
14504
|
-
"setup",
|
|
14505
|
-
"share",
|
|
14506
|
-
"shop",
|
|
14507
|
-
"shopping",
|
|
14508
|
-
"shortcut",
|
|
14509
|
-
"shortcuts",
|
|
14510
|
-
"show",
|
|
14511
|
-
"sign-in",
|
|
14512
|
-
"sign-up",
|
|
14513
|
-
"signin",
|
|
14514
|
-
"signout",
|
|
14515
|
-
"signup",
|
|
14516
|
-
"sign_in",
|
|
14517
|
-
"sign_up",
|
|
14518
|
-
"site",
|
|
14519
|
-
"sitemap",
|
|
14520
|
-
"sitemaps",
|
|
14521
|
-
"sitenews",
|
|
14522
|
-
"sites",
|
|
14523
|
-
"sketchup",
|
|
14524
|
-
"sky",
|
|
14525
|
-
"slash",
|
|
14526
|
-
"slashinvoice",
|
|
14527
|
-
"slut",
|
|
14528
|
-
"smartphone",
|
|
14529
|
-
"sms",
|
|
14530
|
-
"smtp",
|
|
14531
|
-
"soap",
|
|
14532
|
-
"software",
|
|
14533
|
-
"sorry",
|
|
14534
|
-
"source",
|
|
14535
|
-
"spec",
|
|
14536
|
-
"special",
|
|
14537
|
-
"spreadsheet",
|
|
14538
|
-
"spreadsheets",
|
|
14539
|
-
"sql",
|
|
14540
|
-
"src",
|
|
14541
|
-
"srntp",
|
|
14542
|
-
"ssh",
|
|
14543
|
-
"ssl",
|
|
14544
|
-
"ssladmin",
|
|
14545
|
-
"ssladministrator",
|
|
14546
|
-
"sslwebmaster",
|
|
14547
|
-
"ssytem",
|
|
14548
|
-
"staff",
|
|
14549
|
-
"stage",
|
|
14550
|
-
"staging",
|
|
14551
|
-
"start",
|
|
14552
|
-
"stat",
|
|
14553
|
-
"state",
|
|
14554
|
-
"static",
|
|
14555
|
-
"statistics",
|
|
14556
|
-
"stats",
|
|
14557
|
-
"status",
|
|
14558
|
-
"store",
|
|
14559
|
-
"stores",
|
|
14560
|
-
"stories",
|
|
14561
|
-
"style",
|
|
14562
|
-
"styleguide",
|
|
14563
|
-
"styles",
|
|
14564
|
-
"stylesheet",
|
|
14565
|
-
"stylesheets",
|
|
14566
|
-
"subdomain",
|
|
14567
|
-
"subscribe",
|
|
14568
|
-
"subscription",
|
|
14569
|
-
"subscriptions",
|
|
14570
|
-
"suggest",
|
|
14571
|
-
"suggestqueries",
|
|
14572
|
-
"support",
|
|
14573
|
-
"survey",
|
|
14574
|
-
"surveys",
|
|
14575
|
-
"surveytool",
|
|
14576
|
-
"svn",
|
|
14577
|
-
"swf",
|
|
14578
|
-
"syn",
|
|
14579
|
-
"sync",
|
|
14580
|
-
"syndicated",
|
|
14581
|
-
"sys",
|
|
14582
|
-
"sysadmin",
|
|
14583
|
-
"sysadministrator",
|
|
14584
|
-
"sysadmins",
|
|
14585
|
-
"system",
|
|
14586
|
-
"tablet",
|
|
14587
|
-
"tablets",
|
|
14588
|
-
"tag",
|
|
14589
|
-
"tags",
|
|
14590
|
-
"talk",
|
|
14591
|
-
"talkgadget",
|
|
14592
|
-
"task",
|
|
14593
|
-
"tasks",
|
|
14594
|
-
"team",
|
|
14595
|
-
"teams",
|
|
14596
|
-
"tech",
|
|
14597
|
-
"telnet",
|
|
14598
|
-
"term",
|
|
14599
|
-
"terms",
|
|
14600
|
-
"terms-of-service",
|
|
14601
|
-
"termsofservice",
|
|
14602
|
-
"terms_of_service",
|
|
14603
|
-
"test",
|
|
14604
|
-
"testing",
|
|
14605
|
-
"tests",
|
|
14606
|
-
"text",
|
|
14607
|
-
"theme",
|
|
14608
|
-
"themes",
|
|
14609
|
-
"thread",
|
|
14610
|
-
"threads",
|
|
14611
|
-
"ticket",
|
|
14612
|
-
"tickets",
|
|
14613
|
-
"tmp",
|
|
14614
|
-
"todo",
|
|
14615
|
-
"to-do",
|
|
14616
|
-
"to_do",
|
|
14617
|
-
"toml",
|
|
14618
|
-
"tool",
|
|
14619
|
-
"toolbar",
|
|
14620
|
-
"toolbars",
|
|
14621
|
-
"tools",
|
|
14622
|
-
"top",
|
|
14623
|
-
"topic",
|
|
14624
|
-
"topics",
|
|
14625
|
-
"tos",
|
|
14626
|
-
"tour",
|
|
14627
|
-
"trac",
|
|
14628
|
-
"translate",
|
|
14629
|
-
"trace",
|
|
14630
|
-
"translation",
|
|
14631
|
-
"translations",
|
|
14632
|
-
"translator",
|
|
14633
|
-
"trends",
|
|
14634
|
-
"tutorial",
|
|
14635
|
-
"tux",
|
|
14636
|
-
"tv",
|
|
14637
|
-
"twitter",
|
|
14638
|
-
"txt",
|
|
14639
|
-
"ul",
|
|
14640
|
-
"undef",
|
|
14641
|
-
"unfollow",
|
|
14642
|
-
"unsubscribe",
|
|
14643
|
-
"update",
|
|
14644
|
-
"updates",
|
|
14645
|
-
"upgrade",
|
|
14646
|
-
"upgrades",
|
|
14647
|
-
"upi",
|
|
14648
|
-
"upload",
|
|
14649
|
-
"uploads",
|
|
14650
|
-
"url",
|
|
14651
|
-
"usage",
|
|
14652
|
-
"user",
|
|
14653
|
-
"username",
|
|
14654
|
-
"usernames",
|
|
14655
|
-
"users",
|
|
14656
|
-
"uuid",
|
|
14657
|
-
"validation",
|
|
14658
|
-
"validations",
|
|
14659
|
-
"ver",
|
|
14660
|
-
"version",
|
|
14661
|
-
"video",
|
|
14662
|
-
"videos",
|
|
14663
|
-
"video-stats",
|
|
14664
|
-
"visitor",
|
|
14665
|
-
"visitors",
|
|
14666
|
-
"voice",
|
|
14667
|
-
"volunteer",
|
|
14668
|
-
"volunteers",
|
|
14669
|
-
"w",
|
|
14670
|
-
"watch",
|
|
14671
|
-
"wave",
|
|
14672
|
-
"weather",
|
|
14673
|
-
"web",
|
|
14674
|
-
"webdisk",
|
|
14675
|
-
"webhook",
|
|
14676
|
-
"webhooks",
|
|
14677
|
-
"webmail",
|
|
14678
|
-
"webmaster",
|
|
14679
|
-
"webmasters",
|
|
14680
|
-
"webrnail",
|
|
14681
|
-
"website",
|
|
14682
|
-
"websites",
|
|
14683
|
-
"welcome",
|
|
14684
|
-
"whm",
|
|
14685
|
-
"whois",
|
|
14686
|
-
"widget",
|
|
14687
|
-
"widgets",
|
|
14688
|
-
"wifi",
|
|
14689
|
-
"wiki",
|
|
14690
|
-
"wikis",
|
|
14691
|
-
"win",
|
|
14692
|
-
"windows",
|
|
14693
|
-
"word",
|
|
14694
|
-
"work",
|
|
14695
|
-
"works",
|
|
14696
|
-
"workshop",
|
|
14697
|
-
"wpad",
|
|
14698
|
-
"ww",
|
|
14699
|
-
"wws",
|
|
14700
|
-
"www",
|
|
14701
|
-
"wwws",
|
|
14702
|
-
"wwww",
|
|
14703
|
-
"xfn",
|
|
14704
|
-
"xhtml",
|
|
14705
|
-
"xhtrnl",
|
|
14706
|
-
"xml",
|
|
14707
|
-
"xmpp",
|
|
14708
|
-
"xpg",
|
|
14709
|
-
"xxx",
|
|
14710
|
-
"yaml",
|
|
14711
|
-
"year",
|
|
14712
|
-
"yml",
|
|
14713
|
-
"you",
|
|
14714
|
-
"yourdomain",
|
|
14715
|
-
"yourname",
|
|
14716
|
-
"yoursite",
|
|
14717
|
-
"yourusername"
|
|
14718
|
-
];
|
|
14719
|
-
var famousAccounts = [
|
|
14720
|
-
"10ronaldinho",
|
|
14721
|
-
"3gerardpique",
|
|
14722
|
-
"aclu",
|
|
14723
|
-
"adele",
|
|
14724
|
-
"akshaykumar",
|
|
14725
|
-
"aliaa08",
|
|
14726
|
-
"aliciakeys",
|
|
14727
|
-
"amitshah",
|
|
14728
|
-
"andresiniesta8",
|
|
14729
|
-
"anushkasharma",
|
|
14730
|
-
"arianagrande",
|
|
14731
|
-
"arrahman",
|
|
14732
|
-
"arvindkejriwal",
|
|
14733
|
-
"avrillavigne",
|
|
14734
|
-
"barackobama",
|
|
14735
|
-
"bbcbreaking",
|
|
14736
|
-
"bbcworld",
|
|
14737
|
-
"beingsalmankhan",
|
|
14738
|
-
"billgates",
|
|
14739
|
-
"britneyspears",
|
|
14740
|
-
"brunomars",
|
|
14741
|
-
"bts_bighit",
|
|
14742
|
-
"bts_twt",
|
|
14743
|
-
"championsleague",
|
|
14744
|
-
"chrisbrown",
|
|
14745
|
-
"cnnbrk",
|
|
14746
|
-
"coldplay",
|
|
14747
|
-
"conanobrien",
|
|
14748
|
-
"cristiano",
|
|
14749
|
-
"danieltosh",
|
|
14750
|
-
"davidguetta",
|
|
14751
|
-
"ddlovato",
|
|
14752
|
-
"deepikapadukone",
|
|
14753
|
-
"drake",
|
|
14754
|
-
"elisapie",
|
|
14755
|
-
"ellendegeneres",
|
|
14756
|
-
"elonmusk",
|
|
14757
|
-
"eminem",
|
|
14758
|
-
"emmawatson",
|
|
14759
|
-
"fcbarcelona",
|
|
14760
|
-
"foxnews",
|
|
14761
|
-
"harry_styles",
|
|
14762
|
-
"hillaryclinton",
|
|
14763
|
-
"iamsrk",
|
|
14764
|
-
"ihrithik",
|
|
14765
|
-
"imvkohli",
|
|
14766
|
-
"instagram",
|
|
14767
|
-
"jimmyfallon",
|
|
14768
|
-
"jlo",
|
|
14769
|
-
"joebiden",
|
|
14770
|
-
"jtimberlake",
|
|
14771
|
-
"justinbieber",
|
|
14772
|
-
"kaka",
|
|
14773
|
-
"kanyewest",
|
|
14774
|
-
"katyperry",
|
|
14775
|
-
"kendalljenner",
|
|
14776
|
-
"kevinhart4real",
|
|
14777
|
-
"khloekardashian",
|
|
14778
|
-
"kimkardashian",
|
|
14779
|
-
"kingjames",
|
|
14780
|
-
"kourtneykardash",
|
|
14781
|
-
"kyliejenner",
|
|
14782
|
-
"ladygaga",
|
|
14783
|
-
"liampayne",
|
|
14784
|
-
"liltunechi",
|
|
14785
|
-
"manutd",
|
|
14786
|
-
"mariahcarey",
|
|
14787
|
-
"mileycyrus",
|
|
14788
|
-
"mohamadalarefe",
|
|
14789
|
-
"narendramodi",
|
|
14790
|
-
"nasa",
|
|
14791
|
-
"nba",
|
|
14792
|
-
"neymarjr",
|
|
14793
|
-
"nfl",
|
|
14794
|
-
"niallofficial",
|
|
14795
|
-
"nickiminaj",
|
|
14796
|
-
"npr",
|
|
14797
|
-
"nytimes",
|
|
14798
|
-
"onedirection",
|
|
14799
|
-
"oprah",
|
|
14800
|
-
"pink",
|
|
14801
|
-
"pitbull",
|
|
14802
|
-
"playstation",
|
|
14803
|
-
"pmoindia",
|
|
14804
|
-
"premierleague",
|
|
14805
|
-
"priyankachopra",
|
|
14806
|
-
"realdonaldtrump",
|
|
14807
|
-
"ricky_martin",
|
|
14808
|
-
"rihanna",
|
|
14809
|
-
"sachin_rt",
|
|
14810
|
-
"selenagomez",
|
|
14811
|
-
"shakira",
|
|
14812
|
-
"shawnmendes",
|
|
14813
|
-
"sportscenter",
|
|
14814
|
-
"srbachchan",
|
|
14815
|
-
"subhisharma100",
|
|
14816
|
-
"taylorswift13",
|
|
14817
|
-
"theeconomist",
|
|
14818
|
-
"twitter",
|
|
14819
|
-
"virendersehwag",
|
|
14820
|
-
"whitehouse45",
|
|
14821
|
-
"wizkhalifa",
|
|
14822
|
-
"youtube",
|
|
14823
|
-
"zaynmalik",
|
|
14824
|
-
"beyonce",
|
|
14825
|
-
"billieeilish",
|
|
14826
|
-
"leomessi",
|
|
14827
|
-
"natgeo",
|
|
14828
|
-
"nike",
|
|
14829
|
-
"snoopdogg",
|
|
14830
|
-
"taylorswift",
|
|
14831
|
-
"therock",
|
|
14832
|
-
"10downingstreet",
|
|
14833
|
-
"aoc",
|
|
14834
|
-
"carterjwm",
|
|
14835
|
-
"dril",
|
|
14836
|
-
"gretathunberg",
|
|
14837
|
-
"kamalaharris",
|
|
14838
|
-
"kremlinrussia_e",
|
|
14839
|
-
"potus",
|
|
14840
|
-
"rondesantisfl",
|
|
14841
|
-
"ukraine",
|
|
14842
|
-
"washingtonpost",
|
|
14843
|
-
"yousuck2020",
|
|
14844
|
-
"zelenskyyua",
|
|
14845
|
-
"akiko_lawson",
|
|
14846
|
-
"ariyoshihiroiki",
|
|
14847
|
-
"asahi",
|
|
14848
|
-
"dozle_official",
|
|
14849
|
-
"famima_now",
|
|
14850
|
-
"ff_xiv_jp",
|
|
14851
|
-
"fujitv",
|
|
14852
|
-
"gigazine",
|
|
14853
|
-
"hajimesyacho",
|
|
14854
|
-
"hikakin",
|
|
14855
|
-
"jocx",
|
|
14856
|
-
"jotx",
|
|
14857
|
-
"kiyo_saiore",
|
|
14858
|
-
"mainichi",
|
|
14859
|
-
"matsu_bouzu",
|
|
14860
|
-
"naomiosaka",
|
|
14861
|
-
"nhk",
|
|
14862
|
-
"nikkei",
|
|
14863
|
-
"nintendo",
|
|
14864
|
-
"ntv",
|
|
14865
|
-
"oowareware1945",
|
|
14866
|
-
"pamyurin",
|
|
14867
|
-
"poke_times",
|
|
14868
|
-
"rolaworld",
|
|
14869
|
-
"seikintv",
|
|
14870
|
-
"starbucksjapan",
|
|
14871
|
-
"tbs",
|
|
14872
|
-
"tbs_pr",
|
|
14873
|
-
"tvasahi",
|
|
14874
|
-
"tvtokyo",
|
|
14875
|
-
"yokoono",
|
|
14876
|
-
"yomiuri_online",
|
|
14877
|
-
"brasildefato",
|
|
14878
|
-
"claudialeitte",
|
|
14879
|
-
"correio",
|
|
14880
|
-
"em_com",
|
|
14881
|
-
"estadao",
|
|
14882
|
-
"folha",
|
|
14883
|
-
"gazetadopovo",
|
|
14884
|
-
"ivetesangalo",
|
|
14885
|
-
"jairbolsonaro",
|
|
14886
|
-
"jornaldobrasil",
|
|
14887
|
-
"jornaloglobo",
|
|
14888
|
-
"lucianohuck",
|
|
14889
|
-
"lulaoficial",
|
|
14890
|
-
"marcosmion",
|
|
14891
|
-
"paulocoelho",
|
|
14892
|
-
"portalr7",
|
|
14893
|
-
"rede_globo",
|
|
14894
|
-
"zerohora"
|
|
14895
|
-
];
|
|
14896
|
-
var reservedSubdomains = [
|
|
14897
|
-
...atpSpecific,
|
|
14898
|
-
...commonlyReserved,
|
|
14899
|
-
...famousAccounts
|
|
14900
|
-
].reduce((acc, cur) => {
|
|
14901
|
-
return {
|
|
14902
|
-
...acc,
|
|
14903
|
-
[cur]: true
|
|
14904
|
-
};
|
|
14905
|
-
}, {});
|
|
14906
|
-
|
|
14907
|
-
// ../identifier/src/handle.ts
|
|
14908
|
-
var ensureValidHandle = (handle2) => {
|
|
14909
|
-
if (!/^[a-zA-Z0-9.-]*$/.test(handle2)) {
|
|
14910
|
-
throw new InvalidHandleError(
|
|
14911
|
-
"Disallowed characters in handle (ASCII letters, digits, dashes, periods only)"
|
|
14912
|
-
);
|
|
14913
|
-
}
|
|
14914
|
-
if (handle2.length > 253) {
|
|
14915
|
-
throw new InvalidHandleError("Handle is too long (253 chars max)");
|
|
14916
|
-
}
|
|
14917
|
-
const labels = handle2.split(".");
|
|
14918
|
-
if (labels.length < 2) {
|
|
14919
|
-
throw new InvalidHandleError("Handle domain needs at least two parts");
|
|
14920
|
-
}
|
|
14921
|
-
for (let i = 0; i < labels.length; i++) {
|
|
14922
|
-
const l = labels[i];
|
|
14923
|
-
if (l.length < 1) {
|
|
14924
|
-
throw new InvalidHandleError("Handle parts can not be empty");
|
|
14925
|
-
}
|
|
14926
|
-
if (l.length > 63) {
|
|
14927
|
-
throw new InvalidHandleError("Handle part too long (max 63 chars)");
|
|
14928
|
-
}
|
|
14929
|
-
if (l.endsWith("-") || l.startsWith("-")) {
|
|
14930
|
-
throw new InvalidHandleError(
|
|
14931
|
-
"Handle parts can not start or end with hyphens"
|
|
14932
|
-
);
|
|
14933
|
-
}
|
|
14934
|
-
if (i + 1 == labels.length && !/^[a-zA-Z]/.test(l)) {
|
|
14935
|
-
throw new InvalidHandleError(
|
|
14936
|
-
"Handle final component (TLD) must start with ASCII letter"
|
|
14937
|
-
);
|
|
14938
|
-
}
|
|
14939
|
-
}
|
|
14940
|
-
};
|
|
14941
|
-
var InvalidHandleError = class extends Error {
|
|
14942
|
-
};
|
|
14943
|
-
|
|
14944
|
-
// ../identifier/src/did.ts
|
|
14945
|
-
var ensureValidDid = (did2) => {
|
|
14946
|
-
if (!/^[a-zA-Z0-9._:%-]*$/.test(did2)) {
|
|
14947
|
-
throw new InvalidDidError(
|
|
14948
|
-
"Disallowed characters in DID (ASCII letters, digits, and a couple other characters only)"
|
|
14949
|
-
);
|
|
14950
|
-
}
|
|
14951
|
-
const parts = did2.split(":");
|
|
14952
|
-
if (parts.length < 3) {
|
|
14953
|
-
throw new InvalidDidError(
|
|
14954
|
-
"DID requires prefix, method, and method-specific content"
|
|
14955
|
-
);
|
|
14956
|
-
}
|
|
14957
|
-
if (parts[0] != "did") {
|
|
14958
|
-
throw new InvalidDidError('DID requires "did:" prefix');
|
|
14959
|
-
}
|
|
14960
|
-
if (!/^[a-z]+$/.test(parts[1])) {
|
|
14961
|
-
throw new InvalidDidError("DID method must be lower-case letters");
|
|
14962
|
-
}
|
|
14963
|
-
if (did2.endsWith(":") || did2.endsWith("%")) {
|
|
14964
|
-
throw new InvalidDidError('DID can not end with ":" or "%"');
|
|
14965
|
-
}
|
|
14966
|
-
if (did2.length > 2 * 1024) {
|
|
14967
|
-
throw new InvalidDidError("DID is too long (2048 chars max)");
|
|
14968
|
-
}
|
|
14969
|
-
};
|
|
14970
|
-
var InvalidDidError = class extends Error {
|
|
14971
|
-
};
|
|
14972
|
-
|
|
14973
|
-
// ../uri/src/validation.ts
|
|
14974
|
-
var ensureValidAtUri = (uri2) => {
|
|
14975
|
-
const uriParts = uri2.split("#");
|
|
14976
|
-
if (uriParts.length > 2) {
|
|
14977
|
-
throw new Error('ATURI can have at most one "#", separating fragment out');
|
|
14978
|
-
}
|
|
14979
|
-
const fragmentPart = uriParts[1] || null;
|
|
14980
|
-
uri2 = uriParts[0];
|
|
14981
|
-
if (!/^[a-zA-Z0-9._~:@!$&')(*+,;=%/-]*$/.test(uri2)) {
|
|
14982
|
-
throw new Error("Disallowed characters in ATURI (ASCII)");
|
|
14983
|
-
}
|
|
14984
|
-
const parts = uri2.split("/");
|
|
14985
|
-
if (parts.length >= 3 && (parts[0] != "at:" || parts[1].length != 0)) {
|
|
14986
|
-
throw new Error('ATURI must start with "at://"');
|
|
14987
|
-
}
|
|
14988
|
-
if (parts.length < 3) {
|
|
14989
|
-
throw new Error("ATURI requires at least method and authority sections");
|
|
14990
|
-
}
|
|
14991
|
-
try {
|
|
14992
|
-
ensureValidHandle(parts[2]);
|
|
14993
|
-
} catch {
|
|
14994
|
-
try {
|
|
14995
|
-
ensureValidDid(parts[2]);
|
|
14996
|
-
} catch {
|
|
14997
|
-
throw new Error("ATURI authority must be a valid handle or DID");
|
|
14998
|
-
}
|
|
14999
|
-
}
|
|
15000
|
-
if (parts.length >= 4) {
|
|
15001
|
-
if (parts[3].length == 0) {
|
|
15002
|
-
throw new Error(
|
|
15003
|
-
"ATURI can not have a slash after authority without a path segment"
|
|
15004
|
-
);
|
|
15005
|
-
}
|
|
15006
|
-
try {
|
|
15007
|
-
ensureValidNsid(parts[3]);
|
|
15008
|
-
} catch {
|
|
15009
|
-
throw new Error(
|
|
15010
|
-
"ATURI requires first path segment (if supplied) to be valid NSID"
|
|
15011
|
-
);
|
|
15012
|
-
}
|
|
15013
|
-
}
|
|
15014
|
-
if (parts.length >= 5) {
|
|
15015
|
-
if (parts[4].length == 0) {
|
|
15016
|
-
throw new Error(
|
|
15017
|
-
"ATURI can not have a slash after collection, unless record key is provided"
|
|
15018
|
-
);
|
|
15019
|
-
}
|
|
15020
|
-
}
|
|
15021
|
-
if (parts.length >= 6) {
|
|
15022
|
-
throw new Error(
|
|
15023
|
-
"ATURI path can have at most two parts, and no trailing slash"
|
|
15024
|
-
);
|
|
15025
|
-
}
|
|
15026
|
-
if (uriParts.length >= 2 && fragmentPart == null) {
|
|
15027
|
-
throw new Error("ATURI fragment must be non-empty and start with slash");
|
|
15028
|
-
}
|
|
15029
|
-
if (fragmentPart != null) {
|
|
15030
|
-
if (fragmentPart.length == 0 || fragmentPart[0] != "/") {
|
|
15031
|
-
throw new Error("ATURI fragment must be non-empty and start with slash");
|
|
15032
|
-
}
|
|
15033
|
-
if (!/^\/[a-zA-Z0-9._~:@!$&')(*+,;=%[\]/-]*$/.test(fragmentPart)) {
|
|
15034
|
-
throw new Error("Disallowed characters in ATURI fragment (ASCII)");
|
|
15035
|
-
}
|
|
15036
|
-
}
|
|
15037
|
-
if (uri2.length > 8 * 1024) {
|
|
15038
|
-
throw new Error("ATURI is far too long");
|
|
15039
|
-
}
|
|
15040
|
-
};
|
|
15041
|
-
|
|
15042
13995
|
// ../lexicon/src/validators/formats.ts
|
|
15043
13996
|
var import_iso_datestring_validator = __toESM(require_dist());
|
|
15044
13997
|
function datetime(path, value) {
|
|
@@ -16431,7 +15384,12 @@ var ServiceClient = class {
|
|
|
16431
15384
|
return new XRPCResponse(res.body, res.headers);
|
|
16432
15385
|
} else {
|
|
16433
15386
|
if (res.body && isErrorResponseBody(res.body)) {
|
|
16434
|
-
throw new XRPCError(
|
|
15387
|
+
throw new XRPCError(
|
|
15388
|
+
resCode,
|
|
15389
|
+
res.body.error,
|
|
15390
|
+
res.body.message,
|
|
15391
|
+
res.headers
|
|
15392
|
+
);
|
|
16435
15393
|
} else {
|
|
16436
15394
|
throw new XRPCError(resCode);
|
|
16437
15395
|
}
|