@tma.js/init-data 0.2.16 → 0.2.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/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.iife.js +2 -0
- package/dist/index.iife.js.map +1 -0
- package/dist/{index.js → index.mjs} +1 -1
- package/dist/index.mjs.map +1 -0
- package/package.json +12 -10
- package/dist/index.js.map +0 -1
- package/dist/index.umd.cjs +0 -2
- package/dist/index.umd.cjs.map +0 -1
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@tma.js/parsing");function t(o,c){return{from:c,type:o}}const n=e.string(),a=e.string().optional(),s=e.number(),l=e.number().optional(),r=e.boolean().optional();function i(){return e.json({firstName:t(n,"first_name"),id:s,isBot:t(r,"is_bot"),isPremium:t(r,"is_premium"),lastName:t(a,"last_name"),languageCode:t(a,"language_code"),photoUrl:t(a,"photo_url"),username:a})}function p(){return e.json({id:s,type:n,title:n,photoUrl:t(a,"photo_url"),username:a})}const u=e.searchParams({authDate:t(e.date(),"auth_date"),hash:n,user:i().optional(),receiver:i().optional(),chat:p().optional(),chatType:t(a,"chat_type"),chatInstance:t(a,"chat_instance"),canSendAfter:t(l,"can_send_after"),queryId:t(a,"query_id"),startParam:t(a,"start_param")});function m(o){return u.parse(o)}exports.initData=u;exports.parse=m;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/parsing.ts"],"sourcesContent":["import {\n searchParams,\n json,\n string,\n number,\n boolean,\n date,\n type AnyParser,\n} from '@tma.js/parsing';\n\nimport type { InitData, User } from './types.js';\n\nfunction field<P extends AnyParser<any>>(parser: P, from?: string) {\n return {\n from,\n type: parser,\n };\n}\n\nconst str = string();\nconst strOptional = string().optional();\nconst num = number();\nconst numOptional = number().optional();\nconst boolOptional = boolean().optional();\n\nfunction user() {\n return json<User>({\n firstName: field(str, 'first_name'),\n id: num,\n isBot: field(boolOptional, 'is_bot'),\n isPremium: field(boolOptional, 'is_premium'),\n lastName: field(strOptional, 'last_name'),\n languageCode: field(strOptional, 'language_code'),\n photoUrl: field(strOptional, 'photo_url'),\n username: strOptional,\n });\n}\n\nfunction chat() {\n return json({\n id: num,\n type: str,\n title: str,\n photoUrl: field(strOptional, 'photo_url'),\n username: strOptional,\n });\n}\n\n/**\n * Parser used to parse init data, presented as search params.\n * @deprecated Use `parse` method instead.\n */\nexport const initData = searchParams<InitData>({\n authDate: field(date(), 'auth_date'),\n hash: str,\n user: user().optional(),\n receiver: user().optional(),\n chat: chat().optional(),\n chatType: field(strOptional, 'chat_type'),\n chatInstance: field(strOptional, 'chat_instance'),\n canSendAfter: field(numOptional, 'can_send_after'),\n queryId: field(strOptional, 'query_id'),\n startParam: field(strOptional, 'start_param'),\n});\n\n/**\n * Parses incoming value as init data.\n * @param value - value to parse.\n */\nexport function parse(value: string | URLSearchParams): InitData {\n return initData.parse(value);\n}\n"],"names":["field","parser","from","str","string","strOptional","num","number","numOptional","boolOptional","boolean","user","json","chat","initData","searchParams","date","parse","value"],"mappings":"mHAYA,SAASA,EAAgCC,EAAWC,EAAe,CAC1D,MAAA,CACL,KAAAA,EACA,KAAMD,CAAA,CAEV,CAEA,MAAME,EAAMC,EAAO,OAAA,EACbC,EAAcD,EAAAA,SAAS,WACvBE,EAAMC,EAAO,OAAA,EACbC,EAAcD,EAAAA,SAAS,WACvBE,EAAeC,EAAAA,UAAU,WAE/B,SAASC,GAAO,CACd,OAAOC,OAAW,CAChB,UAAWZ,EAAMG,EAAK,YAAY,EAClC,GAAIG,EACJ,MAAON,EAAMS,EAAc,QAAQ,EACnC,UAAWT,EAAMS,EAAc,YAAY,EAC3C,SAAUT,EAAMK,EAAa,WAAW,EACxC,aAAcL,EAAMK,EAAa,eAAe,EAChD,SAAUL,EAAMK,EAAa,WAAW,EACxC,SAAUA,CAAA,CACX,CACH,CAEA,SAASQ,GAAO,CACd,OAAOD,OAAK,CACV,GAAIN,EACJ,KAAMH,EACN,MAAOA,EACP,SAAUH,EAAMK,EAAa,WAAW,EACxC,SAAUA,CAAA,CACX,CACH,CAMO,MAAMS,EAAWC,EAAAA,aAAuB,CAC7C,SAAUf,EAAMgB,OAAK,EAAG,WAAW,EACnC,KAAMb,EACN,KAAMQ,EAAK,EAAE,SAAS,EACtB,SAAUA,EAAK,EAAE,SAAS,EAC1B,KAAME,EAAK,EAAE,SAAS,EACtB,SAAUb,EAAMK,EAAa,WAAW,EACxC,aAAcL,EAAMK,EAAa,eAAe,EAChD,aAAcL,EAAMQ,EAAa,gBAAgB,EACjD,QAASR,EAAMK,EAAa,UAAU,EACtC,WAAYL,EAAMK,EAAa,aAAa,CAC9C,CAAC,EAMM,SAASY,EAAMC,EAA2C,CACxD,OAAAJ,EAAS,MAAMI,CAAK,CAC7B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
this.tmajs=this.tmajs||{};this.tmajs.initData=function(l){"use strict";class s extends Error{constructor(e,{type:i,error:p,field:r}={}){super(`Unable to parse ${r?`field "${r}"`:"value"} as ${i}`,{cause:{value:e,error:p}}),Object.setPrototypeOf(this,s.prototype)}}class d{constructor(e,i,p){this.parser=e,this.isOptional=i,this.isEmpty=p}parse(e){return this.isOptional&&this.isEmpty(e)?void 0:this.parser(e)}optional(){return this.isOptional=!0,this}}function w(t){return t===void 0}function y(){return new TypeError("Does not have any of expected types")}function h(t,{isEmpty:e=w}={}){return function({isEmpty:i=e}={}){return new d(t,!1,i)}}function O(t,e,i){const p={};for(const r in t){const n=t[r];if(!n)continue;let u,c;if("type"in n){const{type:f}=n;u=n.from||r,c=typeof f=="function"?f:f.parse.bind(f)}else u=r,c=typeof n=="function"?n:n.parse.bind(n);let _;const S=e(u);try{_=c(S)}catch(f){throw new s(S,{field:u,type:i,error:f})}_!==void 0&&(p[r]=_)}return p}const j=h(t=>{if(typeof t=="boolean")return t;throw new s(t,{type:"boolean",error:y()})}),b=h(t=>{if(typeof t=="number")return t;if(typeof t=="string"){const e=Number(t);if(!Number.isNaN(e))return e}throw new s(t,{type:"number",error:y()})}),U=b(),$=h(t=>{if(t instanceof Date)return t;try{return new Date(U.parse(t)*1e3)}catch(e){throw new s(t,{type:"Date",error:e})}});function v(t,e={}){const{type:i,isEmpty:p=w}=e;return new d(r=>{let n=r;if(typeof n=="string")try{n=JSON.parse(n)}catch(u){throw new s(r,{type:i,error:u})}if(typeof n!="object"||n===null||Array.isArray(n))throw new s(r,{type:i,error:y()});return O(t,u=>n[u])},!1,p)}const g=h(t=>{if(typeof t=="string"||typeof t=="number")return t.toString();throw new s(t,{type:"string",error:y()})});g();function A(t,e={}){const{type:i,isEmpty:p=w}=e;return new d(r=>{if(typeof r!="string"&&!(r instanceof URLSearchParams))throw new s(r,{type:i,error:y()});const n=typeof r=="string"?new URLSearchParams(r):r;return O(t,u=>{const c=n.get(u);return c===null?void 0:c})},!1,p)}function o(t,e){return{from:e,type:t}}const m=g(),a=g().optional(),D=b(),R=b().optional(),E=j().optional();function N(){return v({firstName:o(m,"first_name"),id:D,isBot:o(E,"is_bot"),isPremium:o(E,"is_premium"),lastName:o(a,"last_name"),languageCode:o(a,"language_code"),photoUrl:o(a,"photo_url"),username:a})}function T(){return v({id:D,type:m,title:m,photoUrl:o(a,"photo_url"),username:a})}const P=A({authDate:o($(),"auth_date"),hash:m,user:N().optional(),receiver:N().optional(),chat:T().optional(),chatType:o(a,"chat_type"),chatInstance:o(a,"chat_instance"),canSendAfter:o(R,"can_send_after"),queryId:o(a,"query_id"),startParam:o(a,"start_param")});function q(t){return P.parse(t)}return l.initData=P,l.parse=q,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}),l}({});
|
|
2
|
+
//# sourceMappingURL=index.iife.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.iife.js","sources":["../../parsing/dist/index.mjs","../src/parsing.ts"],"sourcesContent":["var g = Object.defineProperty;\nvar l = (r, t, e) => t in r ? g(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;\nvar d = (r, t, e) => (l(r, typeof t != \"symbol\" ? t + \"\" : t, e), e);\nimport { toRGB as A } from \"@tma.js/colors\";\nclass i extends Error {\n constructor(t, { type: e, error: o, field: n } = {}) {\n super(`Unable to parse ${n ? `field \"${n}\"` : \"value\"} as ${e}`, {\n cause: { value: t, error: o }\n }), Object.setPrototypeOf(this, i.prototype);\n }\n}\nclass u {\n constructor(t, e, o) {\n this.parser = t, this.isOptional = e, this.isEmpty = o;\n }\n parse(t) {\n return this.isOptional && this.isEmpty(t) ? void 0 : this.parser(t);\n }\n optional() {\n return this.isOptional = !0, this;\n }\n}\nfunction E(r) {\n if (Array.isArray(r))\n return r;\n if (typeof r == \"string\")\n try {\n const t = JSON.parse(r);\n if (Array.isArray(t))\n return t;\n } catch {\n }\n throw new i(r, { type: \"array\" });\n}\nclass O extends u {\n constructor(e, o, n) {\n super(E, o, n);\n d(this, \"itemParser\");\n this.itemParser = typeof e == \"function\" ? e : e.parse.bind(e);\n }\n parse(e) {\n const o = super.parse(e);\n return o === void 0 ? o : o.map(this.itemParser);\n }\n of(e) {\n return this.itemParser = typeof e == \"function\" ? e : e.parse.bind(e), this;\n }\n}\nfunction h(r) {\n return r === void 0;\n}\nfunction D() {\n return new O((r) => r, !1, h);\n}\nfunction f() {\n return new TypeError(\"Does not have any of expected types\");\n}\nfunction y(r, { isEmpty: t = h } = {}) {\n return function({ isEmpty: o = t } = {}) {\n return new u(r, !1, o);\n };\n}\nfunction b(r, t, e) {\n const o = {};\n for (const n in r) {\n const s = r[n];\n if (!s)\n continue;\n let a, p;\n if (\"type\" in s) {\n const { type: c } = s;\n a = s.from || n, p = typeof c == \"function\" ? c : c.parse.bind(c);\n } else\n a = n, p = typeof s == \"function\" ? s : s.parse.bind(s);\n let w;\n const m = t(a);\n try {\n w = p(m);\n } catch (c) {\n throw new i(m, {\n field: a,\n type: e,\n error: c\n });\n }\n w !== void 0 && (o[n] = w);\n }\n return o;\n}\nconst G = y((r) => {\n if (typeof r == \"boolean\")\n return r;\n throw new i(r, { type: \"boolean\", error: f() });\n}), V = y((r) => {\n if (typeof r == \"number\")\n return r;\n if (typeof r == \"string\") {\n const t = Number(r);\n if (!Number.isNaN(t))\n return t;\n }\n throw new i(r, { type: \"number\", error: f() });\n}), N = V(), R = y((r) => {\n if (r instanceof Date)\n return r;\n try {\n return new Date(N.parse(r) * 1e3);\n } catch (t) {\n throw new i(r, { type: \"Date\", error: t });\n }\n});\nfunction U(r, t = {}) {\n const {\n type: e,\n isEmpty: o = h\n } = t;\n return new u((n) => {\n let s = n;\n if (typeof s == \"string\")\n try {\n s = JSON.parse(s);\n } catch (a) {\n throw new i(n, { type: e, error: a });\n }\n if (typeof s != \"object\" || s === null || Array.isArray(s))\n throw new i(n, { type: e, error: f() });\n return b(r, (a) => s[a]);\n }, !1, o);\n}\nconst P = y((r) => {\n if (typeof r == \"string\" || typeof r == \"number\")\n return r.toString();\n throw new i(r, { type: \"string\", error: f() });\n}), S = P(), B = y((r) => {\n try {\n return A(S.parse(r));\n } catch (t) {\n throw new i(r, { type: \"RGB\", error: t });\n }\n});\nfunction $(r, t = {}) {\n const {\n type: e,\n isEmpty: o = h\n } = t;\n return new u((n) => {\n if (typeof n != \"string\" && !(n instanceof URLSearchParams))\n throw new i(n, { type: e, error: f() });\n const s = typeof n == \"string\" ? new URLSearchParams(n) : n;\n return b(r, (a) => {\n const p = s.get(a);\n return p === null ? void 0 : p;\n });\n }, !1, o);\n}\nexport {\n O as ArrayValueParser,\n i as ParsingError,\n u as ValueParser,\n D as array,\n G as boolean,\n y as createValueParserGen,\n R as date,\n U as json,\n V as number,\n B as rgb,\n $ as searchParams,\n P as string\n};\n//# sourceMappingURL=index.mjs.map\n","import {\n searchParams,\n json,\n string,\n number,\n boolean,\n date,\n type AnyParser,\n} from '@tma.js/parsing';\n\nimport type { InitData, User } from './types.js';\n\nfunction field<P extends AnyParser<any>>(parser: P, from?: string) {\n return {\n from,\n type: parser,\n };\n}\n\nconst str = string();\nconst strOptional = string().optional();\nconst num = number();\nconst numOptional = number().optional();\nconst boolOptional = boolean().optional();\n\nfunction user() {\n return json<User>({\n firstName: field(str, 'first_name'),\n id: num,\n isBot: field(boolOptional, 'is_bot'),\n isPremium: field(boolOptional, 'is_premium'),\n lastName: field(strOptional, 'last_name'),\n languageCode: field(strOptional, 'language_code'),\n photoUrl: field(strOptional, 'photo_url'),\n username: strOptional,\n });\n}\n\nfunction chat() {\n return json({\n id: num,\n type: str,\n title: str,\n photoUrl: field(strOptional, 'photo_url'),\n username: strOptional,\n });\n}\n\n/**\n * Parser used to parse init data, presented as search params.\n * @deprecated Use `parse` method instead.\n */\nexport const initData = searchParams<InitData>({\n authDate: field(date(), 'auth_date'),\n hash: str,\n user: user().optional(),\n receiver: user().optional(),\n chat: chat().optional(),\n chatType: field(strOptional, 'chat_type'),\n chatInstance: field(strOptional, 'chat_instance'),\n canSendAfter: field(numOptional, 'can_send_after'),\n queryId: field(strOptional, 'query_id'),\n startParam: field(strOptional, 'start_param'),\n});\n\n/**\n * Parses incoming value as init data.\n * @param value - value to parse.\n */\nexport function parse(value: string | URLSearchParams): InitData {\n return initData.parse(value);\n}\n"],"names":["i","t","e","o","n","u","h","r","f","y","b","s","a","p","c","w","m","G","V","N","R","U","P","$","field","parser","from","str","string","strOptional","num","number","numOptional","boolOptional","boolean","user","json","chat","initData","searchParams","date","parse","value"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/parsing.ts"],"sourcesContent":["import {\n searchParams,\n json,\n string,\n number,\n boolean,\n date,\n type AnyParser,\n} from '@tma.js/parsing';\n\nimport type { InitData, User } from './types.js';\n\nfunction field<P extends AnyParser<any>>(parser: P, from?: string) {\n return {\n from,\n type: parser,\n };\n}\n\nconst str = string();\nconst strOptional = string().optional();\nconst num = number();\nconst numOptional = number().optional();\nconst boolOptional = boolean().optional();\n\nfunction user() {\n return json<User>({\n firstName: field(str, 'first_name'),\n id: num,\n isBot: field(boolOptional, 'is_bot'),\n isPremium: field(boolOptional, 'is_premium'),\n lastName: field(strOptional, 'last_name'),\n languageCode: field(strOptional, 'language_code'),\n photoUrl: field(strOptional, 'photo_url'),\n username: strOptional,\n });\n}\n\nfunction chat() {\n return json({\n id: num,\n type: str,\n title: str,\n photoUrl: field(strOptional, 'photo_url'),\n username: strOptional,\n });\n}\n\n/**\n * Parser used to parse init data, presented as search params.\n * @deprecated Use `parse` method instead.\n */\nexport const initData = searchParams<InitData>({\n authDate: field(date(), 'auth_date'),\n hash: str,\n user: user().optional(),\n receiver: user().optional(),\n chat: chat().optional(),\n chatType: field(strOptional, 'chat_type'),\n chatInstance: field(strOptional, 'chat_instance'),\n canSendAfter: field(numOptional, 'can_send_after'),\n queryId: field(strOptional, 'query_id'),\n startParam: field(strOptional, 'start_param'),\n});\n\n/**\n * Parses incoming value as init data.\n * @param value - value to parse.\n */\nexport function parse(value: string | URLSearchParams): InitData {\n return initData.parse(value);\n}\n"],"names":["field","parser","from","str","string","strOptional","num","number","numOptional","boolOptional","boolean","user","json","chat","initData","searchParams","date","parse","value"],"mappings":";AAYA,SAASA,EAAgCC,GAAWC,GAAe;AAC1D,SAAA;AAAA,IACL,MAAAA;AAAA,IACA,MAAMD;AAAA,EAAA;AAEV;AAEA,MAAME,IAAMC,EAAO,GACbC,IAAcD,IAAS,YACvBE,IAAMC,EAAO,GACbC,IAAcD,IAAS,YACvBE,IAAeC,IAAU;AAE/B,SAASC,IAAO;AACd,SAAOC,EAAW;AAAA,IAChB,WAAWZ,EAAMG,GAAK,YAAY;AAAA,IAClC,IAAIG;AAAA,IACJ,OAAON,EAAMS,GAAc,QAAQ;AAAA,IACnC,WAAWT,EAAMS,GAAc,YAAY;AAAA,IAC3C,UAAUT,EAAMK,GAAa,WAAW;AAAA,IACxC,cAAcL,EAAMK,GAAa,eAAe;AAAA,IAChD,UAAUL,EAAMK,GAAa,WAAW;AAAA,IACxC,UAAUA;AAAA,EAAA,CACX;AACH;AAEA,SAASQ,IAAO;AACd,SAAOD,EAAK;AAAA,IACV,IAAIN;AAAA,IACJ,MAAMH;AAAA,IACN,OAAOA;AAAA,IACP,UAAUH,EAAMK,GAAa,WAAW;AAAA,IACxC,UAAUA;AAAA,EAAA,CACX;AACH;AAMO,MAAMS,IAAWC,EAAuB;AAAA,EAC7C,UAAUf,EAAMgB,EAAK,GAAG,WAAW;AAAA,EACnC,MAAMb;AAAA,EACN,MAAMQ,EAAK,EAAE,SAAS;AAAA,EACtB,UAAUA,EAAK,EAAE,SAAS;AAAA,EAC1B,MAAME,EAAK,EAAE,SAAS;AAAA,EACtB,UAAUb,EAAMK,GAAa,WAAW;AAAA,EACxC,cAAcL,EAAMK,GAAa,eAAe;AAAA,EAChD,cAAcL,EAAMQ,GAAa,gBAAgB;AAAA,EACjD,SAASR,EAAMK,GAAa,UAAU;AAAA,EACtC,YAAYL,EAAMK,GAAa,aAAa;AAC9C,CAAC;AAMM,SAASY,EAAMC,GAA2C;AACxD,SAAAJ,EAAS,MAAMI,CAAK;AAC7B;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tma.js/init-data",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.18",
|
|
4
4
|
"description": "Frontend TypeScript library to make work with Web Apps init data easier.",
|
|
5
5
|
"author": "Vladislav Kibenko <wolfram.deus@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/Telegram-Mini-Apps/tma.js#readme",
|
|
@@ -24,25 +24,25 @@
|
|
|
24
24
|
"dist",
|
|
25
25
|
"src"
|
|
26
26
|
],
|
|
27
|
-
"main": "./dist/index.
|
|
28
|
-
"browser": "./dist/index.
|
|
29
|
-
"module": "./dist/index.
|
|
27
|
+
"main": "./dist/index.cjs",
|
|
28
|
+
"browser": "./dist/index.iife.js",
|
|
29
|
+
"module": "./dist/index.mjs",
|
|
30
30
|
"types": "./dist/dts/index.d.ts",
|
|
31
31
|
"exports": {
|
|
32
32
|
".": {
|
|
33
33
|
"types": "./dist/dts/index.d.ts",
|
|
34
|
-
"import": "./dist/index.
|
|
35
|
-
"require": "./dist/index.
|
|
36
|
-
"default": "./dist/index.
|
|
34
|
+
"import": "./dist/index.mjs",
|
|
35
|
+
"require": "./dist/index.cjs",
|
|
36
|
+
"default": "./dist/index.cjs"
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@tma.js/parsing": "0.1.
|
|
40
|
+
"@tma.js/parsing": "0.1.2"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"tsconfig": "0.0.2",
|
|
44
44
|
"eslint-config-custom": "0.1.0",
|
|
45
|
-
"build-utils": "0.0.
|
|
45
|
+
"build-utils": "0.0.1"
|
|
46
46
|
},
|
|
47
47
|
"publishConfig": {
|
|
48
48
|
"access": "public"
|
|
@@ -51,7 +51,9 @@
|
|
|
51
51
|
"test": "vitest",
|
|
52
52
|
"lint": "eslint -c .eslintrc.cjs src/**/* tests/**/*",
|
|
53
53
|
"typecheck": "tsc --noEmit -p tsconfig.build.json",
|
|
54
|
-
"build": "
|
|
54
|
+
"build": "pnpm run build:default && pnpm run build:iife",
|
|
55
|
+
"build:default": "vite build --config vite.config.ts",
|
|
56
|
+
"build:iife": "vite build --config vite.iife.config.ts",
|
|
55
57
|
"rollup": "pnpm run typecheck && pnpm run build"
|
|
56
58
|
}
|
|
57
59
|
}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/parsing.ts"],"sourcesContent":["import {\n searchParams,\n json,\n string,\n number,\n boolean,\n date,\n type AnyParser,\n} from '@tma.js/parsing';\n\nimport type { InitData, User } from './types.js';\n\nfunction field<P extends AnyParser<any>>(parser: P, from?: string) {\n return {\n from,\n type: parser,\n };\n}\n\nconst str = string();\nconst strOptional = string().optional();\nconst num = number();\nconst numOptional = number().optional();\nconst boolOptional = boolean().optional();\n\nfunction user() {\n return json<User>({\n firstName: field(str, 'first_name'),\n id: num,\n isBot: field(boolOptional, 'is_bot'),\n isPremium: field(boolOptional, 'is_premium'),\n lastName: field(strOptional, 'last_name'),\n languageCode: field(strOptional, 'language_code'),\n photoUrl: field(strOptional, 'photo_url'),\n username: strOptional,\n });\n}\n\nfunction chat() {\n return json({\n id: num,\n type: str,\n title: str,\n photoUrl: field(strOptional, 'photo_url'),\n username: strOptional,\n });\n}\n\n/**\n * Parser used to parse init data, presented as search params.\n * @deprecated Use `parse` method instead.\n */\nexport const initData = searchParams<InitData>({\n authDate: field(date(), 'auth_date'),\n hash: str,\n user: user().optional(),\n receiver: user().optional(),\n chat: chat().optional(),\n chatType: field(strOptional, 'chat_type'),\n chatInstance: field(strOptional, 'chat_instance'),\n canSendAfter: field(numOptional, 'can_send_after'),\n queryId: field(strOptional, 'query_id'),\n startParam: field(strOptional, 'start_param'),\n});\n\n/**\n * Parses incoming value as init data.\n * @param value - value to parse.\n */\nexport function parse(value: string | URLSearchParams): InitData {\n return initData.parse(value);\n}\n"],"names":["field","parser","from","str","string","strOptional","num","number","numOptional","boolOptional","boolean","user","json","chat","initData","searchParams","date","parse","value"],"mappings":";AAYA,SAASA,EAAgCC,GAAWC,GAAe;AAC1D,SAAA;AAAA,IACL,MAAAA;AAAA,IACA,MAAMD;AAAA,EAAA;AAEV;AAEA,MAAME,IAAMC,EAAO,GACbC,IAAcD,IAAS,YACvBE,IAAMC,EAAO,GACbC,IAAcD,IAAS,YACvBE,IAAeC,IAAU;AAE/B,SAASC,IAAO;AACd,SAAOC,EAAW;AAAA,IAChB,WAAWZ,EAAMG,GAAK,YAAY;AAAA,IAClC,IAAIG;AAAA,IACJ,OAAON,EAAMS,GAAc,QAAQ;AAAA,IACnC,WAAWT,EAAMS,GAAc,YAAY;AAAA,IAC3C,UAAUT,EAAMK,GAAa,WAAW;AAAA,IACxC,cAAcL,EAAMK,GAAa,eAAe;AAAA,IAChD,UAAUL,EAAMK,GAAa,WAAW;AAAA,IACxC,UAAUA;AAAA,EAAA,CACX;AACH;AAEA,SAASQ,IAAO;AACd,SAAOD,EAAK;AAAA,IACV,IAAIN;AAAA,IACJ,MAAMH;AAAA,IACN,OAAOA;AAAA,IACP,UAAUH,EAAMK,GAAa,WAAW;AAAA,IACxC,UAAUA;AAAA,EAAA,CACX;AACH;AAMO,MAAMS,IAAWC,EAAuB;AAAA,EAC7C,UAAUf,EAAMgB,EAAK,GAAG,WAAW;AAAA,EACnC,MAAMb;AAAA,EACN,MAAMQ,EAAK,EAAE,SAAS;AAAA,EACtB,UAAUA,EAAK,EAAE,SAAS;AAAA,EAC1B,MAAME,EAAK,EAAE,SAAS;AAAA,EACtB,UAAUb,EAAMK,GAAa,WAAW;AAAA,EACxC,cAAcL,EAAMK,GAAa,eAAe;AAAA,EAChD,cAAcL,EAAMQ,GAAa,gBAAgB;AAAA,EACjD,SAASR,EAAMK,GAAa,UAAU;AAAA,EACtC,YAAYL,EAAMK,GAAa,aAAa;AAC9C,CAAC;AAMM,SAASY,EAAMC,GAA2C;AACxD,SAAAJ,EAAS,MAAMI,CAAK;AAC7B;"}
|
package/dist/index.umd.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(function(n,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("@tma.js/parsing")):typeof define=="function"&&define.amd?define(["exports","@tma.js/parsing"],t):(n=typeof globalThis<"u"?globalThis:n||self,t((n["@tma"]=n["@tma"]||{},n["@tma"]["js/init-data"]={}),n["@tma"]["js/parsing"]))})(this,function(n,t){"use strict";function e(i,f){return{from:f,type:i}}const o=t.string(),a=t.string().optional(),r=t.number(),m=t.number().optional(),s=t.boolean().optional();function u(){return t.json({firstName:e(o,"first_name"),id:r,isBot:e(s,"is_bot"),isPremium:e(s,"is_premium"),lastName:e(a,"last_name"),languageCode:e(a,"language_code"),photoUrl:e(a,"photo_url"),username:a})}function d(){return t.json({id:r,type:o,title:o,photoUrl:e(a,"photo_url"),username:a})}const c=t.searchParams({authDate:e(t.date(),"auth_date"),hash:o,user:u().optional(),receiver:u().optional(),chat:d().optional(),chatType:e(a,"chat_type"),chatInstance:e(a,"chat_instance"),canSendAfter:e(m,"can_send_after"),queryId:e(a,"query_id"),startParam:e(a,"start_param")});function p(i){return c.parse(i)}n.initData=c,n.parse=p,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});
|
|
2
|
-
//# sourceMappingURL=index.umd.cjs.map
|
package/dist/index.umd.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.cjs","sources":["../src/parsing.ts"],"sourcesContent":["import {\n searchParams,\n json,\n string,\n number,\n boolean,\n date,\n type AnyParser,\n} from '@tma.js/parsing';\n\nimport type { InitData, User } from './types.js';\n\nfunction field<P extends AnyParser<any>>(parser: P, from?: string) {\n return {\n from,\n type: parser,\n };\n}\n\nconst str = string();\nconst strOptional = string().optional();\nconst num = number();\nconst numOptional = number().optional();\nconst boolOptional = boolean().optional();\n\nfunction user() {\n return json<User>({\n firstName: field(str, 'first_name'),\n id: num,\n isBot: field(boolOptional, 'is_bot'),\n isPremium: field(boolOptional, 'is_premium'),\n lastName: field(strOptional, 'last_name'),\n languageCode: field(strOptional, 'language_code'),\n photoUrl: field(strOptional, 'photo_url'),\n username: strOptional,\n });\n}\n\nfunction chat() {\n return json({\n id: num,\n type: str,\n title: str,\n photoUrl: field(strOptional, 'photo_url'),\n username: strOptional,\n });\n}\n\n/**\n * Parser used to parse init data, presented as search params.\n * @deprecated Use `parse` method instead.\n */\nexport const initData = searchParams<InitData>({\n authDate: field(date(), 'auth_date'),\n hash: str,\n user: user().optional(),\n receiver: user().optional(),\n chat: chat().optional(),\n chatType: field(strOptional, 'chat_type'),\n chatInstance: field(strOptional, 'chat_instance'),\n canSendAfter: field(numOptional, 'can_send_after'),\n queryId: field(strOptional, 'query_id'),\n startParam: field(strOptional, 'start_param'),\n});\n\n/**\n * Parses incoming value as init data.\n * @param value - value to parse.\n */\nexport function parse(value: string | URLSearchParams): InitData {\n return initData.parse(value);\n}\n"],"names":["field","parser","from","str","string","strOptional","num","number","numOptional","boolOptional","boolean","user","json","chat","initData","searchParams","date","parse","value"],"mappings":"gVAYA,SAASA,EAAgCC,EAAWC,EAAe,CAC1D,MAAA,CACL,KAAAA,EACA,KAAMD,CAAA,CAEV,CAEA,MAAME,EAAMC,EAAO,OAAA,EACbC,EAAcD,EAAAA,SAAS,WACvBE,EAAMC,EAAO,OAAA,EACbC,EAAcD,EAAAA,SAAS,WACvBE,EAAeC,EAAAA,UAAU,WAE/B,SAASC,GAAO,CACd,OAAOC,OAAW,CAChB,UAAWZ,EAAMG,EAAK,YAAY,EAClC,GAAIG,EACJ,MAAON,EAAMS,EAAc,QAAQ,EACnC,UAAWT,EAAMS,EAAc,YAAY,EAC3C,SAAUT,EAAMK,EAAa,WAAW,EACxC,aAAcL,EAAMK,EAAa,eAAe,EAChD,SAAUL,EAAMK,EAAa,WAAW,EACxC,SAAUA,CAAA,CACX,CACH,CAEA,SAASQ,GAAO,CACd,OAAOD,OAAK,CACV,GAAIN,EACJ,KAAMH,EACN,MAAOA,EACP,SAAUH,EAAMK,EAAa,WAAW,EACxC,SAAUA,CAAA,CACX,CACH,CAMa,MAAAS,EAAWC,EAAAA,aAAuB,CAC7C,SAAUf,EAAMgB,OAAK,EAAG,WAAW,EACnC,KAAMb,EACN,KAAMQ,EAAK,EAAE,SAAS,EACtB,SAAUA,EAAK,EAAE,SAAS,EAC1B,KAAME,EAAK,EAAE,SAAS,EACtB,SAAUb,EAAMK,EAAa,WAAW,EACxC,aAAcL,EAAMK,EAAa,eAAe,EAChD,aAAcL,EAAMQ,EAAa,gBAAgB,EACjD,QAASR,EAAMK,EAAa,UAAU,EACtC,WAAYL,EAAMK,EAAa,aAAa,CAC9C,CAAC,EAMM,SAASY,EAAMC,EAA2C,CACxD,OAAAJ,EAAS,MAAMI,CAAK,CAC7B"}
|