diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index b69cc10..76972e0 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -7,14 +7,21 @@ jobs: name: Build 🔧 runs-on: ubuntu-latest steps: - - run: git config --global init.defaultBranch node-typescript - name: Setup Node uses: actions/setup-node@v2 with: node-version: 'lts/*' - - name: Checkout đŸ›Žī¸ - uses: actions/checkout@master - - name: Install đŸŸĸ + - uses: actions/checkout@master + - id: node-cache + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + path: node_modules + key: ${{ runner.os }}-${{ github.repository }}-node-modules-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-${{ github.repository }}-node-modules- + - if: steps.node-cache.outputs.cache-hit != 'true' run: yarn install - name: Build 🔧 run: yarn build:tsc diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 0000000..304e8ef --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,70 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ dist ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ dist ] + schedule: + - cron: '18 1 * * 6' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'javascript' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Learn more about CodeQL language support at https://git.io/codeql-language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v1 + + # â„šī¸ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 diff --git a/dist/config/scripts/Config.d.ts b/dist/config/scripts/Config.d.ts new file mode 100644 index 0000000..fb8db15 --- /dev/null +++ b/dist/config/scripts/Config.d.ts @@ -0,0 +1,13 @@ +export declare const scripts: { + config: { + scripts: string; + }; + build: { + tsc: string; + dist: string; + }; + lint: { + fix: string; + run: string; + }; +}; diff --git a/dist/config/scripts/Config.js b/dist/config/scripts/Config.js new file mode 100644 index 0000000..493c113 --- /dev/null +++ b/dist/config/scripts/Config.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.scripts = void 0; +exports.scripts = { + config: { + scripts: "ts-node ./config/scripts" + }, + build: { + tsc: "tsc", + dist: "tsc" + }, + lint: { + fix: "eslint --fix --ext .ts,.tsx .", + run: "eslint --ext .ts,.tsx ." + } +}; diff --git a/dist/config/scripts/index.d.ts b/dist/config/scripts/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/dist/config/scripts/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/dist/config/scripts/index.js b/dist/config/scripts/index.js new file mode 100644 index 0000000..8372c72 --- /dev/null +++ b/dist/config/scripts/index.js @@ -0,0 +1,10 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const path_1 = __importDefault(require("path")); +const package_1 = require("@taccl/package"); +const scripts = (0, package_1.writeScripts)(path_1.default.join(__dirname.replace(process.cwd(), ''), 'Config')); +console.log('scripts:'); +console.log(scripts); diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 0000000..f41a696 --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1 @@ +export * from './lib'; diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..ace8fb8 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,13 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./lib"), exports); diff --git a/dist/lib/index.d.ts b/dist/lib/index.d.ts new file mode 100644 index 0000000..d4ca0fa --- /dev/null +++ b/dist/lib/index.d.ts @@ -0,0 +1,8 @@ +export { standbyRequest } from './info/Standby'; +export { authRequest } from './info/Auth'; +export { infoRequest } from './info/Info'; +export { progressRequest } from './submit/Progress'; +export { confirmRequest } from './submit/Confirm'; +export { successRequest } from './submit/result/Success'; +export { failureRequest } from './submit/result/Failure'; +export { errorRequest } from './submit/result/Error'; diff --git a/dist/lib/index.js b/dist/lib/index.js new file mode 100644 index 0000000..aa36dab --- /dev/null +++ b/dist/lib/index.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.errorRequest = exports.failureRequest = exports.successRequest = exports.confirmRequest = exports.progressRequest = exports.infoRequest = exports.authRequest = exports.standbyRequest = void 0; +var Standby_1 = require("./info/Standby"); +Object.defineProperty(exports, "standbyRequest", { enumerable: true, get: function () { return Standby_1.standbyRequest; } }); +var Auth_1 = require("./info/Auth"); +Object.defineProperty(exports, "authRequest", { enumerable: true, get: function () { return Auth_1.authRequest; } }); +var Info_1 = require("./info/Info"); +Object.defineProperty(exports, "infoRequest", { enumerable: true, get: function () { return Info_1.infoRequest; } }); +var Progress_1 = require("./submit/Progress"); +Object.defineProperty(exports, "progressRequest", { enumerable: true, get: function () { return Progress_1.progressRequest; } }); +var Confirm_1 = require("./submit/Confirm"); +Object.defineProperty(exports, "confirmRequest", { enumerable: true, get: function () { return Confirm_1.confirmRequest; } }); +var Success_1 = require("./submit/result/Success"); +Object.defineProperty(exports, "successRequest", { enumerable: true, get: function () { return Success_1.successRequest; } }); +var Failure_1 = require("./submit/result/Failure"); +Object.defineProperty(exports, "failureRequest", { enumerable: true, get: function () { return Failure_1.failureRequest; } }); +var Error_1 = require("./submit/result/Error"); +Object.defineProperty(exports, "errorRequest", { enumerable: true, get: function () { return Error_1.errorRequest; } }); diff --git a/dist/lib/info/Auth.d.ts b/dist/lib/info/Auth.d.ts new file mode 100644 index 0000000..34483e9 --- /dev/null +++ b/dist/lib/info/Auth.d.ts @@ -0,0 +1,2 @@ +import { LightResponse, RequestParams } from '../util/type'; +export declare function authRequest({ key }: RequestParams): Promise; diff --git a/dist/lib/info/Auth.js b/dist/lib/info/Auth.js new file mode 100644 index 0000000..b539db2 --- /dev/null +++ b/dist/lib/info/Auth.js @@ -0,0 +1,35 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.authRequest = void 0; +const util_1 = require("../util"); +function authRequest({ key }) { + return __awaiter(this, void 0, void 0, function* () { + const harEntry = yield (0, util_1.loadHarEntryByUrl)('/auth'); + let req = harEntry.request; + req.url = (0, util_1.getUrlWithParams)({ + url: req.url, + params: { + key + } + }); + req = (0, util_1.parseRequest)(req); + req = yield (0, util_1.useCookiesFromBrowser)(req); + // TODO : Use Cookies from Browser => Clean Code + const res = yield (0, util_1.request)(req); + yield (0, util_1.saveCookiesFromResponse)(res); + return (0, util_1.lightResponse)(res); + }); +} +exports.authRequest = authRequest; +// authRequest({ +// key: string +// }); diff --git a/dist/lib/info/Info.d.ts b/dist/lib/info/Info.d.ts new file mode 100644 index 0000000..67e72dc --- /dev/null +++ b/dist/lib/info/Info.d.ts @@ -0,0 +1,2 @@ +import { RequestParams, LightResponse } from '../util/type'; +export declare function infoRequest({ key }: RequestParams): Promise; diff --git a/dist/lib/info/Info.js b/dist/lib/info/Info.js new file mode 100644 index 0000000..891b2d1 --- /dev/null +++ b/dist/lib/info/Info.js @@ -0,0 +1,35 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.infoRequest = void 0; +const util_1 = require("../util"); +function infoRequest({ key }) { + return __awaiter(this, void 0, void 0, function* () { + const harEntry = yield (0, util_1.loadHarEntryByUrl)('/info'); + let req = harEntry.request; + req.url = (0, util_1.getUrlWithParams)({ + url: req.url, + params: { + key + } + }); + req = (0, util_1.parseRequest)(req); + req = yield (0, util_1.useCookiesFromBrowser)(req); + // TODO : Use Cookies from Browser => Clean Code + const res = yield (0, util_1.request)(req); + yield (0, util_1.saveCookiesFromResponse)(res); + return (0, util_1.lightResponse)(res); + }); +} +exports.infoRequest = infoRequest; +// infoRequest({ +// key: string +// }); diff --git a/dist/lib/info/Standby.d.ts b/dist/lib/info/Standby.d.ts new file mode 100644 index 0000000..1136e0b --- /dev/null +++ b/dist/lib/info/Standby.d.ts @@ -0,0 +1,18 @@ +import { LightResponse, RequestParams } from '../util/type'; +/** + * @params { orgCd,sid } + * @returns + * @statusCode 302 + * @Location + * /nidlogin.login + * => LoginException + * /auth?key=${key} + * => Success + * @Headers + * @SetCookie + * @NID_SES + * *expire* + * => Cookie expired + * + */ +export declare function standbyRequest({ orgCd, sid }: RequestParams): Promise; diff --git a/dist/lib/info/Standby.js b/dist/lib/info/Standby.js new file mode 100644 index 0000000..43ab8a8 --- /dev/null +++ b/dist/lib/info/Standby.js @@ -0,0 +1,53 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.standbyRequest = void 0; +const util_1 = require("../util"); +/** + * @params { orgCd,sid } + * @returns + * @statusCode 302 + * @Location + * /nidlogin.login + * => LoginException + * /auth?key=${key} + * => Success + * @Headers + * @SetCookie + * @NID_SES + * *expire* + * => Cookie expired + * + */ +function standbyRequest({ orgCd, sid }) { + return __awaiter(this, void 0, void 0, function* () { + const harEntry = yield (0, util_1.loadHarEntryByUrl)('/reservation'); + let req = harEntry.request; + req.url = (0, util_1.getUrlWithParams)({ + url: req.url, + params: { + orgCd, + sid + } + }); + req = (0, util_1.parseRequest)(req); + req = yield (0, util_1.useCookiesFromBrowser)(req); + // TODO : Use Cookies from Browser => Clean Code + const res = yield (0, util_1.request)(req); + yield (0, util_1.saveCookiesFromResponse)(res); + return (0, util_1.lightResponse)(res); + }); +} +exports.standbyRequest = standbyRequest; +// standbyRequest({ +// orgCd: string | number, +// sid: string | number +// }); diff --git a/dist/lib/submit/Confirm.d.ts b/dist/lib/submit/Confirm.d.ts new file mode 100644 index 0000000..96102f6 --- /dev/null +++ b/dist/lib/submit/Confirm.d.ts @@ -0,0 +1,13 @@ +import { RequestParams, LightResponse } from '../util/type'; +/** + * + * @POST = method + * @JSON = contentType + * @BODY = { + * @key = string; + * } + * @returns + * @lightResponse + * + */ +export declare function confirmRequest({ key, cd }: RequestParams): Promise; diff --git a/dist/lib/submit/Confirm.js b/dist/lib/submit/Confirm.js new file mode 100644 index 0000000..c5e4ff5 --- /dev/null +++ b/dist/lib/submit/Confirm.js @@ -0,0 +1,58 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.confirmRequest = void 0; +const util_1 = require("../util"); +/** + * + * @POST = method + * @JSON = contentType + * @BODY = { + * @key = string; + * } + * @returns + * @lightResponse + * + */ +function confirmRequest({ key, cd }) { + return __awaiter(this, void 0, void 0, function* () { + const harEntry = yield (0, util_1.loadHarEntryByUrl)('/info'); + let req = harEntry.request; + const url = req.url.replace('/info', '/confirm'); + req.url = (0, util_1.getUrlWithParams)({ + url, + params: { + key + } + }); + req = (0, util_1.parseRequest)(req); + req.method = 'POST'; + req.headers.Accept = 'application/json'; + req.headers['Content-Type'] = 'application/json'; + req.headers.referer = (0, util_1.getProgressURL)({ + url, + params: { + key, + cd + } + }); + req.body = JSON.stringify({ key }); + req = yield (0, util_1.useCookiesFromBrowser)(req); + // TODO : Use Cookies from Browser => Clean Code + const res = yield (0, util_1.request)(req); + yield (0, util_1.saveCookiesFromResponse)(res); + return (0, util_1.lightResponse)(res); + }); +} +exports.confirmRequest = confirmRequest; +// confirmRequest({ +// key: string +// }); diff --git a/dist/lib/submit/Progress.d.ts b/dist/lib/submit/Progress.d.ts new file mode 100644 index 0000000..ecc119d --- /dev/null +++ b/dist/lib/submit/Progress.d.ts @@ -0,0 +1,9 @@ +import { RequestParams, LightResponse } from '../util/type'; +/** + * + * @GET + * @key !: sessionKey?; + * @cd !: vaccineCode; + * @returns + */ +export declare function progressRequest({ key, cd }: RequestParams): Promise; diff --git a/dist/lib/submit/Progress.js b/dist/lib/submit/Progress.js new file mode 100644 index 0000000..1cbf2ec --- /dev/null +++ b/dist/lib/submit/Progress.js @@ -0,0 +1,43 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.progressRequest = void 0; +const util_1 = require("../util"); +/** + * + * @GET + * @key !: sessionKey?; + * @cd !: vaccineCode; + * @returns + */ +function progressRequest({ key, cd }) { + return __awaiter(this, void 0, void 0, function* () { + const harEntry = yield (0, util_1.loadHarEntryByUrl)('/info'); + let req = harEntry.request; + req.url = (0, util_1.getUrlWithParams)({ + url: req.url.replace('/info', '/progress'), + params: { + key, + cd + } + }); + req = (0, util_1.parseRequest)(req); + req = yield (0, util_1.useCookiesFromBrowser)(req); + // TODO : Use Cookies from Browser => Clean Code + const res = yield (0, util_1.request)(req); + yield (0, util_1.saveCookiesFromResponse)(res); + return (0, util_1.lightResponse)(res); + }); +} +exports.progressRequest = progressRequest; +// progressRequest({ +// key: string +// }); diff --git a/dist/lib/submit/result/Error.d.ts b/dist/lib/submit/result/Error.d.ts new file mode 100644 index 0000000..3fb9dc4 --- /dev/null +++ b/dist/lib/submit/result/Error.d.ts @@ -0,0 +1,2 @@ +import { RequestParams, LightResponse } from '../../util/type'; +export declare function errorRequest({ key, cd, code }: RequestParams): Promise; diff --git a/dist/lib/submit/result/Error.js b/dist/lib/submit/result/Error.js new file mode 100644 index 0000000..46d1ae6 --- /dev/null +++ b/dist/lib/submit/result/Error.js @@ -0,0 +1,44 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.errorRequest = void 0; +const util_1 = require("../../util"); +function errorRequest({ key, cd, code }) { + return __awaiter(this, void 0, void 0, function* () { + const harEntry = yield (0, util_1.loadHarEntryByUrl)('/info'); + let req = harEntry.request; + const url = req.url.replace('/info', '/error'); + req.url = (0, util_1.getUrlWithParams)({ + url, + params: { + key, + code + } + }); + req = (0, util_1.parseRequest)(req); + req.headers.referer = (0, util_1.getProgressURL)({ + url, + params: { + key, + cd + } + }); + req = yield (0, util_1.useCookiesFromBrowser)(req); + // TODO : Use Cookies from Browser => Clean Code + const res = yield (0, util_1.request)(req); + yield (0, util_1.saveCookiesFromResponse)(res); + return (0, util_1.lightResponse)(res); + }); +} +exports.errorRequest = errorRequest; +// errorRequest({ +// key: 'undefined' +// }); diff --git a/dist/lib/submit/result/Failure.d.ts b/dist/lib/submit/result/Failure.d.ts new file mode 100644 index 0000000..6ed3e6e --- /dev/null +++ b/dist/lib/submit/result/Failure.d.ts @@ -0,0 +1,2 @@ +import { RequestParams, LightResponse } from '../../util/type'; +export declare function failureRequest({ key, cd, code }: RequestParams): Promise; diff --git a/dist/lib/submit/result/Failure.js b/dist/lib/submit/result/Failure.js new file mode 100644 index 0000000..c08c4c8 --- /dev/null +++ b/dist/lib/submit/result/Failure.js @@ -0,0 +1,44 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.failureRequest = void 0; +const util_1 = require("../../util"); +function failureRequest({ key, cd, code }) { + return __awaiter(this, void 0, void 0, function* () { + const harEntry = yield (0, util_1.loadHarEntryByUrl)('/info'); + let req = harEntry.request; + const url = req.url.replace('/info', '/failure'); + req.url = (0, util_1.getUrlWithParams)({ + url, + params: { + key, + code + } + }); + req = (0, util_1.parseRequest)(req); + req.headers.referer = (0, util_1.getProgressURL)({ + url, + params: { + key, + cd + } + }); + req = yield (0, util_1.useCookiesFromBrowser)(req); + // TODO : Use Cookies from Browser => Clean Code + const res = yield (0, util_1.request)(req); + yield (0, util_1.saveCookiesFromResponse)(res); + return (0, util_1.lightResponse)(res); + }); +} +exports.failureRequest = failureRequest; +// failureRequest({ +// key: string +// }); diff --git a/dist/lib/submit/result/Success.d.ts b/dist/lib/submit/result/Success.d.ts new file mode 100644 index 0000000..48dcfa8 --- /dev/null +++ b/dist/lib/submit/result/Success.d.ts @@ -0,0 +1,11 @@ +import { LightResponse, RequestParams } from '../../util/type'; +/** + * + * @method + * @get + * @param + * @key + * @returns + * @lightResponse + */ +export declare function successRequest({ key, cd }: RequestParams): Promise; diff --git a/dist/lib/submit/result/Success.js b/dist/lib/submit/result/Success.js new file mode 100644 index 0000000..6b123b3 --- /dev/null +++ b/dist/lib/submit/result/Success.js @@ -0,0 +1,52 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.successRequest = void 0; +const util_1 = require("../../util"); +/** + * + * @method + * @get + * @param + * @key + * @returns + * @lightResponse + */ +function successRequest({ key, cd }) { + return __awaiter(this, void 0, void 0, function* () { + const harEntry = yield (0, util_1.loadHarEntryByUrl)('/info'); + let req = harEntry.request; + const url = req.url.replace('/info', '/success'); + req.url = (0, util_1.getUrlWithParams)({ + url, + params: { + key + } + }); + req = (0, util_1.parseRequest)(req); + req.headers.referer = (0, util_1.getProgressURL)({ + url, + params: { + key, + cd + } + }); + req = yield (0, util_1.useCookiesFromBrowser)(req); + // TODO : Use Cookies from Browser => Clean Code + const res = yield (0, util_1.request)(req); + yield (0, util_1.saveCookiesFromResponse)(res); + return (0, util_1.lightResponse)(res); + }); +} +exports.successRequest = successRequest; +// successRequest({ +// key: string +// }); diff --git a/dist/lib/util/Cookie.d.ts b/dist/lib/util/Cookie.d.ts new file mode 100644 index 0000000..1f01fbc --- /dev/null +++ b/dist/lib/util/Cookie.d.ts @@ -0,0 +1,3 @@ +import { Cookie, CookiesParam } from './type'; +export declare function getCookies({ filter }: CookiesParam): Promise; +export declare function setCookies({ cookies }: CookiesParam): Promise[]>; diff --git a/dist/lib/util/Cookie.js b/dist/lib/util/Cookie.js new file mode 100644 index 0000000..7ea4a32 --- /dev/null +++ b/dist/lib/util/Cookie.js @@ -0,0 +1,69 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setCookies = exports.getCookies = void 0; +const cookie_1 = require("./cookie"); +const Parse_1 = require("./cookie/Parse"); +let db; +const cookieFilter = { + naver: function (cookie) { + if (typeof cookie.host == 'undefined') { + throw new Error(); + } + return cookie.host.match(/.*n*aver*/); + } +}; +function getCookies({ filter }) { + return __awaiter(this, void 0, void 0, function* () { + const path = (0, cookie_1.getCookiePath)(); + db = yield (0, cookie_1.openDB)({ + path + }); + const options = { + from: 'moz_cookies', + filter: filter !== null && filter !== void 0 ? filter : cookieFilter.naver + }; + let result = yield (0, cookie_1.selectDB)(db, options); + result = result.map((c) => (0, Parse_1.parseCookie)(c)); + return result; + }); +} +exports.getCookies = getCookies; +function setCookies({ cookies }) { + return __awaiter(this, void 0, void 0, function* () { + const path = (0, cookie_1.getCookiePath)(); + db = yield (0, cookie_1.openDB)({ + path + }); + if (typeof cookies === 'undefined') { + throw new Error(); + } + const result = yield cookies.map((cookie) => __awaiter(this, void 0, void 0, function* () { + const options = { + table: 'moz_cookies', + set: { + value: cookie.value + }, + where: { + name: cookie.name + } + }; + yield (0, cookie_1.updateDB)(db, options); + let result = yield getCookies({}); + result = result.filter((c) => { + return c.name == cookie.name; + }); + return result; + })); + return result; + }); +} +exports.setCookies = setCookies; diff --git a/dist/lib/util/Env.d.ts b/dist/lib/util/Env.d.ts new file mode 100644 index 0000000..6ea9d88 --- /dev/null +++ b/dist/lib/util/Env.d.ts @@ -0,0 +1,2 @@ +import { Env } from './type'; +export declare function getEnv(env: string): Env; diff --git a/dist/lib/util/Env.js b/dist/lib/util/Env.js new file mode 100644 index 0000000..8c745df --- /dev/null +++ b/dist/lib/util/Env.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getEnv = void 0; +function getEnv(env) { + const _env = process.env[env]; + if (typeof _env !== 'string') { + throw new Error(); + } + return `${process.env[env]}`; +} +exports.getEnv = getEnv; diff --git a/dist/lib/util/Har.d.ts b/dist/lib/util/Har.d.ts new file mode 100644 index 0000000..446e3e7 --- /dev/null +++ b/dist/lib/util/Har.d.ts @@ -0,0 +1,10 @@ +/// +import { Path } from './type'; +import { ClientRequest } from 'http'; +import { Entry, Har, Request } from 'har-format'; +export declare function readHar({ path }: Path): Har; +export declare function getEntries(har: Har): Entry[]; +export declare function filterByReqUrl(harEntries: Entry[], url: string): Entry[]; +export declare function parseRequest(request: Request): any | ClientRequest | Request; +export declare function useCookiesFromBrowser(req: any | ClientRequest): Promise; +export declare function loadHarEntryByUrl(url: string): Promise; diff --git a/dist/lib/util/Har.js b/dist/lib/util/Har.js new file mode 100644 index 0000000..23c81a8 --- /dev/null +++ b/dist/lib/util/Har.js @@ -0,0 +1,134 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.loadHarEntryByUrl = exports.useCookiesFromBrowser = exports.parseRequest = exports.filterByReqUrl = exports.getEntries = exports.readHar = void 0; +const har_1 = require("./har"); +const url_1 = require("url"); +const Cookie_1 = require("./Cookie"); +function readHar({ path }) { + let har = path !== null && path !== void 0 ? path : (0, har_1.getHarPath)(); + har = (0, har_1.readHarFile)({ + path: har + }); + har = (0, har_1.parseHar)({ har }); + return har; +} +exports.readHar = readHar; +function getEntries(har) { + return har.log.entries; +} +exports.getEntries = getEntries; +function filterByReqUrl(harEntries, url) { + if (harEntries instanceof Array) { + return harEntries.filter((harEntry) => { + var _b, _c, _f; + return (_f = (_c = (_b = harEntry === null || harEntry === void 0 ? void 0 : harEntry.request) === null || _b === void 0 ? void 0 : _b.url) === null || _c === void 0 ? void 0 : _c.includes(url)) !== null && _f !== void 0 ? _f : false; + }); + } + throw new Error(); +} +exports.filterByReqUrl = filterByReqUrl; +function parseRequest(request) { + const fe = Object.fromEntries; + const oe = Object.entries; + const parseHeaders = function (headers) { + if (headers instanceof Array) { + const _h = headers.map((header) => { + let { name, value } = header; + if (name.includes('ccept')) { + value = value.replace('gzip,', ''); + } + return [name, value]; + }); + return fe(_h); + } + throw new Error(); + }; + let url; + let _e = oe(request).filter(([k, v]) => { + if (k == 'url') { + url = new url_1.URL(v); + } + switch (k) { + case 'headersSize': return false; + case 'bodySize': return false; + case 'cookies': return false; + case 'url': return false; + default: return true; + } + }); + _e = oe((function () { + const _d = fe(_e); + try { + _d.hostname = url.hostname; + _d.path = (url.pathname) + (url.search); + _d.port = url.port + ? url.port + : (function () { + switch (url.protocol) { + case 'https:': return 443; + case 'http:': return 80; + } + throw new Error(); + })(); + } + catch (e) { + return _d; + } + return _d; + })()); + _e = _e.map(([k, v]) => { + if (k == 'headers') { + return [k, parseHeaders(v)]; + } + return [k, v]; + }); + return fe(_e); +} +exports.parseRequest = parseRequest; +function useCookiesFromBrowser(req) { + return __awaiter(this, void 0, void 0, function* () { + let _cookie = req.headers.Cookie.split('; ').map((cookieStr) => __awaiter(this, void 0, void 0, function* () { + // Use Cookies From Browser + const _eq = cookieStr.indexOf('='); + const cookieName = function (c) { + return c.substring(0, _eq); + }; + const cookieValue = function (c) { + return __awaiter(this, void 0, void 0, function* () { + let _a = yield (0, Cookie_1.getCookies)({}); + _a = _a.filter((cookie) => { + const { name } = cookie; + return name == cookieName(c); + })[0]; + const { value } = _a; + return value; + }); + }; + const name = cookieName(cookieStr); + const value = yield cookieValue(cookieStr); + return [name, value].join('='); + })); + _cookie = yield Promise.all(_cookie); + req.headers.Cookie = _cookie.join('; '); + return req; + }); +} +exports.useCookiesFromBrowser = useCookiesFromBrowser; +function loadHarEntryByUrl(url) { + return __awaiter(this, void 0, void 0, function* () { + const har = readHar({}); + const harEntries = getEntries(har); + const harEntry = filterByReqUrl(harEntries, url)[0]; + return harEntry; + }); +} +exports.loadHarEntryByUrl = loadHarEntryByUrl; diff --git a/dist/lib/util/Http.d.ts b/dist/lib/util/Http.d.ts new file mode 100644 index 0000000..10b3d14 --- /dev/null +++ b/dist/lib/util/Http.d.ts @@ -0,0 +1 @@ +export { request } from '@corcc/request'; diff --git a/dist/lib/util/Http.js b/dist/lib/util/Http.js new file mode 100644 index 0000000..5b5db0e --- /dev/null +++ b/dist/lib/util/Http.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.request = void 0; +var request_1 = require("@corcc/request"); +Object.defineProperty(exports, "request", { enumerable: true, get: function () { return request_1.request; } }); diff --git a/dist/lib/util/Response.d.ts b/dist/lib/util/Response.d.ts new file mode 100644 index 0000000..9617539 --- /dev/null +++ b/dist/lib/util/Response.d.ts @@ -0,0 +1,5 @@ +/// +import { ServerResponse } from 'http'; +import { LightResponse } from './type'; +export declare function saveCookiesFromResponse(res: any | ServerResponse): Promise; +export declare function lightResponse(res: any | ServerResponse): LightResponse; diff --git a/dist/lib/util/Response.js b/dist/lib/util/Response.js new file mode 100644 index 0000000..3a6da7a --- /dev/null +++ b/dist/lib/util/Response.js @@ -0,0 +1,50 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.lightResponse = exports.saveCookiesFromResponse = void 0; +const _1 = require("."); +const URL_1 = require("./URL"); +function saveCookiesFromResponse(res) { + return __awaiter(this, void 0, void 0, function* () { + let setCookie = yield res.headers['set-cookie']; + setCookie = yield setCookie.map((setCookie) => __awaiter(this, void 0, void 0, function* () { + const _setCookie = (function () { + const _setCookieStr = setCookie.split(';')[0]; + const [name, value] = _setCookieStr.split('='); + return { + name, + value + }; + })(); + const result = yield (0, _1.setCookies)({ + cookies: [_setCookie] + }); + return result; + })); + return setCookie; + }); +} +exports.saveCookiesFromResponse = saveCookiesFromResponse; +function lightResponse(res) { + const { statusCode, responseCode, headers, body } = res; + let { location } = headers; + location = location ? new URL(location) : location; + if (location) { + location.params = (0, URL_1.getParsedSearchParams)(location); + } + return { + responseCode: responseCode !== null && responseCode !== void 0 ? responseCode : statusCode, + headers, + body, + location: location !== null && location !== void 0 ? location : '' + }; +} +exports.lightResponse = lightResponse; diff --git a/dist/lib/util/URL.d.ts b/dist/lib/util/URL.d.ts new file mode 100644 index 0000000..2c18b53 --- /dev/null +++ b/dist/lib/util/URL.d.ts @@ -0,0 +1,18 @@ +/// +import { URL } from 'url'; +export declare function getURL(url: string | URL): URL; +export declare function getSearchParams(url: URL | string): string; +export declare function getParsedSearchParams({ url, search }: { + url?: string | URL; + search?: string; +}): { + [x: string]: string; +}; +export declare function getUrlWithParams({ url, params }: { + url: string; + params: any; +}): string; +export declare function getProgressURL({ url, params }: { + url: string; + params: any; +}): string; diff --git a/dist/lib/util/URL.js b/dist/lib/util/URL.js new file mode 100644 index 0000000..8916435 --- /dev/null +++ b/dist/lib/util/URL.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getProgressURL = exports.getUrlWithParams = exports.getParsedSearchParams = exports.getSearchParams = exports.getURL = void 0; +const url_1 = require("url"); +const fe = Object.fromEntries; +function getURL(url) { + return url instanceof url_1.URL ? url : new url_1.URL(url); +} +exports.getURL = getURL; +function getSearchParams(url) { + return (function (_u) { + let { search } = _u; + search = (function (s) { + return s.startsWith('?') ? s.replace('?', '') : s; + })(search); + return search; + })(getURL(url)); +} +exports.getSearchParams = getSearchParams; +function getParsedSearchParams({ url, search }) { + const parse = function (s) { + const e = (s.startsWith('?') ? s.replace('?', '') : s).split('&').map((p) => { + const eq = p.indexOf('='); + const n = p.substring(0, eq); + const v = p.substring(eq + 1, p.length); + return [n, v]; + }); + return fe(e); + }; + if (search) { + return parse(search); + } + if (url) { + return (function (_u) { + return parse(getSearchParams(_u)); + })(getURL(url)); + } + throw new Error(); +} +exports.getParsedSearchParams = getParsedSearchParams; +function getUrlWithParams({ url, params }) { + const _url = (function (_u) { + const { protocol, hostname, pathname } = new url_1.URL(_u); + const _a = `${protocol}//${hostname}${pathname}`; + return _a; + })(url); + return `${_url}` + ((params && params != {}) + ? ('?' + Object.entries(params).map(([k, v]) => { + return [k, v].join('='); + }).join('&')) + : ''); +} +exports.getUrlWithParams = getUrlWithParams; +function getProgressURL({ url, params }) { + const _url = (function (_u) { + const { protocol, hostname, pathname } = new url_1.URL(_u); + const _a = `${protocol}//${hostname}${(function (p) { + const _s = p.lastIndexOf('/'); + const _r = p.substring(_s, p.length); + const _a = p.replace(_r, '/progress'); + return _a; + })(pathname)}`; + return _a; + })(url); + return getUrlWithParams({ + url: _url, + params + }); +} +exports.getProgressURL = getProgressURL; diff --git a/dist/lib/util/cookie/Parse.d.ts b/dist/lib/util/cookie/Parse.d.ts new file mode 100644 index 0000000..26689bd --- /dev/null +++ b/dist/lib/util/cookie/Parse.d.ts @@ -0,0 +1,2 @@ +import { Cookie } from '../type'; +export declare function parseCookie({ name, value }: Cookie): Cookie; diff --git a/dist/lib/util/cookie/Parse.js b/dist/lib/util/cookie/Parse.js new file mode 100644 index 0000000..326278c --- /dev/null +++ b/dist/lib/util/cookie/Parse.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseCookie = void 0; +function parseCookie({ name, value }) { + return { + name, + value + }; +} +exports.parseCookie = parseCookie; diff --git a/dist/lib/util/cookie/Path.d.ts b/dist/lib/util/cookie/Path.d.ts new file mode 100644 index 0000000..2d8be4d --- /dev/null +++ b/dist/lib/util/cookie/Path.d.ts @@ -0,0 +1 @@ +export declare function getCookiePath(): string; diff --git a/dist/lib/util/cookie/Path.js b/dist/lib/util/cookie/Path.js new file mode 100644 index 0000000..4a80f29 --- /dev/null +++ b/dist/lib/util/cookie/Path.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getCookiePath = void 0; +const Env_1 = require("../Env"); +const path_1 = require("path"); +const fs_1 = require("fs"); +const HOME = (0, Env_1.getEnv)('HOME'); +const firefoxPrefix = (function () { + return (0, path_1.resolve)((0, path_1.join)(HOME, '.mozilla/firefox/')); +})(); +function getCookiePath() { + const paths = (0, fs_1.readdirSync)(firefoxPrefix); + const devEditionDefaultPath = (function () { + const dir = paths.filter((_) => (_.includes('dev-edition')))[0]; + const full = (0, path_1.resolve)((0, path_1.join)(firefoxPrefix, dir)); + return full; + })(); + return `${devEditionDefaultPath}/cookies.sqlite`; +} +exports.getCookiePath = getCookiePath; diff --git a/dist/lib/util/cookie/SQLite.d.ts b/dist/lib/util/cookie/SQLite.d.ts new file mode 100644 index 0000000..c03af7a --- /dev/null +++ b/dist/lib/util/cookie/SQLite.d.ts @@ -0,0 +1,6 @@ +/// +import sqlite3 from 'sqlite3'; +import { DBPath, DBSelect } from '../type'; +export declare function openDB({ path }: DBPath): Promise>; +export declare function select(db: any, { select, from, filter }: DBSelect): Promise; +export declare function update(db: any, { table, set, where }: DBSelect): Promise; diff --git a/dist/lib/util/cookie/SQLite.js b/dist/lib/util/cookie/SQLite.js new file mode 100644 index 0000000..17a611a --- /dev/null +++ b/dist/lib/util/cookie/SQLite.js @@ -0,0 +1,79 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.update = exports.select = exports.openDB = void 0; +const sqlite3_1 = __importDefault(require("sqlite3")); +const sqlite_1 = require("sqlite"); +function getTypeOfJson(w) { + return typeof JSON.parse(JSON.stringify(w)); +} +function getWhereFromJson(where) { + if (typeof where === 'string') { + throw new Error(); + } + return Object.entries(where).map(([k, v]) => { + return ` WHERE ${k} = '${v}' `; + }).join(''); +} +function getWhere({ where }) { + const whereType = getTypeOfJson(where); + switch (whereType) { + case 'object': return (function (w) { + const _w = JSON.parse(JSON.stringify(w)); + return getWhereFromJson(_w); + })(where); + case 'string': return `${where}`; + default: throw new Error(); + } +} +function openDB({ path }) { + return __awaiter(this, void 0, void 0, function* () { + const db = yield (0, sqlite_1.open)({ + filename: `${path}`, + mode: sqlite3_1.default.OPEN_READWRITE, + driver: sqlite3_1.default.Database + }); + return db; + }); +} +exports.openDB = openDB; +function select(db, { select, from, filter }) { + return __awaiter(this, void 0, void 0, function* () { + const cmd = (function () { + const __select = ` SELECT ${select || '*'} `; + const __from = ` FROM ${from || '*'} `; + return __select + __from; + })().trim(); + let result = yield db.all(cmd); + if (filter) { + result = result.filter((_) => filter(_)); + } + return result; + }); +} +exports.select = select; +function update(db, { table, set, where }) { + return __awaiter(this, void 0, void 0, function* () { + const cmd = (function () { + const __table = table; + const __set = Object.entries(set !== null && set !== void 0 ? set : { '': '' }).map(([k, v]) => { + return ` SET ${k} = '${v}' `; + }).join(''); + const __where = getWhere({ where }); + return 'UPDATE ' + __table + __set + __where; + })().trim(); + yield db.run(cmd); + }); +} +exports.update = update; diff --git a/dist/lib/util/cookie/index.d.ts b/dist/lib/util/cookie/index.d.ts new file mode 100644 index 0000000..58142a3 --- /dev/null +++ b/dist/lib/util/cookie/index.d.ts @@ -0,0 +1,3 @@ +export { getEnv } from '../Env'; +export { getCookiePath } from './Path'; +export { select as selectDB, update as updateDB, openDB } from './SQLite'; diff --git a/dist/lib/util/cookie/index.js b/dist/lib/util/cookie/index.js new file mode 100644 index 0000000..ba2b224 --- /dev/null +++ b/dist/lib/util/cookie/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.openDB = exports.updateDB = exports.selectDB = exports.getCookiePath = exports.getEnv = void 0; +var Env_1 = require("../Env"); +Object.defineProperty(exports, "getEnv", { enumerable: true, get: function () { return Env_1.getEnv; } }); +var Path_1 = require("./Path"); +Object.defineProperty(exports, "getCookiePath", { enumerable: true, get: function () { return Path_1.getCookiePath; } }); +var SQLite_1 = require("./SQLite"); +Object.defineProperty(exports, "selectDB", { enumerable: true, get: function () { return SQLite_1.select; } }); +Object.defineProperty(exports, "updateDB", { enumerable: true, get: function () { return SQLite_1.update; } }); +Object.defineProperty(exports, "openDB", { enumerable: true, get: function () { return SQLite_1.openDB; } }); diff --git a/dist/lib/util/har/Parse.d.ts b/dist/lib/util/har/Parse.d.ts new file mode 100644 index 0000000..a98b6e8 --- /dev/null +++ b/dist/lib/util/har/Parse.d.ts @@ -0,0 +1,3 @@ +import { Har } from 'har-format'; +import { HarString } from '../type'; +export declare function parseHar({ har }: HarString): Har; diff --git a/dist/lib/util/har/Parse.js b/dist/lib/util/har/Parse.js new file mode 100644 index 0000000..d96fae0 --- /dev/null +++ b/dist/lib/util/har/Parse.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseHar = void 0; +function parseHar({ har }) { + return JSON.parse(har); +} +exports.parseHar = parseHar; diff --git a/dist/lib/util/har/Path.d.ts b/dist/lib/util/har/Path.d.ts new file mode 100644 index 0000000..be94f03 --- /dev/null +++ b/dist/lib/util/har/Path.d.ts @@ -0,0 +1 @@ +export declare function getHarPath(): string; diff --git a/dist/lib/util/har/Path.js b/dist/lib/util/har/Path.js new file mode 100644 index 0000000..38a1db5 --- /dev/null +++ b/dist/lib/util/har/Path.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getHarPath = void 0; +const fs_1 = require("fs"); +const cwd = process.cwd(); +function getHarPath() { + let l = (0, fs_1.readdirSync)(cwd); + l = l.filter((v) => (v.includes('.har'))); + if (!l[0]) { + throw new Error('Cannot Find Har File'); + } + return `${cwd}/${l[0]}`; +} +exports.getHarPath = getHarPath; diff --git a/dist/lib/util/har/Read.d.ts b/dist/lib/util/har/Read.d.ts new file mode 100644 index 0000000..99ef31a --- /dev/null +++ b/dist/lib/util/har/Read.d.ts @@ -0,0 +1,2 @@ +import { Path } from '../type'; +export declare function readHarFile({ path }: Path): string; diff --git a/dist/lib/util/har/Read.js b/dist/lib/util/har/Read.js new file mode 100644 index 0000000..2bd1f45 --- /dev/null +++ b/dist/lib/util/har/Read.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readHarFile = void 0; +const fs_1 = require("fs"); +function readHarFile({ path }) { + return (0, fs_1.readFileSync)(`${path}`).toString(); +} +exports.readHarFile = readHarFile; diff --git a/dist/lib/util/har/index.d.ts b/dist/lib/util/har/index.d.ts new file mode 100644 index 0000000..a93fa61 --- /dev/null +++ b/dist/lib/util/har/index.d.ts @@ -0,0 +1,4 @@ +export { getEnv } from '../Env'; +export { getHarPath } from './Path'; +export { readHarFile } from './Read'; +export { parseHar } from './Parse'; diff --git a/dist/lib/util/har/index.js b/dist/lib/util/har/index.js new file mode 100644 index 0000000..8d3659f --- /dev/null +++ b/dist/lib/util/har/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseHar = exports.readHarFile = exports.getHarPath = exports.getEnv = void 0; +var Env_1 = require("../Env"); +Object.defineProperty(exports, "getEnv", { enumerable: true, get: function () { return Env_1.getEnv; } }); +var Path_1 = require("./Path"); +Object.defineProperty(exports, "getHarPath", { enumerable: true, get: function () { return Path_1.getHarPath; } }); +var Read_1 = require("./Read"); +Object.defineProperty(exports, "readHarFile", { enumerable: true, get: function () { return Read_1.readHarFile; } }); +var Parse_1 = require("./Parse"); +Object.defineProperty(exports, "parseHar", { enumerable: true, get: function () { return Parse_1.parseHar; } }); diff --git a/dist/lib/util/index.d.ts b/dist/lib/util/index.d.ts new file mode 100644 index 0000000..11108de --- /dev/null +++ b/dist/lib/util/index.d.ts @@ -0,0 +1,6 @@ +export * from './Cookie'; +export * from './Har'; +export * from './Response'; +export * from './URL'; +export * from './Env'; +export * from './Http'; diff --git a/dist/lib/util/index.js b/dist/lib/util/index.js new file mode 100644 index 0000000..444b01d --- /dev/null +++ b/dist/lib/util/index.js @@ -0,0 +1,18 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./Cookie"), exports); +__exportStar(require("./Har"), exports); +__exportStar(require("./Response"), exports); +__exportStar(require("./URL"), exports); +__exportStar(require("./Env"), exports); +__exportStar(require("./Http"), exports); diff --git a/dist/lib/util/type/index.d.ts b/dist/lib/util/type/index.d.ts new file mode 100644 index 0000000..26fa111 --- /dev/null +++ b/dist/lib/util/type/index.d.ts @@ -0,0 +1,57 @@ +export declare type RequestParams = { + orgCd?: string | number | bigint; + sid?: string | number | bigint; + key?: string; + cd?: string; + code?: string; +}; +export declare type RequestBody = { + body?: string; +}; +export declare type Json = { + [x: string]: string | Json | number | bigint; +}; +export declare type Path = { + path?: string; +}; +export { Path as DBPath }; +export declare type Env = string; +export declare type DBSelect = { + select?: string; + set?: Json; + table?: string; + from?: string; + where?: Json | string; + filter?: Function; +}; +export declare type Cookie = { + name: string; + value: string; + host?: string; + domain?: string; +}; +export declare type Header = { + name: string; + value: string; +}; +export declare type CookiesParam = { + cookies?: Array; + filter?: Function; +}; +export declare type HarString = { + har: string; +}; +export declare type Headers = { + [x: string]: string; +}; +export declare type Location = string | (URL & { + params: { + [x: string]: string; + }; +}); +export declare type LightResponse = { + responseCode: number; + headers: Headers; + body: string; + location?: Location; +}; diff --git a/dist/lib/util/type/index.js b/dist/lib/util/type/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/dist/lib/util/type/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/tsconfig.json b/tsconfig.json index e6f2def..1e32e0d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -42,7 +42,7 @@ // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ diff --git a/yarn.lock b/yarn.lock index 8e73721..294046b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1494,9 +1494,9 @@ minimatch@^3.0.4: brace-expansion "^1.1.7" minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minipass@^2.6.0, minipass@^2.9.0: version "2.9.0"