From 59c349b5951d12a6fae345483c2f6fa55d92df4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20SZKIBA?= Date: Tue, 12 Mar 2024 19:55:48 +0100 Subject: [PATCH 1/4] refactor: making xk6-faker more maintainable --- .github/workflows/build.yml | 19 + .github/workflows/docs.yml | 40 + .github/workflows/lint.yml | 32 + .github/workflows/release.yml | 58 + .github/workflows/test.yml | 41 + .gitignore | 7 +- .golangci.yml | 165 +- .vscode/settings.json | 3 +- LICENSE | 682 ++++- Taskfile.yml | 62 - docs/README.md | 48 - docs/classes/faker.md | 2212 -------------- docs/interfaces/address.md | 64 - docs/interfaces/car.md | 50 - docs/interfaces/contact.md | 22 - docs/interfaces/creditcard.md | 36 - docs/interfaces/creditcardoptions.md | 29 - docs/interfaces/currency.md | 22 - docs/interfaces/job.md | 36 - docs/interfaces/person.md | 64 - faker.go | 64 - faker/faker.go | 191 ++ faker/faker_internal_test.go | 136 + faker/faker_test.go | 122 + faker/fumctions_test.go | 89 + faker/functions.go | 69 + faker/lookup.go | 127 + faker/lookup_test.go | 32 + functions.json | 4021 ++++++++++++++++++++++++++ functions_test.go | 52 + go.mod | 47 +- go.sum | 131 +- module.go | 105 - module/module.go | 65 + module/module_internal_test.go | 34 + module/module_test.go | 50 + package-lock.json | 812 ------ package.json | 8 - register.go | 16 + register_internal_test.go | 15 + script.js | 7 + test/expect.js | 258 -- test/faker.test.js | 276 -- test/testdata/sample.csv | 6 - tools/codegen/genjson.go | 16 + tools/codegen/gentest.go | 9 + tools/codegen/gents.go | 9 + tools/codegen/lookup.go | 82 + tools/codegen/main.go | 59 + tsconfig.json | 25 +- typedoc.json | 8 - 51 files changed, 6328 insertions(+), 4305 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/docs.yml create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test.yml delete mode 100644 Taskfile.yml delete mode 100644 docs/README.md delete mode 100644 docs/classes/faker.md delete mode 100644 docs/interfaces/address.md delete mode 100644 docs/interfaces/car.md delete mode 100644 docs/interfaces/contact.md delete mode 100644 docs/interfaces/creditcard.md delete mode 100644 docs/interfaces/creditcardoptions.md delete mode 100644 docs/interfaces/currency.md delete mode 100644 docs/interfaces/job.md delete mode 100644 docs/interfaces/person.md delete mode 100644 faker.go create mode 100644 faker/faker.go create mode 100644 faker/faker_internal_test.go create mode 100644 faker/faker_test.go create mode 100644 faker/fumctions_test.go create mode 100644 faker/functions.go create mode 100644 faker/lookup.go create mode 100644 faker/lookup_test.go create mode 100644 functions.json create mode 100644 functions_test.go delete mode 100644 module.go create mode 100644 module/module.go create mode 100644 module/module_internal_test.go create mode 100644 module/module_test.go delete mode 100644 package-lock.json delete mode 100644 package.json create mode 100644 register.go create mode 100644 register_internal_test.go create mode 100644 script.js delete mode 100644 test/expect.js delete mode 100644 test/faker.test.js delete mode 100644 test/testdata/sample.csv create mode 100644 tools/codegen/genjson.go create mode 100644 tools/codegen/gentest.go create mode 100644 tools/codegen/gents.go create mode 100644 tools/codegen/lookup.go create mode 100644 tools/codegen/main.go delete mode 100644 typedoc.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..a24dd89 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,19 @@ +name: Build +on: [pull_request] + +jobs: + build: + name: Bundle xk6 extensions + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Build + id: build + uses: szkiba/xk6bundler@v0 + with: + with: github.com/szkiba/xk6-faker=/github/workspace diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..79bf618 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,40 @@ +name: Docs +on: + push: + branches: [master, feature/simplifa-api] + paths: + - .github/workflows/docs.yml + - index.js + - index.d.ts + - tsconfig.json + +jobs: + docs: + name: Docs + runs-on: ubuntu-latest + permissions: + pages: write + id-token: write + + steps: + - name: Check out code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install bun + uses: oven-sh/setup-bun@v1 + - name: Generate API doc + run: bun x typedoc + - name: Copy index.d.ts + run: cp index.d.ts build/docs/ + + - name: Setup Pages + uses: actions/configure-pages@v4 + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: "build/docs" + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v3 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..25f6264 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,32 @@ +name: lint + +on: + pull_request: + workflow_dispatch: + push: + paths-ignore: + - "docs/**" + - README.md + - "releases/**" + +permissions: + contents: read + +jobs: + lint: + name: lint + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup go + uses: actions/setup-go@v4 + with: + go-version: "1.21" + cache: false + - name: Go linter + uses: golangci/golangci-lint-action@v3 + with: + version: v1.55 + args: --timeout=30m + install-mode: binary diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..780da03 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,58 @@ +name: Release +on: + push: + tags: + - "v*" + +jobs: + release: + name: Bundle xk6 extensions + runs-on: ubuntu-latest + permissions: + contents: write + packages: write + env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Build + id: build + uses: szkiba/xk6bundler@v0 + with: + with: github.com/szkiba/xk6-faker=/github/workspace + + - name: Create Release + uses: softprops/action-gh-release@v1 + with: + files: dist/*.tar.gz + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + push: true + context: ./${{ steps.build.outputs.dockerdir }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..c7dadbb --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,41 @@ +name: test + +on: + pull_request: + workflow_dispatch: + push: + paths-ignore: + - "docs/**" + - README.md + - "releases/**" + +jobs: + test: + name: Test + strategy: + matrix: + platform: + - ubuntu-latest + - macos-latest + - windows-latest + runs-on: ${{matrix.platform}} + steps: + - name: Install Go + uses: actions/setup-go@v4 + with: + go-version: "1.21" + - name: Checkout code + uses: actions/checkout@v4 + + - name: Test + run: go test -count 1 -race -coverprofile=coverage.txt ./... + + - name: Upload Coverage + if: ${{ matrix.platform == 'ubuntu-latest' && github.ref_name == 'master' }} + uses: codecov/codecov-action@v3 + with: + directory: build + + - name: Generate Go Report Card + if: ${{ matrix.platform == 'ubuntu-latest' && github.ref_name == 'master' }} + uses: creekorful/goreportcard-action@v1.0 diff --git a/.gitignore b/.gitignore index ebb2368..695a2d4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /k6 -.task -node_modules -vendor/ \ No newline at end of file +*_skeleton.go +/build +/node_modules +yarn.lock \ No newline at end of file diff --git a/.golangci.yml b/.golangci.yml index de13757..cdd1054 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,42 +1,135 @@ -# MIT License -# -# Copyright (c) 2021 Iván Szkiba -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. +# v1.55.2 +# Please don't remove the first line. It uses in CI to determine the golangci version +run: + deadline: 5m + +issues: + # Maximum issues count per one linter. Set to 0 to disable. Default is 50. + max-issues-per-linter: 0 + # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. + max-same-issues: 0 + + # We want to try and improve the comments in the k6 codebase, so individual + # non-golint items from the default exclusion list will gradually be added + # to the exclude-rules below + exclude-use-default: false + + exclude-rules: + # Exclude duplicate code and function length and complexity checking in test + # files (due to common repeats and long functions in test code) + - path: _(test|gen)\.go + linters: + - cyclop + - dupl + - gocognit + - funlen + - lll + - path: js\/modules\/k6\/http\/.*_test\.go + linters: + # k6/http module's tests are quite complex because they often have several nested levels. + # The module is in maintainance mode, so we don't intend to port the tests to a parallel version. + - paralleltest + - tparallel + - linters: + - staticcheck # Tracked in https://github.com/grafana/xk6-grpc/issues/14 + text: "The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated." + - linters: + - forbidigo + text: 'use of `os\.(SyscallError|Signal|Interrupt)` forbidden' + +linters-settings: + nolintlint: + # Disable to ensure that nolint directives don't have a leading space. Default is true. + allow-leading-space: false + exhaustive: + default-signifies-exhaustive: true + govet: + check-shadowing: true + cyclop: + max-complexity: 25 + maligned: + suggest-new: true + dupl: + threshold: 150 + goconst: + min-len: 10 + min-occurrences: 4 + funlen: + lines: 80 + statements: 60 + forbidigo: + forbid: + - '^(fmt\\.Print(|f|ln)|print|println)$' + # Forbid everything in os, except os.Signal and os.SyscalError + - '^os\.(.*)$(# Using anything except Signal and SyscallError from the os package is forbidden )?' + # Forbid everything in syscall except the uppercase constants + - '^syscall\.[^A-Z_]+$(# Using anything except constants from the syscall package is forbidden )?' + - '^logrus\.Logger$' linters: - presets: - - bugs - - style - - unused - - complexity - - format - - performance + disable-all: true enable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - contextcheck + - cyclop + - dogsled + - dupl + - durationcheck + - errcheck + - errchkjson + - errname + - errorlint + - exhaustive - exportloopref - disable: - - nolintlint - - exhaustivestruct + - forbidigo + - forcetypeassert + - funlen + - gocheckcompilerdirectives - gochecknoglobals - - gochecknoinits + - gocognit + - goconst + - gocritic + - gofmt + - gofumpt + - goimports + - gomoddirectives + - goprintffuncname + - gosec + - gosimple + - govet + - importas + - ineffassign + - interfacebloat - lll - - maligned - - interfacer - - scopelint - - wrapcheck + - makezero + - misspell + - nakedret + - nestif + - nilerr + - nilnil + - noctx + - nolintlint + - nosprintfhostport + - paralleltest + - prealloc + - predeclared + - promlinter + - revive + - reassign + - rowserrcheck + - sqlclosecheck + - staticcheck + - stylecheck + - tenv + - tparallel + - typecheck + - unconvert + - unparam + - unused + - usestdlibvars + - wastedassign + - whitespace + fast: false diff --git a/.vscode/settings.json b/.vscode/settings.json index 6e380ce..cb6adc1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,5 @@ { "go.lintTool": "golangci-lint", - "go.lintFlags": ["--fast"] + "go.lintFlags": ["--fast"], + "go.buildTags": "codegen" } diff --git a/LICENSE b/LICENSE index 9df0146..be3f7b2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,661 @@ -MIT License - -Copyright (c) 2021 Iván Szkiba - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/Taskfile.yml b/Taskfile.yml deleted file mode 100644 index 71c9e4d..0000000 --- a/Taskfile.yml +++ /dev/null @@ -1,62 +0,0 @@ -# MIT License -# -# Copyright (c) 2021 Iván Szkiba -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -version: "3" - -env: - K6_VERSION: v0.43.1 - -silent: true - -tasks: - default: - cmds: - - task: test - - clean: - desc: Clean up working directory - cmds: - - rm -rf k6 .task node_modules - - build: - sources: - - "**/*.go" - generates: - - k6 - cmds: - - xk6 build --with github.com/szkiba/xk6-faker=$(pwd) - - test: - deps: [build] - cmds: - - ./k6 run --no-usage-report test/faker.test.js - - npm:install: - cmds: - - npm ci - status: - - test -d node_modules - - docs: - deps: [npm:install] - cmds: - - npx typedoc diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 2153d7b..0000000 --- a/docs/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# xk6-faker - -xk6-faker random fake data generator - -The main generator class is [Faker](classes/faker.md). - -```js -import { Faker } from "k6/x/faker" - -let f = new Faker(); -console.log(f.name()); -``` - -Pass a random seed number to [Faker constructor](classes/faker.md#constructor) if you want to get deterministic random values. - -```js -import { Faker } from "k6/x/faker" - -let f = new Faker(1234); -console.log(f.name()); -``` - -For easier usage, the module's default export is a Faker instance too, so you can use generator functions without instantiating the [Faker](classes/faker.md) class: - -```js -import faker from "k6/x/faker" - -console.log(faker.name()) -``` - -You can pass random seed value in `XK6_FAKER_SEED` env if you want deterministic generated random values. - -## Table of contents - -### Classes - -- [Faker](classes/faker.md) - -### Interfaces - -- [Address](interfaces/address.md) -- [Car](interfaces/car.md) -- [Contact](interfaces/contact.md) -- [CreditCard](interfaces/creditcard.md) -- [CreditCardOptions](interfaces/creditcardoptions.md) -- [Currency](interfaces/currency.md) -- [Job](interfaces/job.md) -- [Person](interfaces/person.md) diff --git a/docs/classes/faker.md b/docs/classes/faker.md deleted file mode 100644 index 4af1eac..0000000 --- a/docs/classes/faker.md +++ /dev/null @@ -1,2212 +0,0 @@ -# Class: Faker - -## Table of contents - -### Constructors - -- [constructor](faker.md#constructor) - -### Methods - -- [achAccount](faker.md#achaccount) -- [achRouting](faker.md#achrouting) -- [address](faker.md#address) -- [adjective](faker.md#adjective) -- [adverb](faker.md#adverb) -- [animal](faker.md#animal) -- [animalType](faker.md#animaltype) -- [appAuthor](faker.md#appauthor) -- [appName](faker.md#appname) -- [appVersion](faker.md#appversion) -- [beerAlcohol](faker.md#beeralcohol) -- [beerBlg](faker.md#beerblg) -- [beerHop](faker.md#beerhop) -- [beerIbu](faker.md#beeribu) -- [beerMalt](faker.md#beermalt) -- [beerName](faker.md#beername) -- [beerStyle](faker.md#beerstyle) -- [beerYeast](faker.md#beeryeast) -- [bitcoinAddress](faker.md#bitcoinaddress) -- [bitcoinPrivateKey](faker.md#bitcoinprivatekey) -- [bool](faker.md#bool) -- [breakfast](faker.md#breakfast) -- [bs](faker.md#bs) -- [buzzWord](faker.md#buzzword) -- [car](faker.md#car) -- [carFuelType](faker.md#carfueltype) -- [carMaker](faker.md#carmaker) -- [carModel](faker.md#carmodel) -- [carTransmissionType](faker.md#cartransmissiontype) -- [carType](faker.md#cartype) -- [cat](faker.md#cat) -- [chromeUserAgent](faker.md#chromeuseragent) -- [city](faker.md#city) -- [color](faker.md#color) -- [company](faker.md#company) -- [companySuffix](faker.md#companysuffix) -- [contact](faker.md#contact) -- [country](faker.md#country) -- [countryAbr](faker.md#countryabr) -- [creditCard](faker.md#creditcard) -- [creditCardCvv](faker.md#creditcardcvv) -- [creditCardExp](faker.md#creditcardexp) -- [creditCardNumber](faker.md#creditcardnumber) -- [creditCardType](faker.md#creditcardtype) -- [currency](faker.md#currency) -- [currencyLong](faker.md#currencylong) -- [currencyShort](faker.md#currencyshort) -- [date](faker.md#date) -- [dateRange](faker.md#daterange) -- [day](faker.md#day) -- [dessert](faker.md#dessert) -- [digit](faker.md#digit) -- [digitN](faker.md#digitn) -- [dinner](faker.md#dinner) -- [dog](faker.md#dog) -- [domainName](faker.md#domainname) -- [domainSuffix](faker.md#domainsuffix) -- [email](faker.md#email) -- [emoji](faker.md#emoji) -- [emojiAlias](faker.md#emojialias) -- [emojiCategory](faker.md#emojicategory) -- [emojiDescription](faker.md#emojidescription) -- [emojiTag](faker.md#emojitag) -- [farmAnimal](faker.md#farmanimal) -- [fileExtension](faker.md#fileextension) -- [fileMimeType](faker.md#filemimetype) -- [firefoxUserAgent](faker.md#firefoxuseragent) -- [firstName](faker.md#firstname) -- [flipACoin](faker.md#flipacoin) -- [float32](faker.md#float32) -- [float32Range](faker.md#float32range) -- [float64](faker.md#float64) -- [float64Range](faker.md#float64range) -- [fruit](faker.md#fruit) -- [gamertag](faker.md#gamertag) -- [gender](faker.md#gender) -- [generate](faker.md#generate) -- [hackerAbbreviation](faker.md#hackerabbreviation) -- [hackerAdjective](faker.md#hackeradjective) -- [hackerNoun](faker.md#hackernoun) -- [hackerPhrase](faker.md#hackerphrase) -- [hackerVerb](faker.md#hackerverb) -- [hackeringVerb](faker.md#hackeringverb) -- [hexColor](faker.md#hexcolor) -- [hipsterParagraph](faker.md#hipsterparagraph) -- [hipsterSentence](faker.md#hipstersentence) -- [hipsterWord](faker.md#hipsterword) -- [hour](faker.md#hour) -- [httpMethod](faker.md#httpmethod) -- [httpStatusCode](faker.md#httpstatuscode) -- [httpStatusCodeSimple](faker.md#httpstatuscodesimple) -- [imageJpeg](faker.md#imagejpeg) -- [imagePng](faker.md#imagepng) -- [imageURL](faker.md#imageurl) -- [int16](faker.md#int16) -- [int32](faker.md#int32) -- [int64](faker.md#int64) -- [int8](faker.md#int8) -- [ipv4Address](faker.md#ipv4address) -- [ipv6Address](faker.md#ipv6address) -- [job](faker.md#job) -- [jobDescriptor](faker.md#jobdescriptor) -- [jobLevel](faker.md#joblevel) -- [jobTitle](faker.md#jobtitle) -- [language](faker.md#language) -- [languageAbbreviation](faker.md#languageabbreviation) -- [lastName](faker.md#lastname) -- [latitude](faker.md#latitude) -- [latitudeInRange](faker.md#latitudeinrange) -- [letter](faker.md#letter) -- [letterN](faker.md#lettern) -- [lexify](faker.md#lexify) -- [logLevel](faker.md#loglevel) -- [longitude](faker.md#longitude) -- [longitudeInRange](faker.md#longitudeinrange) -- [loremIpsumParagraph](faker.md#loremipsumparagraph) -- [loremIpsumSentence](faker.md#loremipsumsentence) -- [loremIpsumWord](faker.md#loremipsumword) -- [lunch](faker.md#lunch) -- [macAddress](faker.md#macaddress) -- [minute](faker.md#minute) -- [month](faker.md#month) -- [monthString](faker.md#monthstring) -- [name](faker.md#name) -- [namePrefix](faker.md#nameprefix) -- [nameSuffix](faker.md#namesuffix) -- [nanoSecond](faker.md#nanosecond) -- [noun](faker.md#noun) -- [number](faker.md#number) -- [numerify](faker.md#numerify) -- [operaUserAgent](faker.md#operauseragent) -- [paragraph](faker.md#paragraph) -- [password](faker.md#password) -- [person](faker.md#person) -- [petName](faker.md#petname) -- [phone](faker.md#phone) -- [phoneFormatted](faker.md#phoneformatted) -- [phrase](faker.md#phrase) -- [preposition](faker.md#preposition) -- [price](faker.md#price) -- [programmingLanguage](faker.md#programminglanguage) -- [programmingLanguageBest](faker.md#programminglanguagebest) -- [question](faker.md#question) -- [quote](faker.md#quote) -- [randomInt](faker.md#randomint) -- [randomString](faker.md#randomstring) -- [randomUint](faker.md#randomuint) -- [regex](faker.md#regex) -- [rgbColor](faker.md#rgbcolor) -- [safariUserAgent](faker.md#safariuseragent) -- [safeColor](faker.md#safecolor) -- [second](faker.md#second) -- [sentence](faker.md#sentence) -- [snack](faker.md#snack) -- [ssn](faker.md#ssn) -- [state](faker.md#state) -- [stateAbr](faker.md#stateabr) -- [street](faker.md#street) -- [streetName](faker.md#streetname) -- [streetNumber](faker.md#streetnumber) -- [streetPrefix](faker.md#streetprefix) -- [streetSuffix](faker.md#streetsuffix) -- [timeZone](faker.md#timezone) -- [timeZoneAbv](faker.md#timezoneabv) -- [timeZoneFull](faker.md#timezonefull) -- [timeZoneOffset](faker.md#timezoneoffset) -- [timeZoneRegion](faker.md#timezoneregion) -- [uint16](faker.md#uint16) -- [uint32](faker.md#uint32) -- [uint64](faker.md#uint64) -- [uint8](faker.md#uint8) -- [url](faker.md#url) -- [userAgent](faker.md#useragent) -- [username](faker.md#username) -- [uuid](faker.md#uuid) -- [vegetable](faker.md#vegetable) -- [verb](faker.md#verb) -- [weekDay](faker.md#weekday) -- [word](faker.md#word) -- [year](faker.md#year) -- [zip](faker.md#zip) - -## Constructors - -### constructor - -\+ **new Faker**(`seed?`: *number*): [*Faker*](faker.md) - -Create new Faker instance. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `seed?` | *number* | random seed value for deterministic generator | - -**Returns:** [*Faker*](faker.md) - -## Methods - -### achAccount - -▸ **achAccount**(): *string* - -achAccount will generate a 12 digit account number - -**Returns:** *string* - -___ - -### achRouting - -▸ **achRouting**(): *string* - -achRouting will generate a 9 digit routing number - -**Returns:** *string* - -___ - -### address - -▸ **address**(): [*Address*](../interfaces/address.md) - -address will generate a struct of address information - -**Returns:** [*Address*](../interfaces/address.md) - -___ - -### adjective - -▸ **adjective**(): *string* - -adjective will generate a random adjective - -**Returns:** *string* - -___ - -### adverb - -▸ **adverb**(): *string* - -adverb will generate a random adverb - -**Returns:** *string* - -___ - -### animal - -▸ **animal**(): *string* - -animal will return a random animal - -**Returns:** *string* - -___ - -### animalType - -▸ **animalType**(): *string* - -animalType will return a random animal type - -**Returns:** *string* - -___ - -### appAuthor - -▸ **appAuthor**(): *string* - -appAuthor will generate a random company or person name - -**Returns:** *string* - -___ - -### appName - -▸ **appName**(): *string* - -appName will generate a random app name - -**Returns:** *string* - -___ - -### appVersion - -▸ **appVersion**(): *string* - -appVersion will generate a random app version - -**Returns:** *string* - -___ - -### beerAlcohol - -▸ **beerAlcohol**(): *string* - -beerAlcohol will return a random beer alcohol level between 2.0 and 10.0 - -**Returns:** *string* - -___ - -### beerBlg - -▸ **beerBlg**(): *string* - -beerBlg will return a random beer blg between 5.0 and 20.0 - -**Returns:** *string* - -___ - -### beerHop - -▸ **beerHop**(): *string* - -beerHop will return a random beer hop - -**Returns:** *string* - -___ - -### beerIbu - -▸ **beerIbu**(): *string* - -beerIbu will return a random beer ibu value between 10 and 100 - -**Returns:** *string* - -___ - -### beerMalt - -▸ **beerMalt**(): *string* - -beerMalt will return a random beer malt - -**Returns:** *string* - -___ - -### beerName - -▸ **beerName**(): *string* - -beerName will return a random beer name - -**Returns:** *string* - -___ - -### beerStyle - -▸ **beerStyle**(): *string* - -beerStyle will return a random beer style - -**Returns:** *string* - -___ - -### beerYeast - -▸ **beerYeast**(): *string* - -beerYeast will return a random beer yeast - -**Returns:** *string* - -___ - -### bitcoinAddress - -▸ **bitcoinAddress**(): *string* - -bitcoinAddress will generate a random bitcoin address consisting of numbers, upper and lower characters - -**Returns:** *string* - -___ - -### bitcoinPrivateKey - -▸ **bitcoinPrivateKey**(): *string* - -bitcoinPrivateKey will generate a random bitcoin private key base58 consisting of numbers, upper and lower characters - -**Returns:** *string* - -___ - -### bool - -▸ **bool**(): *boolean* - -bool will generate a random boolean value - -**Returns:** *boolean* - -___ - -### breakfast - -▸ **breakfast**(): *string* - -breakfast will return a random breakfast name - -**Returns:** *string* - -___ - -### bs - -▸ **bs**(): *string* - -bs will generate a random company bs string - -**Returns:** *string* - -___ - -### buzzWord - -▸ **buzzWord**(): *string* - -buzzWord will generate a random company buzz word string - -**Returns:** *string* - -___ - -### car - -▸ **car**(): [*Car*](../interfaces/car.md) - -car will generate a struct with car information - -**Returns:** [*Car*](../interfaces/car.md) - -___ - -### carFuelType - -▸ **carFuelType**(): *string* - -carFuelType will return a random fuel type - -**Returns:** *string* - -___ - -### carMaker - -▸ **carMaker**(): *string* - -carMaker will return a random car maker - -**Returns:** *string* - -___ - -### carModel - -▸ **carModel**(): *string* - -carModel will return a random car model - -**Returns:** *string* - -___ - -### carTransmissionType - -▸ **carTransmissionType**(): *string* - -carTransmissionType will return a random transmission type - -**Returns:** *string* - -___ - -### carType - -▸ **carType**(): *string* - -carType will generate a random car type string - -**Returns:** *string* - -___ - -### cat - -▸ **cat**(): *string* - -cat will return a random cat breed - -**Returns:** *string* - -___ - -### chromeUserAgent - -▸ **chromeUserAgent**(): *string* - -chromeUserAgent will generate a random chrome browser user agent string - -**Returns:** *string* - -___ - -### city - -▸ **city**(): *string* - -city will generate a random city string - -**Returns:** *string* - -___ - -### color - -▸ **color**(): *string* - -color will generate a random color string - -**Returns:** *string* - -___ - -### company - -▸ **company**(): *string* - -company will generate a random company name string - -**Returns:** *string* - -___ - -### companySuffix - -▸ **companySuffix**(): *string* - -companySuffix will generate a random company suffix string - -**Returns:** *string* - -___ - -### contact - -▸ **contact**(): [*Contact*](../interfaces/contact.md) - -contact will generate a struct with information randomly populated contact information - -**Returns:** [*Contact*](../interfaces/contact.md) - -___ - -### country - -▸ **country**(): *string* - -country will generate a random country string - -**Returns:** *string* - -___ - -### countryAbr - -▸ **countryAbr**(): *string* - -countryAbr will generate a random abbreviated country string - -**Returns:** *string* - -___ - -### creditCard - -▸ **creditCard**(): [*CreditCard*](../interfaces/creditcard.md) - -creditCard will generate a struct full of credit card information - -**Returns:** [*CreditCard*](../interfaces/creditcard.md) - -___ - -### creditCardCvv - -▸ **creditCardCvv**(): *string* - -creditCardCvv will generate a random CVV number Its a string because you could have 017 as an exp date - -**Returns:** *string* - -___ - -### creditCardExp - -▸ **creditCardExp**(): *string* - -creditCardExp will generate a random credit card expiration date string Exp date will always be a future date - -**Returns:** *string* - -___ - -### creditCardNumber - -▸ **creditCardNumber**(`opts?`: [*CreditCardOptions*](../interfaces/creditcardoptions.md)): *string* - -creditCardNumber will generate a random luhn credit card number - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `opts?` | [*CreditCardOptions*](../interfaces/creditcardoptions.md) | - -**Returns:** *string* - -___ - -### creditCardType - -▸ **creditCardType**(): *string* - -creditCardType will generate a random credit card type string - -**Returns:** *string* - -___ - -### currency - -▸ **currency**(): [*Currency*](../interfaces/currency.md) - -currency will generate a struct with random currency information - -**Returns:** [*Currency*](../interfaces/currency.md) - -___ - -### currencyLong - -▸ **currencyLong**(): *string* - -currencyLong will generate a random long currency name - -**Returns:** *string* - -___ - -### currencyShort - -▸ **currencyShort**(): *string* - -currencyShort will generate a random short currency value - -**Returns:** *string* - -___ - -### date - -▸ **date**(): Date - -date will generate a random time.Time struct - -**Returns:** Date - -___ - -### dateRange - -▸ **dateRange**(`start`: Date, `end`: Date): Date - -dateRange will generate a random time.Time struct between a start and end date - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `start` | Date | -| `end` | Date | - -**Returns:** Date - -___ - -### day - -▸ **day**(): *number* - -day will generate a random day between 1 - 31 - -**Returns:** *number* - -___ - -### dessert - -▸ **dessert**(): *string* - -dessert will return a random dessert name - -**Returns:** *string* - -___ - -### digit - -▸ **digit**(): *string* - -digit will generate a single ASCII digit - -**Returns:** *string* - -___ - -### digitN - -▸ **digitN**(`m`: *number*): *string* - -digitN will generate a random string of length N consists of ASCII digits (note it can start with 0). - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `m` | *number* | - -**Returns:** *string* - -___ - -### dinner - -▸ **dinner**(): *string* - -dinner will return a random dinner name - -**Returns:** *string* - -___ - -### dog - -▸ **dog**(): *string* - -dog will return a random dog breed - -**Returns:** *string* - -___ - -### domainName - -▸ **domainName**(): *string* - -domainName will generate a random url domain name - -**Returns:** *string* - -___ - -### domainSuffix - -▸ **domainSuffix**(): *string* - -domainSuffix will generate a random domain suffix - -**Returns:** *string* - -___ - -### email - -▸ **email**(): *string* - -email will generate a random email string - -**Returns:** *string* - -___ - -### emoji - -▸ **emoji**(): *string* - -emoji will return a random fun emoji - -**Returns:** *string* - -___ - -### emojiAlias - -▸ **emojiAlias**(): *string* - -emojiAlias will return a random fun emoji alias - -**Returns:** *string* - -___ - -### emojiCategory - -▸ **emojiCategory**(): *string* - -emojiCategory will return a random fun emoji category - -**Returns:** *string* - -___ - -### emojiDescription - -▸ **emojiDescription**(): *string* - -emojiDescription will return a random fun emoji description - -**Returns:** *string* - -___ - -### emojiTag - -▸ **emojiTag**(): *string* - -emojiTag will return a random fun emoji tag - -**Returns:** *string* - -___ - -### farmAnimal - -▸ **farmAnimal**(): *string* - -farmAnimal will return a random animal that usually lives on a farm - -**Returns:** *string* - -___ - -### fileExtension - -▸ **fileExtension**(): *string* - -fileExtension will generate a random file extension - -**Returns:** *string* - -___ - -### fileMimeType - -▸ **fileMimeType**(): *string* - -fileMimeType will generate a random mime file type - -**Returns:** *string* - -___ - -### firefoxUserAgent - -▸ **firefoxUserAgent**(): *string* - -firefoxUserAgent will generate a random firefox broswer user agent string - -**Returns:** *string* - -___ - -### firstName - -▸ **firstName**(): *string* - -firstName will generate a random first name - -**Returns:** *string* - -___ - -### flipACoin - -▸ **flipACoin**(): *string* - -flipACoin will return a random value of Heads or Tails - -**Returns:** *string* - -___ - -### float32 - -▸ **float32**(): *number* - -float32 will generate a random float32 value - -**Returns:** *number* - -___ - -### float32Range - -▸ **float32Range**(`min`: *number*, `max`: *number*): *number* - -float32Range will generate a random float32 value between min and max - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `min` | *number* | -| `max` | *number* | - -**Returns:** *number* - -___ - -### float64 - -▸ **float64**(): *number* - -float64 will generate a random float64 value - -**Returns:** *number* - -___ - -### float64Range - -▸ **float64Range**(`min`: *number*, `max`: *number*): *number* - -float64Range will generate a random float64 value between min and max - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `min` | *number* | -| `max` | *number* | - -**Returns:** *number* - -___ - -### fruit - -▸ **fruit**(): *string* - -fruit will return a random fruit name - -**Returns:** *string* - -___ - -### gamertag - -▸ **gamertag**(): *string* - -gamertag will generate a random video game username - -**Returns:** *string* - -___ - -### gender - -▸ **gender**(): *string* - -gender will generate a random gender string - -**Returns:** *string* - -___ - -### generate - -▸ **generate**(`dataVal`: *string*): *string* - -Generate fake information from given string. Replaceable values should be within {} - -**Functions** -- `{firstname}` - `billy` -- `{sentence:3}` - `Record river mind.` -- `{number:1,10}` - `4` -- `{uuid}` - `590c1440-9888-45b0-bd51-a817ee07c3f2` - -**Letters/Numbers** -- random numbers: `###` - `481` -- random letters: `???` - `fda` - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `dataVal` | *string* | template string | - -**Returns:** *string* - -___ - -### hackerAbbreviation - -▸ **hackerAbbreviation**(): *string* - -hackerAbbreviation will return a random hacker abbreviation - -**Returns:** *string* - -___ - -### hackerAdjective - -▸ **hackerAdjective**(): *string* - -hackerAdjective will return a random hacker adjective - -**Returns:** *string* - -___ - -### hackerNoun - -▸ **hackerNoun**(): *string* - -hackerNoun will return a random hacker noun - -**Returns:** *string* - -___ - -### hackerPhrase - -▸ **hackerPhrase**(): *string* - -hackerPhrase will return a random hacker sentence - -**Returns:** *string* - -___ - -### hackerVerb - -▸ **hackerVerb**(): *string* - -hackerVerb will return a random hacker verb - -**Returns:** *string* - -___ - -### hackeringVerb - -▸ **hackeringVerb**(): *string* - -hackeringVerb will return a random hacker ingverb - -**Returns:** *string* - -___ - -### hexColor - -▸ **hexColor**(): *string* - -hexColor will generate a random hexadecimal color string - -**Returns:** *string* - -___ - -### hipsterParagraph - -▸ **hipsterParagraph**(`paragraphCount`: *number*, `sentenceCount`: *number*, `wordCount`: *number*, `separator`: *string*): *string* - -hipsterParagraph will generate a random paragraphGenerator Set Paragraph Count Set Sentence Count Set Word Count Set Paragraph Separator - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `paragraphCount` | *number* | -| `sentenceCount` | *number* | -| `wordCount` | *number* | -| `separator` | *string* | - -**Returns:** *string* - -___ - -### hipsterSentence - -▸ **hipsterSentence**(`wordCount`: *number*): *string* - -hipsterSentence will generate a random sentence - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `wordCount` | *number* | - -**Returns:** *string* - -___ - -### hipsterWord - -▸ **hipsterWord**(): *string* - -hipsterWord will return a single hipster word - -**Returns:** *string* - -___ - -### hour - -▸ **hour**(): *number* - -hour will generate a random hour - in military time - -**Returns:** *number* - -___ - -### httpMethod - -▸ **httpMethod**(): *string* - -httpMethod will generate a random http method - -**Returns:** *string* - -___ - -### httpStatusCode - -▸ **httpStatusCode**(): *number* - -httpStatusCode will generate a random status code - -**Returns:** *number* - -___ - -### httpStatusCodeSimple - -▸ **httpStatusCodeSimple**(): *number* - -httpStatusCodeSimple will generate a random simple status code - -**Returns:** *number* - -___ - -### imageJpeg - -▸ **imageJpeg**(`width`: *number*, `height`: *number*): ArrayBuffer - -imageJpeg generates a random rgba jpeg image - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `width` | *number* | -| `height` | *number* | - -**Returns:** ArrayBuffer - -___ - -### imagePng - -▸ **imagePng**(`width`: *number*, `height`: *number*): ArrayBuffer - -imagePng generates a random rgba png image - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `width` | *number* | -| `height` | *number* | - -**Returns:** ArrayBuffer - -___ - -### imageURL - -▸ **imageURL**(`width`: *number*, `height`: *number*): *string* - -imageURL will generate a random Image Based Upon Height And Width. https://picsum.photos/ - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `width` | *number* | -| `height` | *number* | - -**Returns:** *string* - -___ - -### int16 - -▸ **int16**(): *number* - -int16 will generate a random int16 value - -**Returns:** *number* - -___ - -### int32 - -▸ **int32**(): *number* - -int32 will generate a random int32 value - -**Returns:** *number* - -___ - -### int64 - -▸ **int64**(): *number* - -int64 will generate a random int64 value - -**Returns:** *number* - -___ - -### int8 - -▸ **int8**(): *number* - -int8 will generate a random Int8 value - -**Returns:** *number* - -___ - -### ipv4Address - -▸ **ipv4Address**(): *string* - -ipv4Address will generate a random version 4 ip address - -**Returns:** *string* - -___ - -### ipv6Address - -▸ **ipv6Address**(): *string* - -ipv6Address will generate a random version 6 ip address - -**Returns:** *string* - -___ - -### job - -▸ **job**(): [*Job*](../interfaces/job.md) - -job will generate a struct with random job information - -**Returns:** [*Job*](../interfaces/job.md) - -___ - -### jobDescriptor - -▸ **jobDescriptor**(): *string* - -jobDescriptor will generate a random job descriptor string - -**Returns:** *string* - -___ - -### jobLevel - -▸ **jobLevel**(): *string* - -jobLevel will generate a random job level string - -**Returns:** *string* - -___ - -### jobTitle - -▸ **jobTitle**(): *string* - -jobTitle will generate a random job title string - -**Returns:** *string* - -___ - -### language - -▸ **language**(): *string* - -language will return a random language - -**Returns:** *string* - -___ - -### languageAbbreviation - -▸ **languageAbbreviation**(): *string* - -languageAbbreviation will return a random language abbreviation - -**Returns:** *string* - -___ - -### lastName - -▸ **lastName**(): *string* - -lastName will generate a random last name - -**Returns:** *string* - -___ - -### latitude - -▸ **latitude**(): *number* - -latitude will generate a random latitude float64 - -**Returns:** *number* - -___ - -### latitudeInRange - -▸ **latitudeInRange**(`min`: *number*, `max`: *number*): *number* - -latitudeInRange will generate a random latitude within the input range - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `min` | *number* | -| `max` | *number* | - -**Returns:** *number* - -___ - -### letter - -▸ **letter**(): *string* - -letter will generate a single random lower case ASCII letter - -**Returns:** *string* - -___ - -### letterN - -▸ **letterN**(`n`: *number*): *string* - -letterN will generate a random ASCII string with length N - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `n` | *number* | number of letters to generate | - -**Returns:** *string* - -___ - -### lexify - -▸ **lexify**(`str`: *string*): *string* - -lexify will replace ? with random generated letters - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `str` | *string* | - -**Returns:** *string* - -___ - -### logLevel - -▸ **logLevel**(): *string* - -logLevel will generate a random log level See data/LogLevels for list of available levels - -**Returns:** *string* - -___ - -### longitude - -▸ **longitude**(): *number* - -longitude will generate a random longitude float64 - -**Returns:** *number* - -___ - -### longitudeInRange - -▸ **longitudeInRange**(`min`: *number*, `max`: *number*): *number* - -longitudeInRange will generate a random longitude within the input range - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `min` | *number* | -| `max` | *number* | - -**Returns:** *number* - -___ - -### loremIpsumParagraph - -▸ **loremIpsumParagraph**(`paragraphCount`: *number*, `sentenceCount`: *number*, `wordCount`: *number*, `separator`: *string*): *string* - -loremIpsumParagraph will generate a random paragraphGenerator - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `paragraphCount` | *number* | -| `sentenceCount` | *number* | -| `wordCount` | *number* | -| `separator` | *string* | - -**Returns:** *string* - -___ - -### loremIpsumSentence - -▸ **loremIpsumSentence**(`wordCount`: *number*): *string* - -loremIpsumSentence will generate a random sentence - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `wordCount` | *number* | - -**Returns:** *string* - -___ - -### loremIpsumWord - -▸ **loremIpsumWord**(): *string* - -loremIpsumWord will generate a random word - -**Returns:** *string* - -___ - -### lunch - -▸ **lunch**(): *string* - -lunch will return a random lunch name - -**Returns:** *string* - -___ - -### macAddress - -▸ **macAddress**(): *string* - -macAddress will generate a random mac address - -**Returns:** *string* - -___ - -### minute - -▸ **minute**(): *number* - -minute will generate a random minute - -**Returns:** *number* - -___ - -### month - -▸ **month**(): *number* - -month will generate a random month int - -**Returns:** *number* - -___ - -### monthString - -▸ **monthString**(): *string* - -monthString will generate a random month string - -**Returns:** *string* - -___ - -### name - -▸ **name**(): *string* - -name will generate a random First and Last Name - -**Returns:** *string* - -___ - -### namePrefix - -▸ **namePrefix**(): *string* - -namePrefix will generate a random name prefix - -**Returns:** *string* - -___ - -### nameSuffix - -▸ **nameSuffix**(): *string* - -nameSuffix will generate a random name suffix - -**Returns:** *string* - -___ - -### nanoSecond - -▸ **nanoSecond**(): *number* - -nanoSecond will generate a random nano second - -**Returns:** *number* - -___ - -### noun - -▸ **noun**(): *string* - -noun will generate a random noun - -**Returns:** *string* - -___ - -### number - -▸ **number**(`min`: *number*, `max`: *number*): *number* - -number will generate a random number between given min And max - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `min` | *number* | -| `max` | *number* | - -**Returns:** *number* - -___ - -### numerify - -▸ **numerify**(`str`: *string*): *string* - -numerify will replace # with random numerical values - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `str` | *string* | - -**Returns:** *string* - -___ - -### operaUserAgent - -▸ **operaUserAgent**(): *string* - -operaUserAgent will generate a random opera browser user agent string - -**Returns:** *string* - -___ - -### paragraph - -▸ **paragraph**(`paragraphCount`: *number*, `sentenceCount`: *number*, `wordCount`: *number*, `separator`: *string*): *string* - -paragraph will generate a random paragraphGenerator - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `paragraphCount` | *number* | -| `sentenceCount` | *number* | -| `wordCount` | *number* | -| `separator` | *string* | - -**Returns:** *string* - -___ - -### password - -▸ **password**(`lower`: *boolean*, `upper`: *boolean*, `numeric`: *boolean*, `special`: *boolean*, `num`: *number*): *string* - -password will generate a random password. Minimum number length of 5 if less than. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `lower` | *boolean* | -| `upper` | *boolean* | -| `numeric` | *boolean* | -| `special` | *boolean* | -| `num` | *number* | - -**Returns:** *string* - -___ - -### person - -▸ **person**(): *string* - -person will generate a struct with person information - -**Returns:** *string* - -___ - -### petName - -▸ **petName**(): *string* - -petName will return a random fun pet name - -**Returns:** *string* - -___ - -### phone - -▸ **phone**(): *string* - -phone will generate a random phone number string - -**Returns:** *string* - -___ - -### phoneFormatted - -▸ **phoneFormatted**(): *string* - -phoneFormatted will generate a random phone number string - -**Returns:** *string* - -___ - -### phrase - -▸ **phrase**(): *string* - -phrase will return a random dictionary phrase - -**Returns:** *string* - -___ - -### preposition - -▸ **preposition**(): *string* - -preposition will generate a random preposition - -**Returns:** *string* - -___ - -### price - -▸ **price**(`min`: *number*, `max`: *number*): *number* - -price will take in a min and max value and return a formatted price - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `min` | *number* | -| `max` | *number* | - -**Returns:** *number* - -___ - -### programmingLanguage - -▸ **programmingLanguage**(): *string* - -programmingLanguage will return a random programming language - -**Returns:** *string* - -___ - -### programmingLanguageBest - -▸ **programmingLanguageBest**(): *string* - -programmingLanguageBest will return a random programming language - -**Returns:** *string* - -___ - -### question - -▸ **question**(): *string* - -question will return a random question - -**Returns:** *string* - -___ - -### quote - -▸ **quote**(): *string* - -quote will return a random quote from a random person - -**Returns:** *string* - -___ - -### randomInt - -▸ **randomInt**(`all`: *number*[]): *number* - -randomInt will take in a slice of int and return a randomly selected value - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `all` | *number*[] | - -**Returns:** *number* - -___ - -### randomString - -▸ **randomString**(`all`: *string*[]): *string* - -randomString will take in a slice of string and return a randomly selected value - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `all` | *string*[] | - -**Returns:** *string* - -___ - -### randomUint - -▸ **randomUint**(`all`: *number*[]): *number* - -randomUint will take in a slice of uint and return a randomly selected value - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `all` | *number*[] | - -**Returns:** *number* - -___ - -### regex - -▸ **regex**(`regexStr`: *string*): *string* - -regex will generate a string based upon a RE2 syntax - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `regexStr` | *string* | - -**Returns:** *string* - -___ - -### rgbColor - -▸ **rgbColor**(): *number*[] - -rgbColor will generate a random int slice color - -**Returns:** *number*[] - -___ - -### safariUserAgent - -▸ **safariUserAgent**(): *string* - -safariUserAgent will generate a random safari browser user agent string - -**Returns:** *string* - -___ - -### safeColor - -▸ **safeColor**(): *string* - -safeColor will generate a random safe color string - -**Returns:** *string* - -___ - -### second - -▸ **second**(): *number* - -second will generate a random second - -**Returns:** *number* - -___ - -### sentence - -▸ **sentence**(`wordCount`: *number*): *string* - -sentence will generate a random sentence - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `wordCount` | *number* | - -**Returns:** *string* - -___ - -### snack - -▸ **snack**(): *string* - -snack will return a random snack name - -**Returns:** *string* - -___ - -### ssn - -▸ **ssn**(): *string* - -SSN will generate a random Social Security Number - -**Returns:** *string* - -___ - -### state - -▸ **state**(): *string* - -state will generate a random state string - -**Returns:** *string* - -___ - -### stateAbr - -▸ **stateAbr**(): *string* - -stateAbr will generate a random abbreviated state string - -**Returns:** *string* - -___ - -### street - -▸ **street**(): *string* - -street will generate a random address street string - -**Returns:** *string* - -___ - -### streetName - -▸ **streetName**(): *string* - -streetName will generate a random address street name string - -**Returns:** *string* - -___ - -### streetNumber - -▸ **streetNumber**(): *string* - -streetNumber will generate a random address street number string - -**Returns:** *string* - -___ - -### streetPrefix - -▸ **streetPrefix**(): *string* - -streetPrefix will generate a random address street prefix string - -**Returns:** *string* - -___ - -### streetSuffix - -▸ **streetSuffix**(): *string* - -streetSuffix will generate a random address street suffix string - -**Returns:** *string* - -___ - -### timeZone - -▸ **timeZone**(): *string* - -timeZone will select a random timezone string - -**Returns:** *string* - -___ - -### timeZoneAbv - -▸ **timeZoneAbv**(): *string* - -timeZoneAbv will select a random timezone abbreviation string - -**Returns:** *string* - -___ - -### timeZoneFull - -▸ **timeZoneFull**(): *string* - -timeZoneFull will select a random full timezone string - -**Returns:** *string* - -___ - -### timeZoneOffset - -▸ **timeZoneOffset**(): *number* - -timeZoneOffset will select a random timezone offset - -**Returns:** *number* - -___ - -### timeZoneRegion - -▸ **timeZoneRegion**(): *string* - -timeZoneRegion will select a random region style timezone string, e.g. "America/Chicago" - -**Returns:** *string* - -___ - -### uint16 - -▸ **uint16**(): *number* - -uint16 will generate a random uint16 value - -**Returns:** *number* - -___ - -### uint32 - -▸ **uint32**(): *number* - -uint32 will generate a random uint32 value - -**Returns:** *number* - -___ - -### uint64 - -▸ **uint64**(): *number* - -uint64 will generate a random uint64 value - -**Returns:** *number* - -___ - -### uint8 - -▸ **uint8**(): *number* - -uint8 will generate a random uint8 value - -**Returns:** *number* - -___ - -### url - -▸ **url**(): *string* - -url will generate a random url string - -**Returns:** *string* - -___ - -### userAgent - -▸ **userAgent**(): *string* - -userAgent will generate a random broswer user agent - -**Returns:** *string* - -___ - -### username - -▸ **username**(): *string* - -username will generate a random username based upon picking a random lastname and random numbers at the end - -**Returns:** *string* - -___ - -### uuid - -▸ **uuid**(): *string* - -uuid (version 4) will generate a random unique identifier based upon random numbers Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - -**Returns:** *string* - -___ - -### vegetable - -▸ **vegetable**(): *string* - -vegetable will return a random vegetable name - -**Returns:** *string* - -___ - -### verb - -▸ **verb**(): *string* - -verb will generate a random verb - -**Returns:** *string* - -___ - -### weekDay - -▸ **weekDay**(): *string* - -weekDay will generate a random weekday string (Monday-Sunday) - -**Returns:** *string* - -___ - -### word - -▸ **word**(): *string* - -word will generate a random word - -**Returns:** *string* - -___ - -### year - -▸ **year**(): *number* - -year will generate a random year between 1900 - current year - -**Returns:** *number* - -___ - -### zip - -▸ **zip**(): *string* - -zip will generate a random Zip code string - -**Returns:** *string* diff --git a/docs/interfaces/address.md b/docs/interfaces/address.md deleted file mode 100644 index 16e0b24..0000000 --- a/docs/interfaces/address.md +++ /dev/null @@ -1,64 +0,0 @@ -# Interface: Address - -Address is a struct full of address information - -## Table of contents - -### Properties - -- [address](address.md#address) -- [city](address.md#city) -- [country](address.md#country) -- [latitude](address.md#latitude) -- [longitude](address.md#longitude) -- [state](address.md#state) -- [street](address.md#street) -- [zip](address.md#zip) - -## Properties - -### address - -• **address**: *string* - -___ - -### city - -• **city**: *string* - -___ - -### country - -• **country**: *string* - -___ - -### latitude - -• **latitude**: *number* - -___ - -### longitude - -• **longitude**: *number* - -___ - -### state - -• **state**: *string* - -___ - -### street - -• **street**: *string* - -___ - -### zip - -• **zip**: *string* diff --git a/docs/interfaces/car.md b/docs/interfaces/car.md deleted file mode 100644 index 7000c5e..0000000 --- a/docs/interfaces/car.md +++ /dev/null @@ -1,50 +0,0 @@ -# Interface: Car - -Car is a struct dataset of all car information - -## Table of contents - -### Properties - -- [brand](car.md#brand) -- [fuel](car.md#fuel) -- [model](car.md#model) -- [transmission](car.md#transmission) -- [type](car.md#type) -- [year](car.md#year) - -## Properties - -### brand - -• **brand**: *string* - -___ - -### fuel - -• **fuel**: *string* - -___ - -### model - -• **model**: *string* - -___ - -### transmission - -• **transmission**: *string* - -___ - -### type - -• **type**: *string* - -___ - -### year - -• **year**: *number* diff --git a/docs/interfaces/contact.md b/docs/interfaces/contact.md deleted file mode 100644 index 3a42378..0000000 --- a/docs/interfaces/contact.md +++ /dev/null @@ -1,22 +0,0 @@ -# Interface: Contact - -Contact struct full of contact info - -## Table of contents - -### Properties - -- [email](contact.md#email) -- [phone](contact.md#phone) - -## Properties - -### email - -• **email**: *string* - -___ - -### phone - -• **phone**: *string* diff --git a/docs/interfaces/creditcard.md b/docs/interfaces/creditcard.md deleted file mode 100644 index d4b1c4d..0000000 --- a/docs/interfaces/creditcard.md +++ /dev/null @@ -1,36 +0,0 @@ -# Interface: CreditCard - -CreditCard is a struct containing credit variables - -## Table of contents - -### Properties - -- [cvv](creditcard.md#cvv) -- [exp](creditcard.md#exp) -- [number](creditcard.md#number) -- [type](creditcard.md#type) - -## Properties - -### cvv - -• **cvv**: *string* - -___ - -### exp - -• **exp**: *string* - -___ - -### number - -• **number**: *string* - -___ - -### type - -• **type**: *string* diff --git a/docs/interfaces/creditcardoptions.md b/docs/interfaces/creditcardoptions.md deleted file mode 100644 index 439c93b..0000000 --- a/docs/interfaces/creditcardoptions.md +++ /dev/null @@ -1,29 +0,0 @@ -# Interface: CreditCardOptions - -CreditCardOptions is the options for credit card number - -## Table of contents - -### Properties - -- [bins](creditcardoptions.md#bins) -- [gaps](creditcardoptions.md#gaps) -- [types](creditcardoptions.md#types) - -## Properties - -### bins - -• **bins**: *string*[] - -___ - -### gaps - -• **gaps**: *boolean* - -___ - -### types - -• **types**: *string*[] diff --git a/docs/interfaces/currency.md b/docs/interfaces/currency.md deleted file mode 100644 index aaef834..0000000 --- a/docs/interfaces/currency.md +++ /dev/null @@ -1,22 +0,0 @@ -# Interface: Currency - -Currency is a struct of currency information - -## Table of contents - -### Properties - -- [long](currency.md#long) -- [short](currency.md#short) - -## Properties - -### long - -• **long**: *string* - -___ - -### short - -• **short**: *string* diff --git a/docs/interfaces/job.md b/docs/interfaces/job.md deleted file mode 100644 index ba43d77..0000000 --- a/docs/interfaces/job.md +++ /dev/null @@ -1,36 +0,0 @@ -# Interface: Job - -Job is a struct of job information - -## Table of contents - -### Properties - -- [company](job.md#company) -- [descriptor](job.md#descriptor) -- [level](job.md#level) -- [title](job.md#title) - -## Properties - -### company - -• **company**: *string* - -___ - -### descriptor - -• **descriptor**: *string* - -___ - -### level - -• **level**: *string* - -___ - -### title - -• **title**: *string* diff --git a/docs/interfaces/person.md b/docs/interfaces/person.md deleted file mode 100644 index 8295f43..0000000 --- a/docs/interfaces/person.md +++ /dev/null @@ -1,64 +0,0 @@ -# Interface: Person - -Person is a struct of person information - -## Table of contents - -### Properties - -- [address](person.md#address) -- [contact](person.md#contact) -- [creditCard](person.md#creditcard) -- [firstName](person.md#firstname) -- [gender](person.md#gender) -- [image](person.md#image) -- [job](person.md#job) -- [lastName](person.md#lastname) - -## Properties - -### address - -• **address**: [*Address*](address.md) - -___ - -### contact - -• **contact**: [*Contact*](contact.md) - -___ - -### creditCard - -• **creditCard**: [*CreditCard*](creditcard.md) - -___ - -### firstName - -• **firstName**: *string* - -___ - -### gender - -• **gender**: *string* - -___ - -### image - -• **image**: *string* - -___ - -### job - -• **job**: [*Job*](job.md) - -___ - -### lastName - -• **lastName**: *string* diff --git a/faker.go b/faker.go deleted file mode 100644 index 4c488c0..0000000 --- a/faker.go +++ /dev/null @@ -1,64 +0,0 @@ -package faker - -import ( - "github.com/brianvoe/gofakeit/v6" - "github.com/dop251/goja" - "go.k6.io/k6/js/modules" - "lukechampine.com/frand" -) - -type Faker struct { - vu modules.VU - - *gofakeit.Faker -} - -func newFaker(vu modules.VU, seed int64) *Faker { //nolint:varnamelen - src := frand.NewSource() - - if seed != 0 { - src.Seed(seed) - } - - return &Faker{vu: vu, Faker: gofakeit.NewCustom(src)} -} - -func (f *Faker) Ipv4Address() string { - return f.IPv4Address() -} - -func (f *Faker) Ipv6Address() string { - return f.IPv6Address() -} - -func (f *Faker) HttpStatusCodeSimple() int { //nolint:golint,revive,stylecheck - return f.HTTPStatusCodeSimple() -} - -func (f *Faker) HttpStatusCode() int { //nolint:golint,revive,stylecheck - return f.HTTPStatusCode() -} - -func (f *Faker) HttpMethod() string { //nolint:golint,revive,stylecheck - return f.HTTPMethod() -} - -func (f *Faker) Bs() string { - return f.BS() -} - -func (f *Faker) Uuid() string { //nolint:golint,revive,stylecheck - return f.UUID() -} - -func (f *Faker) RgbColor() []int { - return f.RGBColor() -} - -func (f *Faker) ImageJpeg(width int, height int) goja.ArrayBuffer { - return f.vu.Runtime().NewArrayBuffer(f.Faker.ImageJpeg(width, height)) -} - -func (f *Faker) ImagePng(width int, height int) goja.ArrayBuffer { - return f.vu.Runtime().NewArrayBuffer(f.Faker.ImagePng(width, height)) -} diff --git a/faker/faker.go b/faker/faker.go new file mode 100644 index 0000000..4872f92 --- /dev/null +++ b/faker/faker.go @@ -0,0 +1,191 @@ +// Package faker contains Faker class implementation for goja. +package faker + +import ( + "math/rand" + + "github.com/brianvoe/gofakeit/v6" + "github.com/dop251/goja" + "lukechampine.com/frand" +) + +// Constructor is a Faker class constructor. +func Constructor(call goja.ConstructorCall, runtime *goja.Runtime) *goja.Object { + seed := call.Argument(0).ToInteger() + + return runtime.NewDynamicObject(newFaker(seed, runtime)) +} + +// New calls Faker constructor and returns new Faker object. +func New(seed int64, runtime *goja.Runtime) *goja.Object { + return Constructor( + goja.ConstructorCall{ + This: runtime.NewObject(), + Arguments: []goja.Value{runtime.ToValue(seed)}, + }, + runtime, + ) +} + +// faker represents JavaScript Faker class. +type faker struct { + rand *rand.Rand + runtime *goja.Runtime +} + +// newFaker creates new Faker instance. +func newFaker(seed int64, runtime *goja.Runtime) *faker { + src := frand.NewSource() + + if seed != 0 { + src.Seed(seed) + } + + return &faker{rand: rand.New(src), runtime: runtime} //nolint:gosec +} + +// Delete implements goja.DynamicObject. +func (f *faker) Delete(_ string) bool { + return false +} + +// Get implements goja.DynamicObject. +func (f *faker) Get(key string) goja.Value { + if key == "call" { + return f.runtime.ToValue(f.call) + } + + category := newCategory(f, key) + if category == nil { + return goja.Undefined() + } + + return f.runtime.NewDynamicObject(category) +} + +// Has implements goja.DynamicObject. +func (f *faker) Has(_ string) bool { + return false +} + +// Keys implements goja.DynamicObject. +func (f *faker) Keys() []string { + return getCategoryNames() +} + +// Set implements goja.DynamicObject. +func (f *faker) Set(_ string, _ goja.Value) bool { + return false +} + +// call invokes faker function by name. +// The faker function name is the first parameter, the rest of parameters passed to function. +func (f *faker) call(call goja.FunctionCall) goja.Value { + function := call.Argument(0) + + if goja.IsUndefined(function) { + panic(f.runtime.NewTypeError(function)) + } + + info, found := lookupFunc(function.ToString().String()) + if !found { + panic(f.runtime.NewTypeError(function)) + } + + call.Arguments = call.Arguments[1:] + + return f.invoke(info, call) +} + +func (f *faker) toMapParams(info *gofakeit.Info, call goja.FunctionCall) *gofakeit.MapParams { + if len(info.Params) == 0 { + return nil + } + + params := gofakeit.NewMapParams() + + for idx, param := range info.Params { + val := call.Argument(idx) + if goja.IsUndefined(val) { + if len(param.Default) != 0 { + params.Add(param.Field, param.Default) + continue + } + + if param.Optional { + continue + } + + panic(f.runtime.NewTypeError("missing parameter: %s", param.Field)) + } + + var arr []string + + if f.runtime.ExportTo(val, &arr) == nil { + (*params)[param.Field] = arr + } else { + params.Add(param.Field, val.String()) + } + } + + return params +} + +func (f *faker) invoke(info *gofakeit.Info, call goja.FunctionCall) goja.Value { + params := f.toMapParams(info, call) + + val, err := info.Generate(f.rand, params, info) + if err != nil { + panic(f.runtime.NewGoError(err)) + } + + return f.runtime.ToValue(val) +} + +type category struct { + faker *faker + funcs map[string]*gofakeit.Info +} + +func newCategory(faker *faker, name string) *category { + funcs, ok := lookupCategory(name) + if !ok { + return nil + } + + return &category{faker: faker, funcs: funcs} +} + +// Delete implements goja.DynamicObject. +func (c *category) Delete(_ string) bool { + return false +} + +// Get implements goja.DynamicObject. +func (c *category) Get(key string) goja.Value { + info, ok := c.funcs[key] + if !ok { + return goja.Undefined() + } + + return c.faker.runtime.ToValue(func(call goja.FunctionCall) goja.Value { + return c.faker.invoke(info, call) + }) +} + +// Has implements goja.DynamicObject. +func (c *category) Has(_ string) bool { + return false +} + +// Keys implements goja.DynamicObject. +func (c *category) Keys() []string { + return []string{} +} + +// Set implements goja.DynamicObject. +func (c *category) Set(_ string, _ goja.Value) bool { + return false +} + +//go:generate go run -tags codegen ../tools/codegen json ../functions.json diff --git a/faker/faker_internal_test.go b/faker/faker_internal_test.go new file mode 100644 index 0000000..c57e0fc --- /dev/null +++ b/faker/faker_internal_test.go @@ -0,0 +1,136 @@ +package faker + +import ( + "errors" + "math/rand" + "testing" + + "github.com/brianvoe/gofakeit/v6" + "github.com/dop251/goja" + "github.com/stretchr/testify/require" +) + +func Test_faker_dynamic(t *testing.T) { + t.Parallel() + + faker := newFaker(11, goja.New()) + + // Delete + require.False(t, faker.Delete("foo")) + + // Get + require.False(t, goja.IsUndefined(faker.Get("call"))) + require.True(t, goja.IsUndefined(faker.Get("no such category"))) + require.False(t, goja.IsUndefined(faker.Get("zen"))) + + // Has + require.False(t, faker.Has("zen")) + + // Keys + require.NotEmpty(t, faker.Keys()) + + // Set + require.False(t, faker.Set("foo", faker.runtime.ToValue(42))) +} + +func Test_faker_invoke(t *testing.T) { + t.Parallel() + + faker := newFaker(11, goja.New()) + + info, ok := lookupFunc("username") + + require.True(t, ok) + + val := faker.invoke(info, goja.FunctionCall{This: goja.Undefined()}) + + require.False(t, goja.IsUndefined(val)) + + clone := *info + info = &clone + + info.Generate = func(_ *rand.Rand, _ *gofakeit.MapParams, _ *gofakeit.Info) (any, error) { + return nil, errors.ErrUnsupported + } + + require.Panics(t, func() { + faker.invoke(info, goja.FunctionCall{This: goja.Undefined()}) + }) +} + +func Test_newCategory(t *testing.T) { + t.Parallel() + + faker := newFaker(11, goja.New()) + + require.Nil(t, newCategory(faker, "no such category")) + require.NotNil(t, newCategory(faker, "zen")) +} + +func Test_category_dynamic(t *testing.T) { + t.Parallel() + + category := newCategory(newFaker(11, goja.New()), "zen") + + // Delete + require.False(t, category.Delete("foo")) + + // Get + require.False(t, goja.IsUndefined(category.Get("username"))) + require.True(t, goja.IsUndefined(category.Get("no such function"))) + + // Has + require.False(t, category.Has("username")) + + // Keys + require.Empty(t, category.Keys()) + + // Set + require.False(t, category.Set("foo", category.faker.runtime.ToValue(42))) +} + +func Test_faker_toMapParams(t *testing.T) { + t.Parallel() + + runtime := goja.New() + faker := newFaker(11, runtime) + + info, ok := lookupFunc("intRange") + + require.True(t, ok) + + var call goja.FunctionCall + + require.Panics(t, func() { + faker.toMapParams(info, call) + }) + + call.Arguments = append(call.Arguments, runtime.ToValue(1), runtime.ToValue(42)) + + mparams := faker.toMapParams(info, call) + + require.NotNil(t, mparams) + require.Equal(t, &gofakeit.MapParams{"min": []string{"1"}, "max": []string{"42"}}, mparams) + + clone := *info + clone.Params = nil + clone.Params = append(clone.Params, info.Params...) + info = &clone + + info.Params[1].Default = "24" + + call.Arguments = []goja.Value{runtime.ToValue(1)} + + mparams = faker.toMapParams(info, call) + + require.NotNil(t, mparams) + require.Equal(t, &gofakeit.MapParams{"min": []string{"1"}, "max": []string{"24"}}, mparams) + + info.Params[0].Optional = true + call.Arguments = nil + + mparams = faker.toMapParams(info, call) + + require.NotNil(t, mparams) + require.Equal(t, &gofakeit.MapParams{"max": []string{"24"}}, mparams) +} diff --git a/faker/faker_test.go b/faker/faker_test.go new file mode 100644 index 0000000..4c21c37 --- /dev/null +++ b/faker/faker_test.go @@ -0,0 +1,122 @@ +package faker_test + +import ( + "testing" + + "github.com/dop251/goja" + "github.com/stretchr/testify/require" + "github.com/szkiba/xk6-faker/faker" +) + +func Test_Constructor(t *testing.T) { + t.Parallel() + + vm := goja.New() + + require.NoError(t, vm.Set("Faker", faker.Constructor)) + + val, err := vm.RunString("new Faker()") + + require.NoError(t, err) + + _, ok := goja.AssertFunction(val.ToObject(vm).Get("call")) + + require.True(t, ok, "has call() method") + + val, err = vm.RunString("new Faker(11)") + + require.NoError(t, err) + + _, ok = goja.AssertFunction(val.ToObject(vm).Get("call")) + + require.True(t, ok, "has call() method") +} + +func Test_New(t *testing.T) { + t.Parallel() + + vm := goja.New() + + var val *goja.Object + + require.NotPanics(t, func() { + val = faker.New(0, vm) + }) + + _, ok := goja.AssertFunction(val.ToObject(vm).Get("call")) + + require.True(t, ok, "has call() method") +} + +func Test_Faker_call(t *testing.T) { + t.Parallel() + + vm := goja.New() + + require.NoError(t, vm.Set("Faker", faker.Constructor)) + + val, err := vm.RunString("new Faker(11).call('username')") + + require.NoError(t, err) + require.Equal(t, "Abshire5538", val.String()) + + _, err = vm.RunString("new Faker(11).call('no such function')") + + require.Error(t, err) + + _, err = vm.RunString("new Faker(11).call()") + + require.Error(t, err) +} + +func Test_Faker_no_parameter(t *testing.T) { + t.Parallel() + + vm := goja.New() + + require.NoError(t, vm.Set("Faker", faker.Constructor)) + + val, err := vm.RunString("new Faker(11).zen.username()") + + require.NoError(t, err) + require.Equal(t, "Abshire5538", val.String()) +} + +func Test_Faker_int_parameters(t *testing.T) { + t.Parallel() + + vm := goja.New() + + require.NoError(t, vm.Set("Faker", faker.Constructor)) + + val, err := vm.RunString("new Faker(11).zen.intRange(2,19)") + + require.NoError(t, err) + require.Equal(t, int64(5), val.ToInteger()) +} + +func Test_Faker_string_array_parameter(t *testing.T) { + t.Parallel() + + vm := goja.New() + + require.NoError(t, vm.Set("Faker", faker.Constructor)) + + val, err := vm.RunString("new Faker(11).zen.randomString(['foo', 'bar', 'dummy'])") + + require.NoError(t, err) + require.Equal(t, "foo", val.String()) +} + +func Test_Faker_int_array_parameter(t *testing.T) { + t.Parallel() + + vm := goja.New() + + require.NoError(t, vm.Set("Faker", faker.Constructor)) + + val, err := vm.RunString("new Faker(11).zen.randomInt([1,4,2,6])") + + require.NoError(t, err) + require.Equal(t, int64(2), val.ToInteger()) +} diff --git a/faker/fumctions_test.go b/faker/fumctions_test.go new file mode 100644 index 0000000..74fcf4f --- /dev/null +++ b/faker/fumctions_test.go @@ -0,0 +1,89 @@ +package faker_test + +import ( + "math/rand" + "strconv" + "testing" + "time" + + "github.com/brianvoe/gofakeit/v6" + "github.com/stretchr/testify/require" + "lukechampine.com/frand" +) + +func Test_lookup(t *testing.T) { + t.Parallel() + + funcs := []string{"creditcardstring", "creditcardexpmonth", "creditcardexpyear"} + + for _, fun := range funcs { + fun := fun + t.Run(fun, func(t *testing.T) { + t.Parallel() + info := gofakeit.GetFuncLookup(fun) + + require.NotNil(t, info) + }) + } +} + +func testRand(t *testing.T) *rand.Rand { + t.Helper() + + src := frand.NewSource() + src.Seed(11) + + return rand.New(src) //nolint:gosec +} + +func Test_creditcardexpyear(t *testing.T) { + t.Parallel() + + info := gofakeit.GetFuncLookup("creditcardexpyear") + + require.NotNil(t, info) + + val, err := info.Generate(testRand(t), nil, info) + + require.NoError(t, err) + require.Len(t, val, 2) + + year, err := strconv.Atoi(val.(string)) + + require.NoError(t, err) + + require.Greater(t, year, time.Now().Year()-2000) +} + +func Test_creditcardexpmonth(t *testing.T) { + t.Parallel() + + info := gofakeit.GetFuncLookup("creditcardexpmonth") + + require.NotNil(t, info) + + val, err := info.Generate(testRand(t), nil, info) + + require.NoError(t, err) + require.Len(t, val, 2) + + month, err := strconv.Atoi(val.(string)) + + require.NoError(t, err) + + require.Greater(t, month, 0) + require.Less(t, month, 13) +} + +func Test_creditcardstring(t *testing.T) { + t.Parallel() + + info := gofakeit.GetFuncLookup("creditcardstring") + + require.NotNil(t, info) + + val, err := info.Generate(testRand(t), nil, info) + + require.NoError(t, err) + require.Equal(t, "4111-1111-1111-1111", val) +} diff --git a/faker/functions.go b/faker/functions.go new file mode 100644 index 0000000..023428c --- /dev/null +++ b/faker/functions.go @@ -0,0 +1,69 @@ +package faker + +import ( + "math/rand" + "strconv" + "time" + + "github.com/brianvoe/gofakeit/v6" +) + +func init() { + gofakeit.AddFuncLookup("creditcardstring", gofakeit.Info{ + Display: "Credit Card Number Formatted", + Category: "payment", + Description: "Unique numerical identifier on a credit card used for making electronic payments and transactions", + Example: "4136-4599-4899-5369", + Output: "string", + Params: nil, + Generate: creditcardstring, + }) + + gofakeit.AddFuncLookup("creditcardexpmonth", gofakeit.Info{ + Display: "Credit Card Exp Month", + Category: "payment", + Description: "Month of the date when a credit card becomes invalid and cannot be used for transactions", + Example: "11", + Output: "string", + Params: nil, + Generate: creditcardexpmonth, + }) + + gofakeit.AddFuncLookup("creditcardexpyear", gofakeit.Info{ + Display: "Credit Card Exp Year", + Category: "payment", + Description: "Year of the date when a credit card becomes invalid and cannot be used for transactions", + Example: "28", + Output: "string", + Params: nil, + Generate: creditcardexpyear, + }) +} + +var testcards = []string{ //nolint:gochecknoglobals + "4111-1111-1111-1111", + "4242-4242-4242-4242", + "4000-0566-5566-5556", + "5555-5555-5555-4444", + "5200-8282-8282-8210", + "5105-1051-0510-5100", +} + +func creditcardstring(r *rand.Rand, _ *gofakeit.MapParams, _ *gofakeit.Info) (any, error) { + return testcards[r.Intn(len(testcards))], nil +} + +func creditcardexpmonth(r *rand.Rand, _ *gofakeit.MapParams, _ *gofakeit.Info) (any, error) { + month := strconv.Itoa(1 + r.Intn(12)) + if len(month) == 1 { + month = "0" + month + } + + return month, nil +} + +func creditcardexpyear(r *rand.Rand, _ *gofakeit.MapParams, _ *gofakeit.Info) (any, error) { + current := time.Now().Year() - 2000 + + return strconv.Itoa(current + 1 + r.Intn(10)), nil +} diff --git a/faker/lookup.go b/faker/lookup.go new file mode 100644 index 0000000..c8197e3 --- /dev/null +++ b/faker/lookup.go @@ -0,0 +1,127 @@ +package faker + +import ( + "sort" + "sync" + + "github.com/brianvoe/gofakeit/v6" + "github.com/iancoleman/strcase" +) + +// GetFuncLookups returns fake functions lookup table. +func GetFuncLookups() map[string]*gofakeit.Info { + requireFuncLookups() + + return _funcLookups +} + +func getCategoryNames() []string { + requireFuncLookups() + + return _categoryNames +} + +// GetCategoryFuncs returns fake functions by category. +func GetCategoryFuncs() map[string]map[string]*gofakeit.Info { + requireFuncLookups() + + return _categoryFuncs +} + +func lookupCategory(name string) (map[string]*gofakeit.Info, bool) { + requireFuncLookups() + + funcs, ok := _categoryFuncs[name] + return funcs, ok +} + +func lookupFunc(name string) (*gofakeit.Info, bool) { + requireFuncLookups() + + fun, ok := _funcLookups[name] + return fun, ok +} + +//nolint:gochecknoglobals +var ( + convertLookupsOnce sync.Once + + _funcLookups map[string]*gofakeit.Info + _categoryNames []string + _categoryFuncs map[string]map[string]*gofakeit.Info +) + +func requireFuncLookups() { + convertLookupsOnce.Do(convertFuncLookups) +} + +//nolint:gochecknoglobals +var ( + funcToSkip = map[string]struct{}{ + "template": {}, + "generate": {}, + "weighted": {}, + } + + addPrefix = map[string]string{ + "booktitle": "Book", + "bookauthor": "Book", + "bookgenre": "Book", + "moviegenre": "Movie", + } + + funcRename = map[string]string{ + "imageSvg": "imageSVG", + "gRpcError": "gRPCError", + } +) + +func fixLookup(name string, info *gofakeit.Info) string { + if prefix, need := addPrefix[name]; need { + info.Display = prefix + " " + info.Display + } + + key := strcase.ToLowerCamel(info.Display) + + if fixed, need := funcRename[key]; need { + key = fixed + } + + return key +} + +func convertFuncLookups() { + _funcLookups = make(map[string]*gofakeit.Info) + _categoryFuncs = make(map[string]map[string]*gofakeit.Info) + zen := make(map[string]*gofakeit.Info) + + for key, info := range gofakeit.FuncLookups { + if _, skip := funcToSkip[key]; skip { + continue + } + + info := info + info.Any = key + key = fixLookup(key, &info) + _funcLookups[key] = &info + + category, ok := _categoryFuncs[info.Category] + if !ok { + category = make(map[string]*gofakeit.Info) + _categoryFuncs[info.Category] = category + } + + category[key] = &info + zen[key] = &info + } + + _categoryFuncs["zen"] = zen + + _categoryNames = make([]string, 0, len(_categoryFuncs)) + + for name := range _categoryFuncs { + _categoryNames = append(_categoryNames, name) + } + + sort.Strings(_categoryNames) +} diff --git a/faker/lookup_test.go b/faker/lookup_test.go new file mode 100644 index 0000000..8a5a0b2 --- /dev/null +++ b/faker/lookup_test.go @@ -0,0 +1,32 @@ +package faker_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + "github.com/szkiba/xk6-faker/faker" +) + +func TestGetFuncLookups(t *testing.T) { + t.Parallel() + + funcs := faker.GetFuncLookups() + + require.Len(t, funcs, 317) + require.Contains(t, funcs, "intRange") + require.Contains(t, funcs, "randomString") +} + +func TestGetCategoryFuncs(t *testing.T) { + t.Parallel() + + categories := faker.GetCategoryFuncs() + + require.Len(t, categories, 37) + require.Contains(t, categories, "zen") + require.Contains(t, categories, "number") + + require.Contains(t, categories["zen"], "intRange") + require.Contains(t, categories["number"], "intRange") + require.Same(t, categories["zen"]["intRange"], categories["number"]["intRange"]) +} diff --git a/functions.json b/functions.json new file mode 100644 index 0000000..a5ea33f --- /dev/null +++ b/functions.json @@ -0,0 +1,4021 @@ +{ + "achAccountNumber": { + "display": "ACH Account Number", + "category": "payment", + "description": "A bank account number used for Automated Clearing House transactions and electronic transfers", + "example": "491527954328", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "achaccount" + }, + "achRoutingNumber": { + "display": "ACH Routing Number", + "category": "payment", + "description": "Unique nine-digit code used in the U.S. for identifying the bank and processing electronic transactions", + "example": "513715684", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "achrouting" + }, + "actionVerb": { + "display": "Action Verb", + "category": "word", + "description": "Verb Indicating a physical or mental action", + "example": "close", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "verbaction" + }, + "address": { + "display": "Address", + "category": "address", + "description": "Residential location including street, city, state, country and postal code", + "example": "{\n\t\"address\": \"364 Unionsville, Norfolk, Ohio 99536\",\n\t\"street\": \"364 Unionsville\",\n\t\"city\": \"Norfolk\",\n\t\"state\": \"Ohio\",\n\t\"zip\": \"99536\",\n\t\"country\": \"Lesotho\",\n\t\"latitude\": 88.792592,\n\t\"longitude\": 174.504681\n}", + "output": "Record\u003cstring,unknown\u003e", + "content_type": "application/json", + "params": null, + "any": "address" + }, + "adjective": { + "display": "Adjective", + "category": "word", + "description": "Word describing or modifying a noun", + "example": "genuine", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adjective" + }, + "adverb": { + "display": "Adverb", + "category": "word", + "description": "Word that modifies verbs, adjectives, or other adverbs", + "example": "smoothly", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adverb" + }, + "adverbDegree": { + "display": "Adverb Degree", + "category": "word", + "description": "Adverb that indicates the degree or intensity of an action or adjective", + "example": "intensely", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adverbdegree" + }, + "adverbFrequencyDefinite": { + "display": "Adverb Frequency Definite", + "category": "word", + "description": "Adverb that specifies how often an action occurs with a clear frequency", + "example": "hourly", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adverbfrequencydefinite" + }, + "adverbFrequencyIndefinite": { + "display": "Adverb Frequency Indefinite", + "category": "word", + "description": "Adverb that specifies how often an action occurs without specifying a particular frequency", + "example": "occasionally", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adverbfrequencyindefinite" + }, + "adverbManner": { + "display": "Adverb Manner", + "category": "word", + "description": "Adverb that describes how an action is performed", + "example": "stupidly", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adverbmanner" + }, + "adverbPhrase": { + "display": "Adverb Phrase", + "category": "word", + "description": "Phrase that modifies a verb, adjective, or another adverb, providing additional information.", + "example": "fully gladly", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "phraseadverb" + }, + "adverbPlace": { + "display": "Adverb Place", + "category": "word", + "description": "Adverb that indicates the location or direction of an action", + "example": "east", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adverbplace" + }, + "adverbTimeDefinite": { + "display": "Adverb Time Definite", + "category": "word", + "description": "Adverb that specifies the exact time an action occurs", + "example": "now", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adverbtimedefinite" + }, + "adverbTimeIndefinite": { + "display": "Adverb Time Indefinite", + "category": "word", + "description": "Adverb that gives a general or unspecified time frame", + "example": "already", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adverbtimeindefinite" + }, + "animal": { + "display": "Animal", + "category": "animal", + "description": "Living creature with the ability to move, eat, and interact with its environment", + "example": "elk", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "animal" + }, + "animalType": { + "display": "Animal Type", + "category": "animal", + "description": "Type of animal, such as mammals, birds, reptiles, etc.", + "example": "amphibians", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "animaltype" + }, + "appAuthor": { + "display": "App Author", + "category": "app", + "description": "Person or group creating and developing an application", + "example": "Qado Energy, Inc.", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "appauthor" + }, + "appName": { + "display": "App Name", + "category": "app", + "description": "Software program designed for a specific purpose or task on a computer or mobile device", + "example": "Parkrespond", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "appname" + }, + "appVersion": { + "display": "App Version", + "category": "app", + "description": "Particular release of an application in Semantic Versioning format", + "example": "1.12.14", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "appversion" + }, + "beerAlcohol": { + "display": "Beer Alcohol", + "category": "beer", + "description": "Measures the alcohol content in beer", + "example": "2.7%", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "beeralcohol" + }, + "beerBlg": { + "display": "Beer BLG", + "category": "beer", + "description": "Scale indicating the concentration of extract in worts", + "example": "6.4°Blg", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "beerblg" + }, + "beerHop": { + "display": "Beer Hop", + "category": "beer", + "description": "The flower used in brewing to add flavor, aroma, and bitterness to beer", + "example": "Glacier", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "beerhop" + }, + "beerIbu": { + "display": "Beer IBU", + "category": "beer", + "description": "Scale measuring bitterness of beer from hops", + "example": "29 IBU", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "beeribu" + }, + "beerMalt": { + "display": "Beer Malt", + "category": "beer", + "description": "Processed barley or other grains, provides sugars for fermentation and flavor to beer", + "example": "Munich", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "beermalt" + }, + "beerName": { + "display": "Beer Name", + "category": "beer", + "description": "Specific brand or variety of beer", + "example": "Duvel", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "beername" + }, + "beerStyle": { + "display": "Beer Style", + "category": "beer", + "description": "Distinct characteristics and flavors of beer", + "example": "European Amber Lager", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "beerstyle" + }, + "beerYeast": { + "display": "Beer Yeast", + "category": "beer", + "description": "Microorganism used in brewing to ferment sugars, producing alcohol and carbonation in beer", + "example": "1388 - Belgian Strong Ale", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "beeryeast" + }, + "bird": { + "display": "Bird", + "category": "animal", + "description": "Distinct species of birds", + "example": "goose", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "bird" + }, + "bitcoinAddress": { + "display": "Bitcoin Address", + "category": "payment", + "description": "Cryptographic identifier used to receive, store, and send Bitcoin cryptocurrency in a peer-to-peer network", + "example": "1lWLbxojXq6BqWX7X60VkcDIvYA", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "bitcoinaddress" + }, + "bitcoinPrivateKey": { + "display": "Bitcoin Private Key", + "category": "payment", + "description": "Secret, secure code that allows the owner to access and control their Bitcoin holdings", + "example": "5vrbXTADWJ6sQBSYd6lLkG97jljNc0X9VPBvbVqsIH9lWOLcoqg", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "bitcoinprivatekey" + }, + "blurb": { + "display": "Blurb", + "category": "company", + "description": "Brief description or summary of a company's purpose, products, or services", + "example": "word", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "blurb" + }, + "book": { + "display": "Book", + "category": "book", + "description": "Written or printed work consisting of pages bound together, covering various subjects or stories", + "example": "{\n\t\"title\": \"Anna Karenina\",\n\t\"author\": \"Toni Morrison\",\n\t\"genre\": \"Thriller\"\n}", + "output": "Record\u003cstring,string\u003e", + "content_type": "application/json", + "params": null, + "any": "book" + }, + "bookAuthor": { + "display": "Book Author", + "category": "book", + "description": "The individual who wrote or created the content of a book", + "example": "Mark Twain", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "bookauthor" + }, + "bookGenre": { + "display": "Book Genre", + "category": "book", + "description": "Category or type of book defined by its content, style, or form", + "example": "Adventure", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "bookgenre" + }, + "bookTitle": { + "display": "Book Title", + "category": "book", + "description": "The specific name given to a book", + "example": "Hamlet", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "booktitle" + }, + "boolean": { + "display": "Boolean", + "category": "misc", + "description": "Data type that represents one of two possible values, typically true or false", + "example": "true", + "output": "boolean", + "content_type": "text/plain", + "params": null, + "any": "bool" + }, + "breakfast": { + "display": "Breakfast", + "category": "food", + "description": "First meal of the day, typically eaten in the morning", + "example": "Blueberry banana happy face pancakes", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "breakfast" + }, + "bs": { + "display": "BS", + "category": "company", + "description": "Random bs company word", + "example": "front-end", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "bs" + }, + "buzzword": { + "display": "Buzzword", + "category": "company", + "description": "Trendy or overused term often used in business to sound impressive", + "example": "disintermediate", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "buzzword" + }, + "car": { + "display": "Car", + "category": "car", + "description": "Wheeled motor vehicle used for transportation", + "example": "{\n\t\"type\": \"Passenger car mini\",\n\t\"fuel\": \"Gasoline\",\n\t\"transmission\": \"Automatic\",\n\t\"brand\": \"Fiat\",\n\t\"model\": \"Freestyle Fwd\",\n\t\"year\": 1991\n}", + "output": "Record\u003cstring,unknown\u003e", + "content_type": "application/json", + "params": null, + "any": "car" + }, + "carFuelType": { + "display": "Car Fuel Type", + "category": "car", + "description": "Type of energy source a car uses", + "example": "CNG", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "carfueltype" + }, + "carMaker": { + "display": "Car Maker", + "category": "car", + "description": "Company or brand that manufactures and designs cars", + "example": "Nissan", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "carmaker" + }, + "carModel": { + "display": "Car Model", + "category": "car", + "description": "Specific design or version of a car produced by a manufacturer", + "example": "Aveo", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "carmodel" + }, + "carTransmissionType": { + "display": "Car Transmission Type", + "category": "car", + "description": "Mechanism a car uses to transmit power from the engine to the wheels", + "example": "Manual", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "cartransmissiontype" + }, + "carType": { + "display": "Car Type", + "category": "car", + "description": "Classification of cars based on size, use, or body style", + "example": "Passenger car mini", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "cartype" + }, + "cat": { + "display": "Cat", + "category": "animal", + "description": "Various breeds that define different cats", + "example": "Chausie", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "cat" + }, + "celebrityActor": { + "display": "Celebrity Actor", + "category": "celebrity", + "description": "Famous person known for acting in films, television, or theater", + "example": "Brad Pitt", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "celebrityactor" + }, + "celebrityBusiness": { + "display": "Celebrity Business", + "category": "celebrity", + "description": "High-profile individual known for significant achievements in business or entrepreneurship", + "example": "Elon Musk", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "celebritybusiness" + }, + "celebritySport": { + "display": "Celebrity Sport", + "category": "celebrity", + "description": "Famous athlete known for achievements in a particular sport", + "example": "Michael Phelps", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "celebritysport" + }, + "chromeUserAgent": { + "display": "Chrome User Agent", + "category": "internet", + "description": "The specific identification string sent by the Google Chrome web browser when making requests on the internet", + "example": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/5312 (KHTML, like Gecko) Chrome/39.0.836.0 Mobile Safari/5312", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "chromeuseragent" + }, + "city": { + "display": "City", + "category": "address", + "description": "Part of a country with significant population, often a central hub for culture and commerce", + "example": "Marcelside", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "city" + }, + "color": { + "display": "Color", + "category": "color", + "description": "Hue seen by the eye, returns the name of the color like red or blue", + "example": "MediumOrchid", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "color" + }, + "comment": { + "display": "Comment", + "category": "word", + "description": "Statement or remark expressing an opinion, observation, or reaction", + "example": "wow", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "comment" + }, + "company": { + "display": "Company", + "category": "company", + "description": "Designated official name of a business or organization", + "example": "Moen, Pagac and Wuckert", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "company" + }, + "companySuffix": { + "display": "Company Suffix", + "category": "company", + "description": "Suffix at the end of a company name, indicating business structure, like 'Inc.' or 'LLC'", + "example": "Inc", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "companysuffix" + }, + "connective": { + "display": "Connective", + "category": "word", + "description": "Word used to connect words or sentences", + "example": "such as", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "connective" + }, + "connectiveCasual": { + "display": "Connective Casual", + "category": "word", + "description": "Connective word used to indicate a cause-and-effect relationship between events or actions", + "example": "an outcome of", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "connectivecasual" + }, + "connectiveComparitive": { + "display": "Connective Comparitive", + "category": "word", + "description": "Connective word used to indicate a comparison between two or more things", + "example": "in addition", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "connectivecomparative" + }, + "connectiveComplaint": { + "display": "Connective Complaint", + "category": "word", + "description": "Connective word used to express dissatisfaction or complaints about a situation", + "example": "besides", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "connectivecomplaint" + }, + "connectiveExamplify": { + "display": "Connective Examplify", + "category": "word", + "description": "Connective word used to provide examples or illustrations of a concept or idea", + "example": "then", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "connectiveexamplify" + }, + "connectiveListing": { + "display": "Connective Listing", + "category": "word", + "description": "Connective word used to list or enumerate items or examples", + "example": "firstly", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "connectivelisting" + }, + "connectiveTime": { + "display": "Connective Time", + "category": "word", + "description": "Connective word used to indicate a temporal relationship between events or actions", + "example": "finally", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "connectivetime" + }, + "country": { + "display": "Country", + "category": "address", + "description": "Nation with its own government and defined territory", + "example": "United States of America", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "country" + }, + "countryAbbreviation": { + "display": "Country Abbreviation", + "category": "address", + "description": "Shortened 2-letter form of a country's name", + "example": "US", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "countryabr" + }, + "creditCard": { + "display": "Credit Card", + "category": "payment", + "description": "Plastic card allowing users to make purchases on credit, with payment due at a later date", + "example": "{\n\t\"type\": \"UnionPay\",\n\t\"number\": \"4364599489953698\",\n\t\"exp\": \"02/24\",\n\t\"cvv\": \"300\"\n}", + "output": "Record\u003cstring,unknown\u003e", + "content_type": "application/json", + "params": null, + "any": "creditcard" + }, + "creditCardCvv": { + "display": "Credit Card CVV", + "category": "payment", + "description": "Three or four-digit security code on a credit card used for online and remote transactions", + "example": "513", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "creditcardcvv" + }, + "creditCardExp": { + "display": "Credit Card Exp", + "category": "payment", + "description": "Date when a credit card becomes invalid and cannot be used for transactions", + "example": "01/21", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "creditcardexp" + }, + "creditCardExpMonth": { + "display": "Credit Card Exp Month", + "category": "payment", + "description": "Month of the date when a credit card becomes invalid and cannot be used for transactions", + "example": "11", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "creditcardexpmonth" + }, + "creditCardExpYear": { + "display": "Credit Card Exp Year", + "category": "payment", + "description": "Year of the date when a credit card becomes invalid and cannot be used for transactions", + "example": "28", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "creditcardexpyear" + }, + "creditCardNumber": { + "display": "Credit Card Number", + "category": "payment", + "description": "Unique numerical identifier on a credit card used for making electronic payments and transactions", + "example": "4136459948995369", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "types", + "display": "Types", + "type": "string[]", + "optional": false, + "default": "all", + "options": [ + "visa", + "mastercard", + "american-express", + "diners-club", + "discover", + "jcb", + "unionpay", + "maestro", + "elo", + "hiper", + "hipercard" + ], + "description": "A select number of types you want to use when generating a credit card number" + }, + { + "field": "bins", + "display": "Bins", + "type": "string[]", + "optional": true, + "default": "", + "options": null, + "description": "Optional list of prepended bin numbers to pick from" + }, + { + "field": "gaps", + "display": "Gaps", + "type": "boolean", + "optional": false, + "default": "false", + "options": null, + "description": "Whether or not to have gaps in number" + } + ], + "any": "creditcardnumber" + }, + "creditCardNumberFormatted": { + "display": "Credit Card Number Formatted", + "category": "payment", + "description": "Unique numerical identifier on a credit card used for making electronic payments and transactions", + "example": "4136-4599-4899-5369", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "creditcardstring" + }, + "creditCardType": { + "display": "Credit Card Type", + "category": "payment", + "description": "Classification of credit cards based on the issuing company", + "example": "Visa", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "creditcardtype" + }, + "csv": { + "display": "CSV", + "category": "file", + "description": "Individual lines or data entries within a CSV (Comma-Separated Values) format", + "example": "id,first_name,last_name,password\n1,Markus,Moen,Dc0VYXjkWABx\n2,Osborne,Hilll,XPJ9OVNbs5lm", + "output": "number[]", + "content_type": "text/csv", + "params": [ + { + "field": "delimiter", + "display": "Delimiter", + "type": "string", + "optional": false, + "default": ",", + "options": null, + "description": "Separator in between row values" + }, + { + "field": "rowcount", + "display": "Row Count", + "type": "number", + "optional": false, + "default": "100", + "options": null, + "description": "Number of rows" + }, + { + "field": "fields", + "display": "Fields", + "type": "", + "optional": false, + "default": "", + "options": null, + "description": "Fields containing key name and function" + } + ], + "any": "csv" + }, + "currency": { + "display": "Currency", + "category": "payment", + "description": "Medium of exchange, often in the form of paper money or coins, used for trade and transactions", + "example": "{\n\t\"short\": \"IQD\",\n\t\"long\": \"Iraq Dinar\"\n}", + "output": "Record\u003cstring,string\u003e", + "content_type": "application/json", + "params": null, + "any": "currency" + }, + "currencyLong": { + "display": "Currency Long", + "category": "payment", + "description": "Complete name of a specific currency used for official identification in financial transactions", + "example": "United States Dollar", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "currencylong" + }, + "currencyShort": { + "display": "Currency Short", + "category": "payment", + "description": "Short 3-letter word used to represent a specific currency", + "example": "USD", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "currencyshort" + }, + "cusip": { + "display": "CUSIP", + "category": "finance", + "description": "Unique identifier for securities, especially bonds, in the United States and Canada", + "example": "38259P508", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "cusip" + }, + "databaseError": { + "display": "Database error", + "category": "error", + "description": "A problem or issue encountered while accessing or managing a database", + "example": "sql error", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "errordatabase" + }, + "date": { + "display": "Date", + "category": "time", + "description": "Representation of a specific day, month, and year, often used for chronological reference", + "example": "2006-01-02T15:04:05Z07:00", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "format", + "display": "Format", + "type": "string", + "optional": false, + "default": "RFC3339", + "options": [ + "ANSIC", + "UnixDate", + "RubyDate", + "RFC822", + "RFC822Z", + "RFC850", + "RFC1123", + "RFC1123Z", + "RFC3339", + "RFC3339Nano" + ], + "description": "Date time string format output. You may also use golang time format or java time format" + } + ], + "any": "date" + }, + "dateRange": { + "display": "DateRange", + "category": "time", + "description": "Random date between two ranges", + "example": "2006-01-02T15:04:05Z07:00", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "startdate", + "display": "Start Date", + "type": "string", + "optional": false, + "default": "1970-01-01", + "options": null, + "description": "Start date time string" + }, + { + "field": "enddate", + "display": "End Date", + "type": "string", + "optional": false, + "default": "2024-03-12", + "options": null, + "description": "End date time string" + }, + { + "field": "format", + "display": "Format", + "type": "string", + "optional": false, + "default": "yyyy-MM-dd", + "options": null, + "description": "Date time string format" + } + ], + "any": "daterange" + }, + "day": { + "display": "Day", + "category": "time", + "description": "24-hour period equivalent to one rotation of Earth on its axis", + "example": "12", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "day" + }, + "demonstrativeAdjective": { + "display": "Demonstrative Adjective", + "category": "word", + "description": "Adjective used to point out specific things", + "example": "this", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adjectivedemonstrative" + }, + "descriptiveAdjective": { + "display": "Descriptive Adjective", + "category": "word", + "description": "Adjective that provides detailed characteristics about a noun", + "example": "brave", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adjectivedescriptive" + }, + "dessert": { + "display": "Dessert", + "category": "food", + "description": "Sweet treat often enjoyed after a meal", + "example": "French napoleons", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "dessert" + }, + "dice": { + "display": "Dice", + "category": "game", + "description": "Small, cube-shaped objects used in games of chance for random outcomes", + "example": "[5, 2, 3]", + "output": "number[]", + "content_type": "text/plain", + "params": [ + { + "field": "numdice", + "display": "Number of Dice", + "type": "number", + "optional": false, + "default": "1", + "options": null, + "description": "Number of dice to roll" + }, + { + "field": "sides", + "display": "Number of Sides", + "type": "number[]", + "optional": false, + "default": "[6]", + "options": null, + "description": "Number of sides on each dice" + } + ], + "any": "dice" + }, + "digit": { + "display": "Digit", + "category": "string", + "description": "Numerical symbol used to represent numbers", + "example": "0", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "digit" + }, + "digitN": { + "display": "DigitN", + "category": "string", + "description": "string of length N consisting of ASCII digits", + "example": "0136459948", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "count", + "display": "Count", + "type": "number", + "optional": false, + "default": "", + "options": null, + "description": "Number of digits to generate" + } + ], + "any": "digitn" + }, + "dinner": { + "display": "Dinner", + "category": "food", + "description": "Evening meal, typically the day's main and most substantial meal", + "example": "Wild addicting dip", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "dinner" + }, + "dog": { + "display": "Dog", + "category": "animal", + "description": "Various breeds that define different dogs", + "example": "Norwich Terrier", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "dog" + }, + "domainName": { + "display": "Domain Name", + "category": "internet", + "description": "Human-readable web address used to identify websites on the internet", + "example": "centraltarget.biz", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "domainname" + }, + "domainSuffix": { + "display": "Domain Suffix", + "category": "internet", + "description": "The part of a domain name that comes after the last dot, indicating its type or purpose", + "example": "org", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "domainsuffix" + }, + "drink": { + "display": "Drink", + "category": "food", + "description": "Liquid consumed for hydration, pleasure, or nutritional benefits", + "example": "Soda", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "drink" + }, + "email": { + "display": "Email", + "category": "person", + "description": "Electronic mail used for sending digital messages and communication over the internet", + "example": "markusmoen@pagac.net", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "email" + }, + "emoji": { + "display": "Emoji", + "category": "emoji", + "description": "Digital symbol expressing feelings or ideas in text messages and online chats", + "example": "🤣", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "emoji" + }, + "emojiAlias": { + "display": "Emoji Alias", + "category": "emoji", + "description": "Alternative name or keyword used to represent a specific emoji in text or code", + "example": "smile", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "emojialias" + }, + "emojiCategory": { + "display": "Emoji Category", + "category": "emoji", + "description": "Group or classification of emojis based on their common theme or use, like 'smileys' or 'animals'", + "example": "Smileys \u0026 Emotion", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "emojicategory" + }, + "emojiDescription": { + "display": "Emoji Description", + "category": "emoji", + "description": "Brief explanation of the meaning or emotion conveyed by an emoji", + "example": "face vomiting", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "emojidescription" + }, + "emojiTag": { + "display": "Emoji Tag", + "category": "emoji", + "description": "Label or keyword associated with an emoji to categorize or search for it easily", + "example": "happy", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "emojitag" + }, + "error": { + "display": "Error", + "category": "error", + "description": "Message displayed by a computer or software when a problem or mistake is encountered", + "example": "syntax error", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "error" + }, + "errorObjectWord": { + "display": "Error object word", + "category": "error", + "description": "Various categories conveying details about encountered errors", + "example": "protocol", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "errorobject" + }, + "farmAnimal": { + "display": "Farm Animal", + "category": "animal", + "description": "Animal name commonly found on a farm", + "example": "Chicken", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "farmanimal" + }, + "fileExtension": { + "display": "File Extension", + "category": "file", + "description": "Suffix appended to a filename indicating its format or type", + "example": "nes", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "fileextension" + }, + "fileMimeType": { + "display": "File Mime Type", + "category": "file", + "description": "Defines file format and nature for browsers and email clients using standardized identifiers", + "example": "application/json", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "filemimetype" + }, + "firefoxUserAgent": { + "display": "Firefox User Agent", + "category": "internet", + "description": "The specific identification string sent by the Firefox web browser when making requests on the internet", + "example": "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_8_3 rv:7.0) Gecko/1900-07-01 Firefox/37.0", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "firefoxuseragent" + }, + "firstName": { + "display": "First Name", + "category": "person", + "description": "The name given to a person at birth", + "example": "Markus", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "firstname" + }, + "fixedWidth": { + "display": "Fixed Width", + "category": "generate", + "description": "Fixed width rows of output data based on input fields", + "example": "Name Email Password Age\nMarkus Moen sylvanmraz@murphy.net 6VlvH6qqXc7g 13\nAlayna Wuckert santinostanton@carroll.biz g7sLrS0gEwLO 46\nLura Lockman zacherykuhic@feil.name S8gV7Z64KlHG 12", + "output": "number[]", + "content_type": "text/plain", + "params": [ + { + "field": "rowcount", + "display": "Row Count", + "type": "number", + "optional": false, + "default": "10", + "options": null, + "description": "Number of rows" + }, + { + "field": "fields", + "display": "Fields", + "type": "", + "optional": false, + "default": "", + "options": null, + "description": "Fields name, function and params" + } + ], + "any": "fixed_width" + }, + "flipACoin": { + "display": "Flip A Coin", + "category": "misc", + "description": "Decision-making method involving the tossing of a coin to determine outcomes", + "example": "Tails", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "flipacoin" + }, + "float32": { + "display": "Float32", + "category": "number", + "description": "Data type representing floating-point numbers with 32 bits of precision in computing", + "example": "3.1128167e+37", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "float32" + }, + "float32Range": { + "display": "Float32 Range", + "category": "number", + "description": "Float32 value between given range", + "example": "914774.6", + "output": "number", + "content_type": "text/plain", + "params": [ + { + "field": "min", + "display": "Min", + "type": "number", + "optional": false, + "default": "", + "options": null, + "description": "Minimum float32 value" + }, + { + "field": "max", + "display": "Max", + "type": "number", + "optional": false, + "default": "", + "options": null, + "description": "Maximum float32 value" + } + ], + "any": "float32range" + }, + "float64": { + "display": "Float64", + "category": "number", + "description": "Data type representing floating-point numbers with 64 bits of precision in computing", + "example": "1.644484108270445e+307", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "float64" + }, + "float64Range": { + "display": "Float64 Range", + "category": "number", + "description": "Float64 value between given range", + "example": "914774.5585333086", + "output": "number", + "content_type": "text/plain", + "params": [ + { + "field": "min", + "display": "Min", + "type": "number", + "optional": false, + "default": "", + "options": null, + "description": "Minimum float64 value" + }, + { + "field": "max", + "display": "Max", + "type": "number", + "optional": false, + "default": "", + "options": null, + "description": "Maximum float64 value" + } + ], + "any": "float64range" + }, + "fruit": { + "display": "Fruit", + "category": "food", + "description": "Edible plant part, typically sweet, enjoyed as a natural snack or dessert", + "example": "Peach", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "fruit" + }, + "futureTime": { + "display": "FutureTime", + "category": "time", + "description": "Date that has occurred after the current moment in time", + "example": "2107-01-24 13:00:35.820738079 +0000 UTC", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "futuretime" + }, + "gRPCError": { + "display": "gRPC error", + "category": "error", + "description": "Communication failure in the high-performance, open-source universal RPC framework", + "example": "client protocol error", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "errorgrpc" + }, + "gamertag": { + "display": "Gamertag", + "category": "game", + "description": "User-selected online username or alias used for identification in games", + "example": "footinterpret63", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "gamertag" + }, + "gender": { + "display": "Gender", + "category": "person", + "description": "Classification based on social and cultural norms that identifies an individual", + "example": "male", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "gender" + }, + "hackerAbbreviation": { + "display": "Hacker Abbreviation", + "category": "hacker", + "description": "Abbreviations and acronyms commonly used in the hacking and cybersecurity community", + "example": "ADP", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hackerabbreviation" + }, + "hackerAdjective": { + "display": "Hacker Adjective", + "category": "hacker", + "description": "Adjectives describing terms often associated with hackers and cybersecurity experts", + "example": "wireless", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hackeradjective" + }, + "hackerNoun": { + "display": "Hacker Noun", + "category": "hacker", + "description": "Noun representing an element, tool, or concept within the realm of hacking and cybersecurity", + "example": "driver", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hackernoun" + }, + "hackerPhrase": { + "display": "Hacker Phrase", + "category": "hacker", + "description": "Informal jargon and slang used in the hacking and cybersecurity community", + "example": "If we calculate the program, we can get to the AI pixel through the redundant XSS matrix!", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hackerphrase" + }, + "hackerVerb": { + "display": "Hacker Verb", + "category": "hacker", + "description": "Verbs associated with actions and activities in the field of hacking and cybersecurity", + "example": "synthesize", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hackerverb" + }, + "hackeringVerb": { + "display": "Hackering Verb", + "category": "hacker", + "description": "Verb describing actions and activities related to hacking, often involving computer systems and security", + "example": "connecting", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hackeringverb" + }, + "helpingVerb": { + "display": "Helping Verb", + "category": "word", + "description": "Auxiliary verb that helps the main verb complete the sentence", + "example": "be", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "verbhelping" + }, + "hexColor": { + "display": "Hex Color", + "category": "color", + "description": "Six-digit code representing a color in the color model", + "example": "#a99fb4", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hexcolor" + }, + "hexUint128": { + "display": "HexUint128", + "category": "number", + "description": "Hexadecimal representation of an 128-bit unsigned integer", + "example": "0x875469578e51b5e56c95b64681d147a1", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hexuint128" + }, + "hexUint16": { + "display": "HexUint16", + "category": "number", + "description": "Hexadecimal representation of an 16-bit unsigned integer", + "example": "0x8754", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hexuint16" + }, + "hexUint256": { + "display": "HexUint256", + "category": "number", + "description": "Hexadecimal representation of an 256-bit unsigned integer", + "example": "0x875469578e51b5e56c95b64681d147a12cde48a4f417231b0c486abbc263e48d", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hexuint256" + }, + "hexUint32": { + "display": "HexUint32", + "category": "number", + "description": "Hexadecimal representation of an 32-bit unsigned integer", + "example": "0x87546957", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hexuint32" + }, + "hexUint64": { + "display": "HexUint64", + "category": "number", + "description": "Hexadecimal representation of an 64-bit unsigned integer", + "example": "0x875469578e51b5e5", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hexuint64" + }, + "hexUint8": { + "display": "HexUint8", + "category": "number", + "description": "Hexadecimal representation of an 8-bit unsigned integer", + "example": "0x87", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hexuint8" + }, + "hipsterParagraph": { + "display": "Hipster Paragraph", + "category": "hipster", + "description": "Paragraph showcasing the use of trendy and unconventional vocabulary associated with hipster culture", + "example": "Microdosing roof chia echo pickled meditation cold-pressed raw denim fingerstache normcore sriracha pork belly. Wolf try-hard pop-up blog tilde hashtag health butcher waistcoat paleo portland vinegar. Microdosing sartorial blue bottle slow-carb freegan five dollar toast you probably haven't heard of them asymmetrical chia farm-to-table narwhal banjo. Gluten-free blog authentic literally synth vinyl meh ethical health fixie banh mi Yuccie. Try-hard drinking squid seitan cray VHS echo chillwave hammock kombucha food truck sustainable.\n\nPug bushwick hella tote bag cliche direct trade waistcoat yr waistcoat knausgaard pour-over master. Pitchfork jean shorts franzen flexitarian distillery hella meggings austin knausgaard crucifix wolf heirloom. Crucifix food truck you probably haven't heard of them trust fund fixie gentrify pitchfork stumptown mlkshk umami chambray blue bottle. 3 wolf moon swag +1 biodiesel knausgaard semiotics taxidermy meh artisan hoodie +1 blue bottle. Fashion axe forage mixtape Thundercats pork belly whatever 90's beard selfies chambray cred mlkshk.\n\nShabby chic typewriter VHS readymade lo-fi bitters PBR\u0026B gentrify lomo raw denim freegan put a bird on it. Raw denim cliche dreamcatcher pug fixie park trust fund migas fingerstache sriracha +1 mustache. Tilde shoreditch kickstarter franzen dreamcatcher green juice mustache neutra polaroid stumptown organic schlitz. Flexitarian ramps chicharrones kogi lo-fi mustache tilde forage street church-key williamsburg taxidermy. Chia mustache plaid mumblecore squid slow-carb disrupt Thundercats goth shoreditch master direct trade.", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "paragraphcount", + "display": "Paragraph Count", + "type": "number", + "optional": false, + "default": "2", + "options": null, + "description": "Number of paragraphs" + }, + { + "field": "sentencecount", + "display": "Sentence Count", + "type": "number", + "optional": false, + "default": "2", + "options": null, + "description": "Number of sentences in a paragraph" + }, + { + "field": "wordcount", + "display": "Word Count", + "type": "number", + "optional": false, + "default": "5", + "options": null, + "description": "Number of words in a sentence" + }, + { + "field": "paragraphseparator", + "display": "Paragraph Separator", + "type": "string", + "optional": false, + "default": "\u003cbr /\u003e", + "options": null, + "description": "String value to add between paragraphs" + } + ], + "any": "hipsterparagraph" + }, + "hipsterSentence": { + "display": "Hipster Sentence", + "category": "hipster", + "description": "Sentence showcasing the use of trendy and unconventional vocabulary associated with hipster culture", + "example": "Microdosing roof chia echo pickled.", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "wordcount", + "display": "Word Count", + "type": "number", + "optional": false, + "default": "5", + "options": null, + "description": "Number of words in a sentence" + } + ], + "any": "hipstersentence" + }, + "hipsterWord": { + "display": "Hipster Word", + "category": "hipster", + "description": "Trendy and unconventional vocabulary used by hipsters to express unique cultural preferences", + "example": "microdosing", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hipsterword" + }, + "hobby": { + "display": "Hobby", + "category": "person", + "description": "An activity pursued for leisure and pleasure", + "example": "Swimming", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "hobby" + }, + "hour": { + "display": "Hour", + "category": "time", + "description": "Unit of time equal to 60 minutes", + "example": "8", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "hour" + }, + "httpClientError": { + "display": "HTTP client error", + "category": "error", + "description": "Failure or issue occurring within a client software that sends requests to web servers", + "example": "request timeout", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "errorhttpclient" + }, + "httpError": { + "display": "HTTP error", + "category": "error", + "description": "A problem with a web http request", + "example": "invalid method", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "errorhttp" + }, + "httpMethod": { + "display": "HTTP Method", + "category": "internet", + "description": "Verb used in HTTP requests to specify the desired action to be performed on a resource", + "example": "HEAD", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "httpmethod" + }, + "httpServerError": { + "display": "HTTP server error", + "category": "error", + "description": "Failure or issue occurring within a server software that recieves requests from clients", + "example": "internal server error", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "errorhttpserver" + }, + "httpStatusCode": { + "display": "HTTP Status Code", + "category": "internet", + "description": "Random http status code", + "example": "200", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "httpstatuscode" + }, + "httpStatusCodeSimple": { + "display": "HTTP Status Code Simple", + "category": "internet", + "description": "Three-digit number returned by a web server to indicate the outcome of an HTTP request", + "example": "404", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "httpstatuscodesimple" + }, + "httpVersion": { + "display": "HTTP Version", + "category": "internet", + "description": "Number indicating the version of the HTTP protocol used for communication between a client and a server", + "example": "HTTP/1.1", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "httpversion" + }, + "imageJpeg": { + "display": "Image JPEG", + "category": "image", + "description": "Image file format known for its efficient compression and compatibility", + "example": "file.jpeg - bytes", + "output": "number[]", + "content_type": "image/jpeg", + "params": [ + { + "field": "width", + "display": "Width", + "type": "number", + "optional": false, + "default": "500", + "options": null, + "description": "Image width in px" + }, + { + "field": "height", + "display": "Height", + "type": "number", + "optional": false, + "default": "500", + "options": null, + "description": "Image height in px" + } + ], + "any": "imagejpeg" + }, + "imagePng": { + "display": "Image PNG", + "category": "image", + "description": "Image file format known for its lossless compression and support for transparency", + "example": "file.png - bytes", + "output": "number[]", + "content_type": "image/png", + "params": [ + { + "field": "width", + "display": "Width", + "type": "number", + "optional": false, + "default": "500", + "options": null, + "description": "Image width in px" + }, + { + "field": "height", + "display": "Height", + "type": "number", + "optional": false, + "default": "500", + "options": null, + "description": "Image height in px" + } + ], + "any": "imagepng" + }, + "imageSVG": { + "display": "Image SVG", + "category": "html", + "description": "Scalable Vector Graphics used to display vector images in web content", + "example": "\u003csvg width=\"369\" height=\"289\"\u003e\n\t\u003crect fill=\"#4f2958\" /\u003e\n\t\u003cpolygon points=\"382,87 418,212 415,110\" fill=\"#fffbb7\" /\u003e\n\u003c/svg\u003e", + "output": "string", + "content_type": "image/svg+xml", + "params": [ + { + "field": "width", + "display": "Width", + "type": "number", + "optional": false, + "default": "500", + "options": null, + "description": "Width in px" + }, + { + "field": "height", + "display": "Height", + "type": "number", + "optional": false, + "default": "500", + "options": null, + "description": "Height in px" + }, + { + "field": "type", + "display": "Type", + "type": "string", + "optional": true, + "default": "", + "options": [ + "rect", + "circle", + "ellipse", + "line", + "polyline", + "polygon" + ], + "description": "Sub child element type" + }, + { + "field": "colors", + "display": "Colors", + "type": "string[]", + "optional": true, + "default": "", + "options": null, + "description": "Hex or RGB array of colors to use" + } + ], + "any": "svg" + }, + "imageUrl": { + "display": "Image URL", + "category": "image", + "description": "Web address pointing to an image file that can be accessed and displayed online", + "example": "https://picsum.photos/500/500", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "width", + "display": "Width", + "type": "number", + "optional": false, + "default": "500", + "options": null, + "description": "Image width in px" + }, + { + "field": "height", + "display": "Height", + "type": "number", + "optional": false, + "default": "500", + "options": null, + "description": "Image height in px" + } + ], + "any": "imageurl" + }, + "indefiniteAdjective": { + "display": "Indefinite Adjective", + "category": "word", + "description": "Adjective describing a non-specific noun", + "example": "few", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adjectiveindefinite" + }, + "inputName": { + "display": "Input Name", + "category": "html", + "description": "Attribute used to define the name of an input element in web forms", + "example": "first_name", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "inputname" + }, + "int16": { + "display": "Int16", + "category": "number", + "description": "Signed 16-bit integer, capable of representing values from 32,768 to 32,767", + "example": "2200", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "int16" + }, + "int32": { + "display": "Int32", + "category": "number", + "description": "Signed 32-bit integer, capable of representing values from -2,147,483,648 to 2,147,483,647", + "example": "-1072427943", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "int32" + }, + "int64": { + "display": "Int64", + "category": "number", + "description": "Signed 64-bit integer, capable of representing values from -9,223,372,036,854,775,808 to -9,223,372,036,854,775,807", + "example": "-8379641344161477543", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "int64" + }, + "int8": { + "display": "Int8", + "category": "number", + "description": "Signed 8-bit integer, capable of representing values from -128 to 127", + "example": "24", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "int8" + }, + "intRange": { + "display": "IntRange", + "category": "number", + "description": "Integer value between given range", + "example": "-8379477543", + "output": "number", + "content_type": "text/plain", + "params": [ + { + "field": "min", + "display": "Min", + "type": "number", + "optional": false, + "default": "", + "options": null, + "description": "Minimum int value" + }, + { + "field": "max", + "display": "Max", + "type": "number", + "optional": false, + "default": "", + "options": null, + "description": "Maximum int value" + } + ], + "any": "intrange" + }, + "interjection": { + "display": "Interjection", + "category": "word", + "description": "Word expressing emotion", + "example": "wow", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "interjection" + }, + "interrogativeAdjective": { + "display": "Interrogative Adjective", + "category": "word", + "description": "Adjective used to ask questions", + "example": "what", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adjectiveinterrogative" + }, + "intransitiveVerb": { + "display": "Intransitive Verb", + "category": "word", + "description": "Verb that does not require a direct object to complete its meaning", + "example": "laugh", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "verbintransitive" + }, + "ipv4Address": { + "display": "IPv4 Address", + "category": "internet", + "description": "Numerical label assigned to devices on a network for identification and communication", + "example": "222.83.191.222", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "ipv4address" + }, + "ipv6Address": { + "display": "IPv6 Address", + "category": "internet", + "description": "Numerical label assigned to devices on a network, providing a larger address space than IPv4 for internet communication", + "example": "2001:cafe:8898:ee17:bc35:9064:5866:d019", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "ipv6address" + }, + "isin": { + "display": "ISIN", + "category": "finance", + "description": "International standard code for uniquely identifying securities worldwide", + "example": "CVLRQCZBXQ97", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "isin" + }, + "job": { + "display": "Job", + "category": "company", + "description": "Position or role in employment, involving specific tasks and responsibilities", + "example": "{\n\t\"company\": \"ClearHealthCosts\",\n\t\"title\": \"Agent\",\n\t\"descriptor\": \"Future\",\n\t\"level\": \"Tactics\"\n}", + "output": "Record\u003cstring,string\u003e", + "content_type": "application/json", + "params": null, + "any": "job" + }, + "jobDescriptor": { + "display": "Job Descriptor", + "category": "company", + "description": "Word used to describe the duties, requirements, and nature of a job", + "example": "Central", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "jobdescriptor" + }, + "jobLevel": { + "display": "Job Level", + "category": "company", + "description": "Random job level", + "example": "Assurance", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "joblevel" + }, + "jobTitle": { + "display": "Job Title", + "category": "company", + "description": "Specific title for a position or role within a company or organization", + "example": "Director", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "jobtitle" + }, + "json": { + "display": "JSON", + "category": "file", + "description": "Format for structured data interchange used in programming, returns an object or an array of objects", + "example": "[\n\t\t\t{ \"first_name\": \"Markus\", \"last_name\": \"Moen\", \"password\": \"Dc0VYXjkWABx\" },\n\t\t\t{ \"first_name\": \"Osborne\", \"last_name\": \"Hilll\", \"password\": \"XPJ9OVNbs5lm\" },\n\t\t\t{ \"first_name\": \"Mertie\", \"last_name\": \"Halvorson\", \"password\": \"eyl3bhwfV8wA\" }\n\t\t]", + "output": "number[]", + "content_type": "application/json", + "params": [ + { + "field": "type", + "display": "Type", + "type": "string", + "optional": false, + "default": "object", + "options": [ + "object", + "array" + ], + "description": "Type of JSON, object or array" + }, + { + "field": "rowcount", + "display": "Row Count", + "type": "number", + "optional": false, + "default": "100", + "options": null, + "description": "Number of rows in JSON array" + }, + { + "field": "indent", + "display": "Indent", + "type": "boolean", + "optional": false, + "default": "false", + "options": null, + "description": "Whether or not to add indents and newlines" + }, + { + "field": "fields", + "display": "Fields", + "type": "", + "optional": false, + "default": "", + "options": null, + "description": "Fields containing key name and function to run in json format" + } + ], + "any": "json" + }, + "language": { + "display": "Language", + "category": "language", + "description": "System of communication using symbols, words, and grammar to convey meaning between individuals", + "example": "Kazakh", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "language" + }, + "languageAbbreviation": { + "display": "Language Abbreviation", + "category": "language", + "description": "Shortened form of a language's name", + "example": "kk", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "languageabbreviation" + }, + "languageBcp": { + "display": "Language BCP", + "category": "language", + "description": "Set of guidelines and standards for identifying and representing languages in computing and internet protocols", + "example": "en-US", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "languagebcp" + }, + "lastName": { + "display": "Last Name", + "category": "person", + "description": "The family name or surname of an individual", + "example": "Daniel", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "lastname" + }, + "latitude": { + "display": "Latitude", + "category": "address", + "description": "Geographic coordinate specifying north-south position on Earth's surface", + "example": "-73.534056", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "latitude" + }, + "latitudeRange": { + "display": "Latitude Range", + "category": "address", + "description": "Latitude number between the given range (default min=0, max=90)", + "example": "22.921026", + "output": "number", + "content_type": "text/plain", + "params": [ + { + "field": "min", + "display": "Min", + "type": "number", + "optional": false, + "default": "0", + "options": null, + "description": "Minimum range" + }, + { + "field": "max", + "display": "Max", + "type": "number", + "optional": false, + "default": "90", + "options": null, + "description": "Maximum range" + } + ], + "any": "latituderange" + }, + "letter": { + "display": "Letter", + "category": "string", + "description": "Character or symbol from the American Standard Code for Information Interchange (ASCII) character set", + "example": "g", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "letter" + }, + "letterN": { + "display": "LetterN", + "category": "string", + "description": "ASCII string with length N", + "example": "gbRMaRxHki", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "count", + "display": "Count", + "type": "number", + "optional": false, + "default": "", + "options": null, + "description": "Number of digits to generate" + } + ], + "any": "lettern" + }, + "lexify": { + "display": "Lexify", + "category": "string", + "description": "Replace ? with random generated letters", + "example": "?????@??????.com =\u003e billy@mister.com", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "str", + "display": "String", + "type": "string", + "optional": false, + "default": "", + "options": null, + "description": "String value to replace ?'s" + } + ], + "any": "lexify" + }, + "linkingVerb": { + "display": "Linking Verb", + "category": "word", + "description": "Verb that Connects the subject of a sentence to a subject complement", + "example": "was", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "verblinking" + }, + "logLevel": { + "display": "Log Level", + "category": "internet", + "description": "Classification used in logging to indicate the severity or priority of a log entry", + "example": "error", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "loglevel" + }, + "longitude": { + "display": "Longitude", + "category": "address", + "description": "Geographic coordinate indicating east-west position on Earth's surface", + "example": "-147.068112", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "longitude" + }, + "longitudeRange": { + "display": "Longitude Range", + "category": "address", + "description": "Longitude number between the given range (default min=0, max=180)", + "example": "-8.170450", + "output": "number", + "content_type": "text/plain", + "params": [ + { + "field": "min", + "display": "Min", + "type": "number", + "optional": false, + "default": "0", + "options": null, + "description": "Minimum range" + }, + { + "field": "max", + "display": "Max", + "type": "number", + "optional": false, + "default": "180", + "options": null, + "description": "Maximum range" + } + ], + "any": "longituderange" + }, + "loremIpsumParagraph": { + "display": "Lorem Ipsum Paragraph", + "category": "word", + "description": "Paragraph of the Lorem Ipsum placeholder text used in design and publishing", + "example": "Quia quae repellat consequatur quidem nisi quo qui voluptatum accusantium quisquam amet. Quas et ut non dolorem ipsam aut enim assumenda mollitia harum ut. Dicta similique veniam nulla voluptas at excepturi non ad maxime at non. Eaque hic repellat praesentium voluptatem qui consequuntur dolor iusto autem velit aut. Fugit tempore exercitationem harum consequatur voluptatum modi minima aut eaque et et.\n\nAut ea voluptatem dignissimos expedita odit tempore quod aut beatae ipsam iste. Minus voluptatibus dolorem maiores eius sed nihil vel enim odio voluptatem accusamus. Natus quibusdam temporibus tenetur cumque sint necessitatibus dolorem ex ducimus iusto ex. Voluptatem neque dicta explicabo officiis et ducimus sit ut ut praesentium pariatur. Illum molestias nisi at dolore ut voluptatem accusantium et fugiat et ut.\n\nExplicabo incidunt reprehenderit non quia dignissimos recusandae vitae soluta quia et quia. Aut veniam voluptas consequatur placeat sapiente non eveniet voluptatibus magni velit eum. Nobis vel repellendus sed est qui autem laudantium quidem quam ullam consequatur. Aut iusto ut commodi similique quae voluptatem atque qui fugiat eum aut. Quis distinctio consequatur voluptatem vel aliquid aut laborum facere officiis iure tempora.", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "paragraphcount", + "display": "Paragraph Count", + "type": "number", + "optional": false, + "default": "2", + "options": null, + "description": "Number of paragraphs" + }, + { + "field": "sentencecount", + "display": "Sentence Count", + "type": "number", + "optional": false, + "default": "2", + "options": null, + "description": "Number of sentences in a paragraph" + }, + { + "field": "wordcount", + "display": "Word Count", + "type": "number", + "optional": false, + "default": "5", + "options": null, + "description": "Number of words in a sentence" + }, + { + "field": "paragraphseparator", + "display": "Paragraph Separator", + "type": "string", + "optional": false, + "default": "\u003cbr /\u003e", + "options": null, + "description": "String value to add between paragraphs" + } + ], + "any": "loremipsumparagraph" + }, + "loremIpsumSentence": { + "display": "Lorem Ipsum Sentence", + "category": "word", + "description": "Sentence of the Lorem Ipsum placeholder text used in design and publishing", + "example": "Quia quae repellat consequatur quidem.", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "wordcount", + "display": "Word Count", + "type": "number", + "optional": false, + "default": "5", + "options": null, + "description": "Number of words in a sentence" + } + ], + "any": "loremipsumsentence" + }, + "loremIpsumWord": { + "display": "Lorem Ipsum Word", + "category": "word", + "description": "Word of the Lorem Ipsum placeholder text used in design and publishing", + "example": "quia", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "loremipsumword" + }, + "lunch": { + "display": "Lunch", + "category": "food", + "description": "Midday meal, often lighter than dinner, eaten around noon", + "example": "No bake hersheys bar pie", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "lunch" + }, + "macAddress": { + "display": "MAC Address", + "category": "internet", + "description": "Unique identifier assigned to network interfaces, often used in Ethernet networks", + "example": "cb:ce:06:94:22:e9", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "macaddress" + }, + "map": { + "display": "Map", + "category": "generate", + "description": "Data structure that stores key-value pairs", + "example": "{\n\t\"software\": 7518355,\n\t\"that\": [\"despite\", \"pack\", \"whereas\", \"recently\", \"there\", \"anyone\", \"time\", \"read\"],\n\t\"use\": 683598,\n\t\"whom\": \"innovate\",\n\t\"yourselves\": 1987784\n}", + "output": "Record\u003cstring,unknown\u003e", + "content_type": "application/json", + "params": null, + "any": "map" + }, + "middleName": { + "display": "Middle Name", + "category": "person", + "description": "Name between a person's first name and last name", + "example": "Belinda", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "middlename" + }, + "minecraftAnimal": { + "display": "Minecraft animal", + "category": "minecraft", + "description": "Non-hostile creatures in Minecraft, often used for resources and farming", + "example": "chicken", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftanimal" + }, + "minecraftArmorPart": { + "display": "Minecraft armor part", + "category": "minecraft", + "description": "Component of an armor set in Minecraft, such as a helmet, chestplate, leggings, or boots", + "example": "helmet", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftarmorpart" + }, + "minecraftArmorTier": { + "display": "Minecraft armor tier", + "category": "minecraft", + "description": "Classification system for armor sets in Minecraft, indicating their effectiveness and protection level", + "example": "iron", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftarmortier" + }, + "minecraftBiome": { + "display": "Minecraft biome", + "category": "minecraft", + "description": "Distinctive environmental regions in the game, characterized by unique terrain, vegetation, and weather", + "example": "forest", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftbiome" + }, + "minecraftDye": { + "display": "Minecraft dye", + "category": "minecraft", + "description": "Items used to change the color of various in-game objects", + "example": "white", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftdye" + }, + "minecraftFood": { + "display": "Minecraft food", + "category": "minecraft", + "description": "Consumable items in Minecraft that provide nourishment to the player character", + "example": "apple", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftfood" + }, + "minecraftMobBoss": { + "display": "Minecraft mob boss", + "category": "minecraft", + "description": "Powerful hostile creature in the game, often found in challenging dungeons or structures", + "example": "ender dragon", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftmobboss" + }, + "minecraftMobHostile": { + "display": "Minecraft mob hostile", + "category": "minecraft", + "description": "Aggressive creatures in the game that actively attack players when encountered", + "example": "spider", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftmobhostile" + }, + "minecraftMobNeutral": { + "display": "Minecraft mob neutral", + "category": "minecraft", + "description": "Creature in the game that only becomes hostile if provoked, typically defending itself when attacked", + "example": "bee", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftmobneutral" + }, + "minecraftMobPassive": { + "display": "Minecraft mob passive", + "category": "minecraft", + "description": "Non-aggressive creatures in the game that do not attack players", + "example": "cow", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftmobpassive" + }, + "minecraftOre": { + "display": "Minecraft ore", + "category": "minecraft", + "description": "Naturally occurring minerals found in the game Minecraft, used for crafting purposes", + "example": "coal", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftore" + }, + "minecraftTool": { + "display": "Minecraft tool", + "category": "minecraft", + "description": "Items in Minecraft designed for specific tasks, including mining, digging, and building", + "example": "shovel", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecrafttool" + }, + "minecraftVillagerJob": { + "display": "Minecraft villager job", + "category": "minecraft", + "description": "The profession or occupation assigned to a villager character in the game", + "example": "farmer", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftvillagerjob" + }, + "minecraftVillagerLevel": { + "display": "Minecraft villager level", + "category": "minecraft", + "description": "Measure of a villager's experience and proficiency in their assigned job or profession", + "example": "master", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftvillagerlevel" + }, + "minecraftVillagerStation": { + "display": "Minecraft villager station", + "category": "minecraft", + "description": "Designated area or structure in Minecraft where villagers perform their job-related tasks and trading", + "example": "furnace", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftvillagerstation" + }, + "minecraftWeapon": { + "display": "Minecraft weapon", + "category": "minecraft", + "description": "Tools and items used in Minecraft for combat and defeating hostile mobs", + "example": "bow", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftweapon" + }, + "minecraftWeather": { + "display": "Minecraft weather", + "category": "minecraft", + "description": "Atmospheric conditions in the game that include rain, thunderstorms, and clear skies, affecting gameplay and ambiance", + "example": "rain", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftweather" + }, + "minecraftWood": { + "display": "Minecraft wood", + "category": "minecraft", + "description": "Natural resource in Minecraft, used for crafting various items and building structures", + "example": "oak", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "minecraftwood" + }, + "minute": { + "display": "Minute", + "category": "time", + "description": "Unit of time equal to 60 seconds", + "example": "34", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "minute" + }, + "month": { + "display": "Month", + "category": "time", + "description": "Division of the year, typically 30 or 31 days long", + "example": "1", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "month" + }, + "monthString": { + "display": "Month String", + "category": "time", + "description": "String Representation of a month name", + "example": "September", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "monthstring" + }, + "movie": { + "display": "Movie", + "category": "movie", + "description": "A story told through moving pictures and sound", + "example": "{\n\t\"name\": \"Psycho\",\n\t\"genre\": \"Mystery\"\n}", + "output": "Record\u003cstring,string\u003e", + "content_type": "application/json", + "params": null, + "any": "movie" + }, + "movieGenre": { + "display": "Movie Genre", + "category": "movie", + "description": "Category that classifies movies based on common themes, styles, and storytelling approaches", + "example": "Action", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "moviegenre" + }, + "movieName": { + "display": "Movie Name", + "category": "movie", + "description": "Title or name of a specific film used for identification and reference", + "example": "The Matrix", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "moviename" + }, + "name": { + "display": "Name", + "category": "person", + "description": "The given and family name of an individual", + "example": "Markus Moen", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "name" + }, + "namePrefix": { + "display": "Name Prefix", + "category": "person", + "description": "A title or honorific added before a person's name", + "example": "Mr.", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "nameprefix" + }, + "nameSuffix": { + "display": "Name Suffix", + "category": "person", + "description": "A title or designation added after a person's name", + "example": "Jr.", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "namesuffix" + }, + "nanosecond": { + "display": "Nanosecond", + "category": "time", + "description": "Unit of time equal to One billionth (10^-9) of a second", + "example": "196446360", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "nanosecond" + }, + "niceColors": { + "display": "Nice Colors", + "category": "color", + "description": "Attractive and appealing combinations of colors, returns an list of color hex codes", + "example": "[\"#cfffdd\",\"#b4dec1\",\"#5c5863\",\"#a85163\",\"#ff1f4c\"]", + "output": "string[]", + "content_type": "application/json", + "params": null, + "any": "nicecolors" + }, + "noun": { + "display": "Noun", + "category": "word", + "description": "Person, place, thing, or idea, named or referred to in a sentence", + "example": "aunt", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "noun" + }, + "nounAbstract": { + "display": "Noun Abstract", + "category": "word", + "description": "Ideas, qualities, or states that cannot be perceived with the five senses", + "example": "confusion", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "nounabstract" + }, + "nounCollectiveAnimal": { + "display": "Noun Collective Animal", + "category": "word", + "description": "Group of animals, like a 'pack' of wolves or a 'flock' of birds", + "example": "party", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "nouncollectiveanimal" + }, + "nounCollectivePeople": { + "display": "Noun Collective People", + "category": "word", + "description": "Group of people or things regarded as a unit", + "example": "body", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "nouncollectivepeople" + }, + "nounCollectiveThing": { + "display": "Noun Collective Thing", + "category": "word", + "description": "Group of objects or items, such as a 'bundle' of sticks or a 'cluster' of grapes", + "example": "hand", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "nouncollectivething" + }, + "nounCommon": { + "display": "Noun Common", + "category": "word", + "description": "General name for people, places, or things, not specific or unique", + "example": "part", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "nouncommon" + }, + "nounConcrete": { + "display": "Noun Concrete", + "category": "word", + "description": "Names for physical entities experienced through senses like sight, touch, smell, or taste", + "example": "snowman", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "nounconcrete" + }, + "nounCountable": { + "display": "Noun Countable", + "category": "word", + "description": "Items that can be counted individually", + "example": "neck", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "nouncountable" + }, + "nounDeterminer": { + "display": "Noun Determiner", + "category": "word", + "description": "Word that introduces a noun and identifies it as a noun", + "example": "your", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "noundeterminer" + }, + "nounPhrase": { + "display": "Noun Phrase", + "category": "word", + "description": "Phrase with a noun as its head, functions within sentence like a noun", + "example": "a tribe", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "phrasenoun" + }, + "nounProper": { + "display": "Noun Proper", + "category": "word", + "description": "Specific name for a particular person, place, or organization", + "example": "John", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "nounproper" + }, + "nounUncountable": { + "display": "Noun Uncountable", + "category": "word", + "description": "Items that can't be counted individually", + "example": "seafood", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "noununcountable" + }, + "number": { + "display": "Number", + "category": "number", + "description": "Mathematical concept used for counting, measuring, and expressing quantities or values", + "example": "14866", + "output": "number", + "content_type": "text/plain", + "params": [ + { + "field": "min", + "display": "Min", + "type": "number", + "optional": false, + "default": "-2147483648", + "options": null, + "description": "Minimum integer value" + }, + { + "field": "max", + "display": "Max", + "type": "number", + "optional": false, + "default": "2147483647", + "options": null, + "description": "Maximum integer value" + } + ], + "any": "number" + }, + "numerify": { + "display": "Numerify", + "category": "string", + "description": "Replace # with random numerical values", + "example": "(###)###-#### =\u003e (555)867-5309", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "str", + "display": "String", + "type": "string", + "optional": false, + "default": "", + "options": null, + "description": "String value to replace #'s" + } + ], + "any": "numerify" + }, + "operaUserAgent": { + "display": "Opera User Agent", + "category": "internet", + "description": "The specific identification string sent by the Opera web browser when making requests on the internet", + "example": "Opera/8.39 (Macintosh; U; PPC Mac OS X 10_8_7; en-US) Presto/2.9.335 Version/10.00", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "operauseragent" + }, + "paragraph": { + "display": "Paragraph", + "category": "word", + "description": "Distinct section of writing covering a single theme, composed of multiple sentences", + "example": "Interpret context record river mind press self should compare property outcome divide. Combine approach sustain consult discover explanation direct address church husband seek army. Begin own act welfare replace press suspect stay link place manchester specialist. Arrive price satisfy sign force application hair train provide basis right pay. Close mark teacher strengthen information attempt head touch aim iron tv take.", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "paragraphcount", + "display": "Paragraph Count", + "type": "number", + "optional": false, + "default": "2", + "options": null, + "description": "Number of paragraphs" + }, + { + "field": "sentencecount", + "display": "Sentence Count", + "type": "number", + "optional": false, + "default": "2", + "options": null, + "description": "Number of sentences in a paragraph" + }, + { + "field": "wordcount", + "display": "Word Count", + "type": "number", + "optional": false, + "default": "5", + "options": null, + "description": "Number of words in a sentence" + }, + { + "field": "paragraphseparator", + "display": "Paragraph Separator", + "type": "string", + "optional": false, + "default": "\u003cbr /\u003e", + "options": null, + "description": "String value to add between paragraphs" + } + ], + "any": "paragraph" + }, + "password": { + "display": "Password", + "category": "auth", + "description": "Secret word or phrase used to authenticate access to a system or account", + "example": "EEP+wwpk 4lU-eHNXlJZ4n K9%v\u0026TZ9e", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "lower", + "display": "Lower", + "type": "boolean", + "optional": false, + "default": "true", + "options": null, + "description": "Whether or not to add lower case characters" + }, + { + "field": "upper", + "display": "Upper", + "type": "boolean", + "optional": false, + "default": "true", + "options": null, + "description": "Whether or not to add upper case characters" + }, + { + "field": "numeric", + "display": "Numeric", + "type": "boolean", + "optional": false, + "default": "true", + "options": null, + "description": "Whether or not to add numeric characters" + }, + { + "field": "special", + "display": "Special", + "type": "boolean", + "optional": false, + "default": "true", + "options": null, + "description": "Whether or not to add special characters" + }, + { + "field": "space", + "display": "Space", + "type": "boolean", + "optional": false, + "default": "false", + "options": null, + "description": "Whether or not to add spaces" + }, + { + "field": "length", + "display": "Length", + "type": "number", + "optional": false, + "default": "12", + "options": null, + "description": "Number of characters in password" + } + ], + "any": "password" + }, + "pastTime": { + "display": "PastTime", + "category": "time", + "description": "Date that has occurred before the current moment in time", + "example": "2007-01-24 13:00:35.820738079 +0000 UTC", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "pasttime" + }, + "person": { + "display": "Person", + "category": "person", + "description": "Personal data, like name and contact details, used for identification and communication", + "example": "{\n\t\"first_name\": \"Markus\",\n\t\"last_name\": \"Moen\",\n\t\"gender\": \"male\",\n\t\"ssn\": \"275413589\",\n\t\"image\": \"https://picsum.photos/208/500\",\n\t\"hobby\": \"Lacrosse\",\n\t\"job\": {\n\t\t\"company\": \"Intermap Technologies\",\n\t\t\"title\": \"Developer\",\n\t\t\"descriptor\": \"Direct\",\n\t\t\"level\": \"Paradigm\"\n\t},\n\t\"address\": {\n\t\t\"address\": \"369 North Cornerbury, Miami, North Dakota 24259\",\n\t\t\"street\": \"369 North Cornerbury\",\n\t\t\"city\": \"Miami\",\n\t\t\"state\": \"North Dakota\",\n\t\t\"zip\": \"24259\",\n\t\t\"country\": \"Ghana\",\n\t\t\"latitude\": -6.662595,\n\t\t\"longitude\": 23.921575\n\t},\n\t\"contact\": {\n\t\t\"phone\": \"3023202027\",\n\t\t\"email\": \"lamarkoelpin@heaney.biz\"\n\t},\n\t\"credit_card\": {\n\t\t\"type\": \"Maestro\",\n\t\t\"number\": \"39800889982276\",\n\t\t\"exp\": \"01/29\",\n\t\t\"cvv\": \"932\"\n\t}\n}", + "output": "Record\u003cstring,unknown\u003e", + "content_type": "application/json", + "params": null, + "any": "person" + }, + "petName": { + "display": "Pet Name", + "category": "animal", + "description": "Affectionate nickname given to a pet", + "example": "Ozzy Pawsborne", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "petname" + }, + "phone": { + "display": "Phone", + "category": "person", + "description": "Numerical sequence used to contact individuals via telephone or mobile devices", + "example": "6136459948", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "phone" + }, + "phoneFormatted": { + "display": "Phone Formatted", + "category": "person", + "description": "Formatted phone number of a person", + "example": "136-459-9489", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "phoneformatted" + }, + "phrase": { + "display": "Phrase", + "category": "word", + "description": "A small group of words standing together", + "example": "time will tell", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "phrase" + }, + "possessiveAdjective": { + "display": "Possessive Adjective", + "category": "word", + "description": "Adjective indicating ownership or possession", + "example": "my", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adjectivepossessive" + }, + "preposition": { + "display": "Preposition", + "category": "word", + "description": "Words used to express the relationship of a noun or pronoun to other words in a sentence", + "example": "other than", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "preposition" + }, + "prepositionCompound": { + "display": "Preposition Compound", + "category": "word", + "description": "Preposition that can be formed by combining two or more prepositions", + "example": "according to", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "prepositioncompound" + }, + "prepositionDouble": { + "display": "Preposition Double", + "category": "word", + "description": "Two-word combination preposition, indicating a complex relation", + "example": "before", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "prepositiondouble" + }, + "prepositionPhrase": { + "display": "Preposition Phrase", + "category": "word", + "description": "Phrase starting with a preposition, showing relation between elements in a sentence.", + "example": "out the black thing", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "phrasepreposition" + }, + "prepositionSimple": { + "display": "Preposition Simple", + "category": "word", + "description": "Single-word preposition showing relationships between 2 parts of a sentence", + "example": "out", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "prepositionsimple" + }, + "price": { + "display": "Price", + "category": "payment", + "description": "The amount of money or value assigned to a product, service, or asset in a transaction", + "example": "92.26", + "output": "number", + "content_type": "text/plain", + "params": [ + { + "field": "min", + "display": "Min", + "type": "number", + "optional": false, + "default": "0", + "options": null, + "description": "Minimum price value" + }, + { + "field": "max", + "display": "Max", + "type": "number", + "optional": false, + "default": "1000", + "options": null, + "description": "Maximum price value" + } + ], + "any": "price" + }, + "product": { + "display": "Product", + "category": "product", + "description": "An item created for sale or use", + "example": "{\n\t\"name\": \"olive copper monitor\",\n\t\"description\": \"Backwards caused quarterly without week it hungry thing someone him regularly. Whomever this revolt hence from his timing as quantity us these yours.\",\n\t\"categories\": [\n\t\t\"clothing\",\n\t\t\"tools and hardware\"\n\t],\n\t\"price\": 7.61,\n\t\"features\": [\n\t\t\"ultra-lightweight\"\n\t],\n\t\"color\": \"navy\",\n\t\"material\": \"brass\",\n\t\"upc\": \"012780949980\"\n}", + "output": "Record\u003cstring,unknown\u003e", + "content_type": "application/json", + "params": null, + "any": "product" + }, + "productCategory": { + "display": "Product Category", + "category": "product", + "description": "Classification grouping similar products based on shared characteristics or functions", + "example": "clothing", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "productcategory" + }, + "productDescription": { + "display": "Product Description", + "category": "product", + "description": "Explanation detailing the features and characteristics of a product", + "example": "Backwards caused quarterly without week it hungry thing someone him regularly. Whomever this revolt hence from his timing as quantity us these yours.", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "productdescription" + }, + "productFeature": { + "display": "Product Feature", + "category": "product", + "description": "Specific characteristic of a product that distinguishes it from others products", + "example": "ultra-lightweight", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "productfeature" + }, + "productMaterial": { + "display": "Product Material", + "category": "product", + "description": "The substance from which a product is made, influencing its appearance, durability, and properties", + "example": "brass", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "productmaterial" + }, + "productName": { + "display": "Product Name", + "category": "product", + "description": "Distinctive title or label assigned to a product for identification and marketing", + "example": "olive copper monitor", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "productname" + }, + "productUpc": { + "display": "Product UPC", + "category": "product", + "description": "Standardized barcode used for product identification and tracking in retail and commerce", + "example": "012780949980", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "productupc" + }, + "programmingLanguage": { + "display": "Programming Language", + "category": "language", + "description": "Formal system of instructions used to create software and perform computational tasks", + "example": "Go", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "programminglanguage" + }, + "pronoun": { + "display": "Pronoun", + "category": "word", + "description": "Word used in place of a noun to avoid repetition", + "example": "me", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "pronoun" + }, + "pronounDemonstrative": { + "display": "Pronoun Demonstrative", + "category": "word", + "description": "Pronoun that points out specific people or things", + "example": "this", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "pronoundemonstrative" + }, + "pronounIndefinite": { + "display": "Pronoun Indefinite", + "category": "word", + "description": "Pronoun that does not refer to a specific person or thing", + "example": "few", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "pronounindefinite" + }, + "pronounInterrogative": { + "display": "Pronoun Interrogative", + "category": "word", + "description": "Pronoun used to ask questions", + "example": "what", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "pronouninterrogative" + }, + "pronounObject": { + "display": "Pronoun Object", + "category": "word", + "description": "Pronoun used as the object of a verb or preposition", + "example": "it", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "pronounobject" + }, + "pronounPersonal": { + "display": "Pronoun Personal", + "category": "word", + "description": "Pronoun referring to a specific persons or things", + "example": "it", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "pronounpersonal" + }, + "pronounPossessive": { + "display": "Pronoun Possessive", + "category": "word", + "description": "Pronoun indicating ownership or belonging", + "example": "mine", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "pronounpossessive" + }, + "pronounReflective": { + "display": "Pronoun Reflective", + "category": "word", + "description": "Pronoun referring back to the subject of the sentence", + "example": "myself", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "pronounreflective" + }, + "pronounRelative": { + "display": "Pronoun Relative", + "category": "word", + "description": "Pronoun that introduces a clause, referring back to a noun or pronoun", + "example": "as", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "pronounrelative" + }, + "properAdjective": { + "display": "Proper Adjective", + "category": "word", + "description": "Adjective derived from a proper noun, often used to describe nationality or origin", + "example": "Afghan", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adjectiveproper" + }, + "quantitativeAdjective": { + "display": "Quantitative Adjective", + "category": "word", + "description": "Adjective that indicates the quantity or amount of something", + "example": "a little", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "adjectivequantitative" + }, + "question": { + "display": "Question", + "category": "word", + "description": "Statement formulated to inquire or seek clarification", + "example": "Roof chia echo?", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "question" + }, + "quote": { + "display": "Quote", + "category": "word", + "description": "Direct repetition of someone else's words", + "example": "\"Roof chia echo.\" - Lura Lockman", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "quote" + }, + "randomInt": { + "display": "Random Int", + "category": "number", + "description": "Randomly selected value from a slice of int", + "example": "-1,2,-3,4 =\u003e -3", + "output": "number", + "content_type": "text/plain", + "params": [ + { + "field": "ints", + "display": "Integers", + "type": "number[]", + "optional": false, + "default": "", + "options": null, + "description": "Delimited separated integers" + } + ], + "any": "randomint" + }, + "randomMarkdownDocument": { + "display": "Random markdown document", + "category": "template", + "description": "Lightweight markup language used for formatting plain text", + "example": "# PurpleSheep5\n\n*Author: Amie Feil*\n\nQuarterly without week it hungry thing someone. Him regularly today whomever this revolt hence. From his timing as quantity us these. Yours live these frantic not may another. How this ours his them those whose.\n\nThem batch its Iraqi most that few. Abroad cheese this whereas next how there. Gorgeous genetics time choir fiction therefore yourselves. Am those infrequently heap software quarterly rather. Punctuation yellow where several his orchard to.\n\n## Table of Contents\n- [Installation](#installation)\n- [Usage](#usage)\n- [License](#license)\n\n## Installation\n'''bash\npip install PurpleSheep5\n'''\n\n## Usage\n'''python\nresult = purplesheep5.process(\"funny request\")\nprint(\"purplesheep5 result:\", \"in progress\")\n'''\n\n## License\nMIT", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "markdown" + }, + "randomString": { + "display": "Random String", + "category": "string", + "description": "Return a random string from a string array", + "example": "hello,world,whats,up =\u003e world", + "output": "string[]", + "content_type": "text/plain", + "params": [ + { + "field": "strs", + "display": "Strings", + "type": "string[]", + "optional": false, + "default": "", + "options": null, + "description": "Delimited separated strings" + } + ], + "any": "randomstring" + }, + "randomTextEmailDocument": { + "display": "Random text email Document", + "category": "template", + "description": "Written content of an email message, including the sender's message to the recipient", + "example": "Subject: Greetings from Marcel!\n\nDear Pagac,\n\nHello there! Sending positive vibes your way.\n\nI hope you're doing great. May your week be filled with joy.\n\nVirtually woman where team late quarterly without week it hungry. Thing someone him regularly today whomever this revolt hence from. His timing as quantity us these yours live these frantic. Not may another how this ours his them those whose. Them batch its Iraqi most that few abroad cheese this.\n\nWhereas next how there gorgeous genetics time choir fiction therefore. Yourselves am those infrequently heap software quarterly rather punctuation yellow. Where several his orchard to frequently hence victorious boxers each. Does auspicious yourselves first soup tomorrow this that must conclude. Anyway some yearly who cough laugh himself both yet rarely.\n\nMe dolphin intensely block would leap plane us first then. Down them eager would hundred super throughout animal yet themselves. Been group flock shake part purchase up usually it her. None it hers boat what their there Turkmen moreover one. Lebanese to brace these shower in it everybody should whatever.\n\nI'm curious to know what you think about it. If you have a moment, please feel free to check out the project on Bitbucket\n\nI'm eager to hear what you think. Looking forward to your feedback!\n\nThank you for your consideration! Thanks in advance for your time.\n\nKind regards\nMilford Johnston\njamelhaag@king.org\n(507)096-3058", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "email_text" + }, + "randomUint": { + "display": "Random Uint", + "category": "number", + "description": "Randomly selected value from a slice of uint", + "example": "1,2,3,4 =\u003e 4", + "output": "number", + "content_type": "text/plain", + "params": [ + { + "field": "uints", + "display": "Unsigned Integers", + "type": "number[]", + "optional": false, + "default": "", + "options": null, + "description": "Delimited separated unsigned integers" + } + ], + "any": "randomuint" + }, + "regex": { + "display": "Regex", + "category": "generate", + "description": "Pattern-matching tool used in text processing to search and manipulate strings", + "example": "[abcdef]{5} - affec", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "str", + "display": "String", + "type": "string", + "optional": false, + "default": "", + "options": null, + "description": "Regex RE2 syntax string" + } + ], + "any": "regex" + }, + "rgbColor": { + "display": "RGB Color", + "category": "color", + "description": "Color defined by red, green, and blue light values", + "example": "[85, 224, 195]", + "output": "number[]", + "content_type": "application/json", + "params": null, + "any": "rgbcolor" + }, + "runtimeError": { + "display": "Runtime error", + "category": "error", + "description": "Malfunction occuring during program execution, often causing abrupt termination or unexpected behavior", + "example": "address out of bounds", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "errorruntime" + }, + "safariUserAgent": { + "display": "Safari User Agent", + "category": "internet", + "description": "The specific identification string sent by the Safari web browser when making requests on the internet", + "example": "Mozilla/5.0 (iPad; CPU OS 8_3_2 like Mac OS X; en-US) AppleWebKit/531.15.6 (KHTML, like Gecko) Version/4.0.5 Mobile/8B120 Safari/6531.15.6", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "safariuseragent" + }, + "safeColor": { + "display": "Safe Color", + "category": "color", + "description": "Colors displayed consistently on different web browsers and devices", + "example": "black", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "safecolor" + }, + "school": { + "display": "School", + "category": "school", + "description": "An institution for formal education and learning", + "example": "Harborview State Academy", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "school" + }, + "second": { + "display": "Second", + "category": "time", + "description": "Unit of time equal to 1/60th of a minute", + "example": "43", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "second" + }, + "sentence": { + "display": "Sentence", + "category": "word", + "description": "Set of words expressing a statement, question, exclamation, or command", + "example": "Interpret context record river mind.", + "output": "string", + "content_type": "text/plain", + "params": [ + { + "field": "wordcount", + "display": "Word Count", + "type": "number", + "optional": false, + "default": "5", + "options": null, + "description": "Number of words in a sentence" + } + ], + "any": "sentence" + }, + "shuffleInts": { + "display": "Shuffle Ints", + "category": "number", + "description": "Shuffles an array of ints", + "example": "1,2,3,4 =\u003e 3,1,4,2", + "output": "number[]", + "content_type": "text/plain", + "params": [ + { + "field": "ints", + "display": "Integers", + "type": "number[]", + "optional": false, + "default": "", + "options": null, + "description": "Delimited separated integers" + } + ], + "any": "shuffleints" + }, + "shuffleStrings": { + "display": "Shuffle Strings", + "category": "string", + "description": "Shuffle an array of strings", + "example": "hello,world,whats,up =\u003e whats,world,hello,up", + "output": "string[]", + "content_type": "application/json", + "params": [ + { + "field": "strs", + "display": "Strings", + "type": "string[]", + "optional": false, + "default": "", + "options": null, + "description": "Delimited separated strings" + } + ], + "any": "shufflestrings" + }, + "simpleSentence": { + "display": "Simple Sentence", + "category": "word", + "description": "Group of words that expresses a complete thought", + "example": "A tribe fly the lemony kitchen.", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "sentencesimple" + }, + "slogan": { + "display": "Slogan", + "category": "company", + "description": "Catchphrase or motto used by a company to represent its brand or values", + "example": "Universal seamless Focus, interactive.", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "slogan" + }, + "snack": { + "display": "Snack", + "category": "food", + "description": "Random snack", + "example": "Small, quick food item eaten between meals", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "snack" + }, + "sql": { + "display": "SQL", + "category": "database", + "description": "Command in SQL used to add new data records into a database table", + "example": "INSERT INTO people \n\t(id, first_name, price, age, created_at) \nVALUES \n\t(1, 'Markus', 804.92, 21, '1937-01-30 07:58:01'),\n\t(2, 'Santino', 235.13, 40, '1964-07-07 22:25:40');", + "output": "string", + "content_type": "application/sql", + "params": [ + { + "field": "table", + "display": "Table", + "type": "string", + "optional": false, + "default": "", + "options": null, + "description": "Name of the table to insert into" + }, + { + "field": "count", + "display": "Count", + "type": "number", + "optional": false, + "default": "100", + "options": null, + "description": "Number of inserts to generate" + }, + { + "field": "fields", + "display": "Fields", + "type": "", + "optional": false, + "default": "", + "options": null, + "description": "Fields containing key name and function to run in json format" + } + ], + "any": "sql" + }, + "ssn": { + "display": "SSN", + "category": "person", + "description": "Unique nine-digit identifier used for government and financial purposes in the United States", + "example": "296446360", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "ssn" + }, + "state": { + "display": "State", + "category": "address", + "description": "Governmental division within a country, often having its own laws and government", + "example": "Illinois", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "state" + }, + "stateAbbreviation": { + "display": "State Abbreviation", + "category": "address", + "description": "Shortened 2-letter form of a country's state", + "example": "IL", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "stateabr" + }, + "street": { + "display": "Street", + "category": "address", + "description": "Public road in a city or town, typically with houses and buildings on each side", + "example": "364 East Rapidsborough", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "street" + }, + "streetName": { + "display": "Street Name", + "category": "address", + "description": "Name given to a specific road or street", + "example": "View", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "streetname" + }, + "streetNumber": { + "display": "Street Number", + "category": "address", + "description": "Numerical identifier assigned to a street", + "example": "13645", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "streetnumber" + }, + "streetPrefix": { + "display": "Street Prefix", + "category": "address", + "description": "Directional or descriptive term preceding a street name, like 'East' or 'Main'", + "example": "Lake", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "streetprefix" + }, + "streetSuffix": { + "display": "Street Suffix", + "category": "address", + "description": "Designation at the end of a street name indicating type, like 'Avenue' or 'Street'", + "example": "land", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "streetsuffix" + }, + "teams": { + "display": "Teams", + "category": "person", + "description": "Randomly split people into teams", + "example": "{\n\t\"Team 1\": [\n\t\t\"Justin\",\n\t\t\"Connor\",\n\t\t\"Jeff\"\n\t],\n\t\"Team 2\": [\n\t\t\"Sharon\",\n\t\t\"Fabian\",\n\t\t\"Billy\"\n\t],\n\t\"Team 3\": [\n\t\t\"Steve\",\n\t\t\"Robert\"\n\t]\n}", + "output": "Record\u003cstring, Array\u003cstring\u003e\u003e", + "content_type": "application/json", + "params": [ + { + "field": "people", + "display": "Strings", + "type": "string[]", + "optional": false, + "default": "", + "options": null, + "description": "Array of people" + }, + { + "field": "teams", + "display": "Strings", + "type": "string[]", + "optional": false, + "default": "", + "options": null, + "description": "Array of teams" + } + ], + "any": "teams" + }, + "timezone": { + "display": "Timezone", + "category": "time", + "description": "Region where the same standard time is used, based on longitudinal divisions of the Earth", + "example": "Kaliningrad Standard Time", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "timezone" + }, + "timezoneAbbreviation": { + "display": "Timezone Abbreviation", + "category": "time", + "description": "Abbreviated 3-letter word of a timezone", + "example": "KST", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "timezoneabv" + }, + "timezoneFull": { + "display": "Timezone Full", + "category": "time", + "description": "Full name of a timezone", + "example": "(UTC+03:00) Kaliningrad, Minsk", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "timezonefull" + }, + "timezoneOffset": { + "display": "Timezone Offset", + "category": "time", + "description": "The difference in hours from Coordinated Universal Time (UTC) for a specific region", + "example": "3", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "timezoneoffset" + }, + "timezoneRegion": { + "display": "Timezone Region", + "category": "time", + "description": "Geographic area sharing the same standard time", + "example": "America/Alaska", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "timezoneregion" + }, + "transitiveVerb": { + "display": "Transitive Verb", + "category": "word", + "description": "Verb that requires a direct object to complete its meaning", + "example": "follow", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "verbtransitive" + }, + "uint16": { + "display": "Uint16", + "category": "number", + "description": "Unsigned 16-bit integer, capable of representing values from 0 to 65,535", + "example": "34968", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "uint16" + }, + "uint32": { + "display": "Uint32", + "category": "number", + "description": "Unsigned 32-bit integer, capable of representing values from 0 to 4,294,967,295", + "example": "1075055705", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "uint32" + }, + "uint64": { + "display": "Uint64", + "category": "number", + "description": "Unsigned 64-bit integer, capable of representing values from 0 to 18,446,744,073,709,551,615", + "example": "843730692693298265", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "uint64" + }, + "uint8": { + "display": "Uint8", + "category": "number", + "description": "Unsigned 8-bit integer, capable of representing values from 0 to 255", + "example": "152", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "uint8" + }, + "uintRange": { + "display": "UintRange", + "category": "number", + "description": "Non-negative integer value between given range", + "example": "1075055705", + "output": "number", + "content_type": "text/plain", + "params": [ + { + "field": "min", + "display": "Min", + "type": "number", + "optional": false, + "default": "0", + "options": null, + "description": "Minimum uint value" + }, + { + "field": "max", + "display": "Max", + "type": "number", + "optional": false, + "default": "4294967295", + "options": null, + "description": "Maximum uint value" + } + ], + "any": "uintrange" + }, + "url": { + "display": "URL", + "category": "internet", + "description": "Web address that specifies the location of a resource on the internet", + "example": "http://www.principalproductize.biz/target", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "url" + }, + "userAgent": { + "display": "User Agent", + "category": "internet", + "description": "String sent by a web browser to identify itself when requesting web content", + "example": "Mozilla/5.0 (Windows NT 5.0) AppleWebKit/5362 (KHTML, like Gecko) Chrome/37.0.834.0 Mobile Safari/5362", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "useragent" + }, + "username": { + "display": "Username", + "category": "auth", + "description": "Unique identifier assigned to a user for accessing an account or system", + "example": "Daniel1364", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "username" + }, + "uuid": { + "display": "UUID", + "category": "misc", + "description": "128-bit identifier used to uniquely identify objects or entities in computer systems", + "example": "590c1440-9888-45b0-bd51-a817ee07c3f2", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "uuid" + }, + "validationError": { + "display": "Validation error", + "category": "error", + "description": "Occurs when input data fails to meet required criteria or format specifications", + "example": "missing required field", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "errorvalidation" + }, + "vegetable": { + "display": "Vegetable", + "category": "food", + "description": "Edible plant or part of a plant, often used in savory cooking or salads", + "example": "Amaranth Leaves", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "vegetable" + }, + "verb": { + "display": "Verb", + "category": "word", + "description": "Word expressing an action, event or state", + "example": "release", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "verb" + }, + "verbPhrase": { + "display": "Verb Phrase", + "category": "word", + "description": "Phrase that Consists of a verb and its modifiers, expressing an action or state", + "example": "a tribe", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "phraseverb" + }, + "vowel": { + "display": "Vowel", + "category": "string", + "description": "Speech sound produced with an open vocal tract", + "example": "a", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "vowel" + }, + "weekday": { + "display": "Weekday", + "category": "time", + "description": "Day of the week excluding the weekend", + "example": "Friday", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "weekday" + }, + "word": { + "display": "Word", + "category": "word", + "description": "Basic unit of language representing a concept or thing, consisting of letters and having meaning", + "example": "man", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "word" + }, + "xml": { + "display": "XML", + "category": "file", + "description": "Generates an single or an array of elements in xml format", + "example": "\u003cxml\u003e\n\t\u003crecord\u003e\n\t\t\u003cfirst_name\u003eMarkus\u003c/first_name\u003e\n\t\t\u003clast_name\u003eMoen\u003c/last_name\u003e\n\t\t\u003cpassword\u003eDc0VYXjkWABx\u003c/password\u003e\n\t\u003c/record\u003e\n\t\u003crecord\u003e\n\t\t\u003cfirst_name\u003eOsborne\u003c/first_name\u003e\n\t\t\u003clast_name\u003eHilll\u003c/last_name\u003e\n\t\t\u003cpassword\u003eXPJ9OVNbs5lm\u003c/password\u003e\n\t\u003c/record\u003e\n\u003c/xml\u003e", + "output": "number[]", + "content_type": "application/xml", + "params": [ + { + "field": "type", + "display": "Type", + "type": "string", + "optional": false, + "default": "single", + "options": [ + "single", + "array" + ], + "description": "Type of XML, single or array" + }, + { + "field": "rootelement", + "display": "Root Element", + "type": "string", + "optional": false, + "default": "xml", + "options": null, + "description": "Root element wrapper name" + }, + { + "field": "recordelement", + "display": "Record Element", + "type": "string", + "optional": false, + "default": "record", + "options": null, + "description": "Record element for each record row" + }, + { + "field": "rowcount", + "display": "Row Count", + "type": "number", + "optional": false, + "default": "100", + "options": null, + "description": "Number of rows in JSON array" + }, + { + "field": "indent", + "display": "Indent", + "type": "boolean", + "optional": false, + "default": "false", + "options": null, + "description": "Whether or not to add indents and newlines" + }, + { + "field": "fields", + "display": "Fields", + "type": "", + "optional": false, + "default": "", + "options": null, + "description": "Fields containing key name and function to run in json format" + } + ], + "any": "xml" + }, + "year": { + "display": "Year", + "category": "time", + "description": "Period of 365 days, the time Earth takes to orbit the Sun", + "example": "1900", + "output": "number", + "content_type": "text/plain", + "params": null, + "any": "year" + }, + "zip": { + "display": "Zip", + "category": "address", + "description": "Numerical code for postal address sorting, specific to a geographic area", + "example": "13645", + "output": "string", + "content_type": "text/plain", + "params": null, + "any": "zip" + } +} diff --git a/functions_test.go b/functions_test.go new file mode 100644 index 0000000..1db20c3 --- /dev/null +++ b/functions_test.go @@ -0,0 +1,52 @@ +package faker + +import ( + _ "embed" + "encoding/json" + "fmt" + "testing" + + "github.com/brianvoe/gofakeit/v6" + "github.com/stretchr/testify/require" + "github.com/szkiba/xk6-faker/faker" + "github.com/szkiba/xk6-faker/module" + "go.k6.io/k6/js/modulestest" +) + +//go:embed functions.json +var functionsJSON []byte + +func Test_functions_json(t *testing.T) { + t.Parallel() + + var functions map[string]*gofakeit.Info + + require.NoError(t, json.Unmarshal(functionsJSON, &functions)) + require.Len(t, functions, len(faker.GetFuncLookups())) + + runtime := modulestest.NewRuntime(t) + err := runtime.SetupModuleSystem(map[string]any{module.ImportPath: module.New()}, nil, nil) + + require.NoError(t, err) + + _, err = runtime.RunOnEventLoop(` + let mod = require("` + module.ImportPath + `") + let faker = new mod.Faker(11) + `) + + require.NoError(t, err) + + lookups := faker.GetFuncLookups() + + for name, info := range functions { + require.Contains(t, lookups, name) + + val, err := runtime.RunOnEventLoop("typeof faker.zen." + name) + require.NoError(t, err) + require.Equal(t, "function", val.String()) + + val, err = runtime.RunOnEventLoop(fmt.Sprintf("typeof faker.%s.%s", info.Category, name)) + require.NoError(t, err) + require.Equal(t, "function", val.String()) + } +} diff --git a/go.mod b/go.mod index 1fb1222..f3454fd 100644 --- a/go.mod +++ b/go.mod @@ -1,32 +1,55 @@ module github.com/szkiba/xk6-faker -go 1.19 +go 1.21 require ( - github.com/brianvoe/gofakeit/v6 v6.20.2 - github.com/dop251/goja v0.0.0-20230531210528-d7324b2d74f7 - github.com/sirupsen/logrus v1.9.0 - go.k6.io/k6 v0.45.1 + github.com/brianvoe/gofakeit/v6 v6.28.0 + github.com/dop251/goja v0.0.0-20231027120936-b396bb4c349d + github.com/iancoleman/strcase v0.3.0 + github.com/stretchr/testify v1.8.4 + go.k6.io/k6 v0.49.0 lukechampine.com/frand v1.4.2 ) require ( github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect github.com/dlclark/regexp2 v1.9.0 // indirect - github.com/fatih/color v1.15.0 // indirect + github.com/fatih/color v1.16.0 // indirect + github.com/go-logr/logr v1.3.0 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/go-sourcemap/sourcemap v2.1.4-0.20211119122758-180fcef48034+incompatible // indirect - github.com/google/pprof v0.0.0-20230207041349-798e818bf904 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/pprof v0.0.0-20230728192033-2ba5b33183c6 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.18 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/mstoykov/atlas v0.0.0-20220811071828-388f114305dd // indirect github.com/onsi/ginkgo v1.16.5 // indirect - github.com/onsi/gomega v1.18.1 // indirect + github.com/onsi/gomega v1.20.2 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/serenize/snaker v0.0.0-20201027110005-a7ad2135616e // indirect + github.com/sirupsen/logrus v1.9.3 // indirect github.com/spf13/afero v1.1.2 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect - golang.org/x/time v0.3.0 // indirect + go.opentelemetry.io/otel v1.21.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/sdk v1.21.0 // indirect + go.opentelemetry.io/otel/trace v1.21.0 // indirect + go.opentelemetry.io/proto/otlp v1.0.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/grpc v1.60.0 // indirect + google.golang.org/protobuf v1.31.1-0.20231027082548-f4a6c1f6e5c1 // indirect gopkg.in/guregu/null.v3 v3.3.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index f2b2d29..8d9750f 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,13 @@ github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= -github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= -github.com/brianvoe/gofakeit/v6 v6.20.2 h1:FLloufuC7NcbHqDzVQ42CG9AKryS1gAGCRt8nQRsW+Y= -github.com/brianvoe/gofakeit/v6 v6.20.2/go.mod h1:Ow6qC71xtwm79anlwKRlWZW6zVq9D2XHE4QSSMP/rU8= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= +github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/brianvoe/gofakeit/v6 v6.28.0 h1:Xib46XXuQfmlLS2EXRuJpqcw8St6qSZz75OUo0tgAW4= +github.com/brianvoe/gofakeit/v6 v6.28.0/go.mod h1:Xj58BMSnFqcn/fAQeSK+/PLtC5kSb7FJIq4JyGa8vEs= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/chzyer/logex v1.2.0/go.mod h1:9+9sk7u7pGNWYMkh0hdiL++6OeibzJccyQU4p4MedaY= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86cAH8qUic= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -18,19 +18,27 @@ github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnm github.com/dlclark/regexp2 v1.9.0 h1:pTK/l/3qYIKaRXuHnEnIf7Y5NxfRPfpb7dis6/gdlVI= github.com/dlclark/regexp2 v1.9.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dop251/goja v0.0.0-20211022113120-dc8c55024d06/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= -github.com/dop251/goja v0.0.0-20230531210528-d7324b2d74f7 h1:cVGkvrdHgyBkYeB6kMCaF5j2d9Bg4trgbIpcUrKrvk4= -github.com/dop251/goja v0.0.0-20230531210528-d7324b2d74f7/go.mod h1:QMWlm50DNe14hD7t24KEqZuUdC9sOTy8W6XbCU1mlw4= +github.com/dop251/goja v0.0.0-20231027120936-b396bb4c349d h1:wi6jN5LVt/ljaBG4ue79Ekzb12QfJ52L9Q98tl8SWhw= +github.com/dop251/goja v0.0.0-20231027120936-b396bb4c349d/go.mod h1:QMWlm50DNe14hD7t24KEqZuUdC9sOTy8W6XbCU1mlw4= github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM= -github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= +github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sourcemap/sourcemap v2.1.4-0.20211119122758-180fcef48034+incompatible h1:bopx7t9jyUNX1ebhr0G4gtQWmUOgwQRI0QsYhdYLgkU= github.com/go-sourcemap/sourcemap v2.1.4-0.20211119122758-180fcef48034+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -39,75 +47,106 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20230207041349-798e818bf904 h1:4/hN5RUoecvl+RmJRE2YxKWtnnQls6rQjjW5oV7qg2U= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/google/pprof v0.0.0-20230728192033-2ba5b33183c6 h1:ZgoomqkdjGbQ3+qQXCkvYMCDvGDNg2k5JJDjjdTB6jY= +github.com/google/pprof v0.0.0-20230728192033-2ba5b33183c6/go.mod h1:Jh3hGz2jkYak8qXPD19ryItVnUgpgeqzdkY/D0EaeuA= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= +github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= +github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= +github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mccutchen/go-httpbin v1.1.2-0.20190116014521-c5cb2f4802fa h1:lx8ZnNPwjkXSzOROz0cg69RlErRXs+L3eDkggASWKLo= +github.com/mccutchen/go-httpbin v1.1.2-0.20190116014521-c5cb2f4802fa/go.mod h1:fhpOYavp5g2K74XDl/ao2y4KvhqVtKlkg1e+0UaQv7I= github.com/mstoykov/atlas v0.0.0-20220811071828-388f114305dd h1:AC3N94irbx2kWGA8f/2Ks7EQl2LxKIRQYuT9IJDwgiI= github.com/mstoykov/atlas v0.0.0-20220811071828-388f114305dd/go.mod h1:9vRHVuLCjoFfE3GT06X0spdOAO+Zzo4AMjdIwUHBvAk= github.com/mstoykov/envconfig v1.4.1-0.20220114105314-765c6d8c76f1 h1:94EkGmhXrVUEal+uLwFUf4fMXPhZpM5tYxuIsxrCCbI= +github.com/mstoykov/envconfig v1.4.1-0.20220114105314-765c6d8c76f1/go.mod h1:vk/d9jpexY2Z9Bb0uB4Ndesss1Sr0Z9ZiGUrg5o9VGk= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= -github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= +github.com/onsi/gomega v1.20.2 h1:8uQq0zMgLEfa0vRrrBgaJF2gyW9Da9BmfGV+OyUzfkY= +github.com/onsi/gomega v1.20.2/go.mod h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/serenize/snaker v0.0.0-20201027110005-a7ad2135616e h1:zWKUYT07mGmVBH+9UgnHXd/ekCK99C8EbDSAt5qsjXE= github.com/serenize/snaker v0.0.0-20201027110005-a7ad2135616e/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.k6.io/k6 v0.45.1 h1:z+iVxE7Qze2Ka8tKvnjerOsoTuQb8e27Vqd1wcG2IFI= -go.k6.io/k6 v0.45.1/go.mod h1:SBO/sqx6h/a0lJqEioMEpneb6zULogIyDmz+ufFqtIE= +go.k6.io/k6 v0.49.0 h1:Bk+hemV2fbzuGnU8rPl7ZPUaDBUTdZOcypLe2JZoS5k= +go.k6.io/k6 v0.49.0/go.mod h1:hnQ0FKUz10qTbRpuM8rSAmV8d7+aJZhoVmywKPhQrxg= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 h1:cl5P5/GIfFh4t6xyruOgJP5QiA1pw4fYYdv6nc6CBWw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0/go.mod h1:zgBdWWAu7oEEMC06MMKc5NLbA/1YDXV1sMpSqEeLQLg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 h1:tIqheXEFWAZ7O8A7m+J0aPTmpJN3YQ7qetUAdkkkKpk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0/go.mod h1:nUeKExfxAQVbiVFn32YXpXZZHZ61Cc3s3Rn1pDBGAb0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 h1:digkEZCJWobwBqMwC0cwCq8/wkkRy/OowZg5OArWZrM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0/go.mod h1:/OpE/y70qVkndM0TrxT4KBoN3RsFZP0QaofcfYrj76I= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -116,9 +155,9 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -130,22 +169,19 @@ golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -153,10 +189,10 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -165,8 +201,14 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= -google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= +google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= +google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 h1:6GQBEOdGkX6MMTLT9V+TjtIRZCw9VPD5Z+yHY9wMgS0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= +google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k= +google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -175,9 +217,11 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.1-0.20231027082548-f4a6c1f6e5c1 h1:fk72uXZyuZiTtW5tgd63jyVK6582lF61nRC/kGv6vCA= +google.golang.org/protobuf v1.31.1-0.20231027082548-f4a6c1f6e5c1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= @@ -192,5 +236,6 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= diff --git a/module.go b/module.go deleted file mode 100644 index a88a655..0000000 --- a/module.go +++ /dev/null @@ -1,105 +0,0 @@ -// MIT License -// -// Copyright (c) 2021 Iván Szkiba -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package faker - -import ( - "os" - "strconv" - - "github.com/dop251/goja" - "github.com/sirupsen/logrus" - "go.k6.io/k6/js/modules" -) - -const envSEED = "XK6_FAKER_SEED" - -// Register the extensions on module initialization. -func init() { - modules.Register("k6/x/faker", New()) -} - -type ( - RootModule struct{} - - ModuleInstance struct { - vu modules.VU - exports map[string]interface{} - } -) - -// Ensure the interfaces are implemented correctly. -var ( - _ modules.Instance = &ModuleInstance{} //nolint:exhaustruct - _ modules.Module = &RootModule{} -) - -// New returns a pointer to a new RootModule instance. -func New() *RootModule { - return &RootModule{} -} - -// NewModuleInstance implements the modules.Module interface and returns -// a new instance for each VU. -func (*RootModule) NewModuleInstance(vu modules.VU) modules.Instance { //nolint:varnamelen,ireturn - instance := &ModuleInstance{ - vu: vu, - exports: make(map[string]interface{}), - } - - instance.exports["Faker"] = instance.newFaker - - return instance -} - -// Exports implements the modules.Instance interface and returns the exports -// of the JS module. -func (mi *ModuleInstance) Exports() modules.Exports { - return modules.Exports{ - Named: mi.exports, - Default: newFaker(mi.vu, seed()), - } -} - -func (mi *ModuleInstance) newFaker(call goja.ConstructorCall) *goja.Object { - rt := mi.vu.Runtime() - - seed := call.Argument(0).ToInteger() - - return rt.ToValue(newFaker(mi.vu, seed)).ToObject(rt) -} - -func seed() int64 { - str := os.Getenv(envSEED) - if str == "" { - return 0 - } - - value, err := strconv.ParseInt(str, 10, 64) - if err != nil { - logrus.Error(err) // no module logger on k6 extension API... - - return 0 - } - - return value -} diff --git a/module/module.go b/module/module.go new file mode 100644 index 0000000..bb8bacb --- /dev/null +++ b/module/module.go @@ -0,0 +1,65 @@ +// Package module contains k6 faker JavaScript module. +package module + +import ( + "strconv" + + "github.com/szkiba/xk6-faker/faker" + "go.k6.io/k6/js/modules" +) + +// rootModule is k6 JavaScript module. +type rootModule struct{} + +// ImportPath contains module's JavaScript import path. +const ImportPath = "k6/x/faker" + +// New creates new root module. +func New() modules.Module { + return &rootModule{} +} + +func getseed(vu modules.VU) int64 { + if vu == nil || vu.InitEnv() == nil || vu.InitEnv().LookupEnv == nil { + return 0 + } + + str, ok := vu.InitEnv().LookupEnv("XK6_FAKER_SEED") + if !ok { + return 0 + } + + val, err := strconv.ParseInt(str, 10, 64) + if err != nil { + return 0 + } + + return val +} + +// NewModuleInstance creates new module instance. +func (root *rootModule) NewModuleInstance(vu modules.VU) modules.Instance { + mod := &module{exports: modules.Exports{ + Named: make(map[string]interface{}), + Default: faker.New(getseed(vu), vu.Runtime()), + }} + + mod.exports.Named["Faker"] = faker.Constructor + + return mod +} + +// module is a k6 JavaScript module instance. +type module struct { + exports modules.Exports +} + +// Exports is representation of ESM exports of a module. +func (mod *module) Exports() modules.Exports { + return mod.exports +} + +var ( + _ modules.Module = (*rootModule)(nil) + _ modules.Instance = (*module)(nil) +) diff --git a/module/module_internal_test.go b/module/module_internal_test.go new file mode 100644 index 0000000..73d46ef --- /dev/null +++ b/module/module_internal_test.go @@ -0,0 +1,34 @@ +package module + +import ( + "testing" + + "github.com/stretchr/testify/require" + "go.k6.io/k6/js/modulestest" +) + +func Test_getseed(t *testing.T) { + t.Parallel() + + require.Equal(t, int64(0), getseed(nil)) + + vu := modulestest.NewRuntime(t).VU + + require.Equal(t, int64(0), getseed(vu)) + + vu.InitEnvField.RuntimeOptions.Env = map[string]string{} + vu.InitEnvField.LookupEnv = func(key string) (string, bool) { + val, ok := vu.InitEnvField.RuntimeOptions.Env[key] + return val, ok + } + + require.Equal(t, int64(0), getseed(vu)) + + vu.InitEnvField.RuntimeOptions.Env["XK6_FAKER_SEED"] = "foo" + + require.Equal(t, int64(0), getseed(vu)) + + vu.InitEnvField.RuntimeOptions.Env["XK6_FAKER_SEED"] = "42" + + require.Equal(t, int64(42), getseed(vu)) +} diff --git a/module/module_test.go b/module/module_test.go new file mode 100644 index 0000000..434bf01 --- /dev/null +++ b/module/module_test.go @@ -0,0 +1,50 @@ +package module_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + "github.com/szkiba/xk6-faker/module" + "go.k6.io/k6/js/modulestest" +) + +func Test_Default_Faker(t *testing.T) { + t.Parallel() + + runtime := modulestest.NewRuntime(t) + runtime.VU.InitEnvField.RuntimeOptions.Env = map[string]string{"XK6_FAKER_SEED": "11"} + + runtime.VU.InitEnvField.LookupEnv = func(key string) (string, bool) { + val, ok := runtime.VU.InitEnvField.RuntimeOptions.Env[key] + return val, ok + } + + err := runtime.SetupModuleSystem(map[string]any{module.ImportPath: module.New()}, nil, nil) + + require.NoError(t, err) + + val, err := runtime.RunOnEventLoop(` + let faker = require("` + module.ImportPath + `") + faker.default.call("username") + `) + + require.NoError(t, err) + require.Equal(t, "Abshire5538", val.String()) +} + +func Test_New_Faker(t *testing.T) { + t.Parallel() + + runtime := modulestest.NewRuntime(t) + err := runtime.SetupModuleSystem(map[string]any{module.ImportPath: module.New()}, nil, nil) + + require.NoError(t, err) + + val, err := runtime.RunOnEventLoop(` + let faker = require("` + module.ImportPath + `") + new faker.Faker(11).call("username") + `) + + require.NoError(t, err) + require.Equal(t, "Abshire5538", val.String()) +} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 49fa2b1..0000000 --- a/package-lock.json +++ /dev/null @@ -1,812 +0,0 @@ -{ - "name": "xk6-crypto", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "license": "MIT", - "devDependencies": { - "typedoc": "^0.20.36", - "typedoc-plugin-markdown": "^3.8.0" - } - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/marked": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.3.tgz", - "integrity": "sha512-5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA==", - "dev": true, - "bin": { - "marked": "bin/marked" - }, - "engines": { - "node": ">= 8.16.2" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, - "dependencies": { - "lru-cache": "^5.1.1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", - "dev": true, - "dependencies": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/typedoc": { - "version": "0.20.36", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.36.tgz", - "integrity": "sha512-qFU+DWMV/hifQ9ZAlTjdFO9wbUIHuUBpNXzv68ZyURAP9pInjZiO4+jCPeAzHVcaBCHER9WL/+YzzTt6ZlN/Nw==", - "dev": true, - "dependencies": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", - "lunr": "^2.3.9", - "marked": "^2.0.3", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shelljs": "^0.8.4", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.10" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 10.8.0" - }, - "peerDependencies": { - "typescript": "3.9.x || 4.0.x || 4.1.x || 4.2.x" - } - }, - "node_modules/typedoc-default-themes": { - "version": "0.12.10", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz", - "integrity": "sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/typedoc-plugin-markdown": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.8.0.tgz", - "integrity": "sha512-TVyz7hnVa7MpFQ26U4kCmsCoExtVi9OHD70Tijo9d3G0qGDxRWw3X9EomPThi54CLszLEj/MNSRsVbylNc9EEQ==", - "dev": true, - "dependencies": { - "handlebars": "^4.7.7" - }, - "engines": { - "node": ">= 10.8.0" - }, - "peerDependencies": { - "typedoc": ">=0.20.0" - } - }, - "node_modules/typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", - "dev": true, - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz", - "integrity": "sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/vscode-textmate": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.4.0.tgz", - "integrity": "sha512-c0Q4zYZkcLizeYJ3hNyaVUM2AA8KDhNCA3JvXY8CeZSJuBdAy3bAvSbv46RClC4P3dSO9BdwhnKEx2zOo6vP/w==", - "dev": true - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - }, - "dependencies": { - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "marked": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.3.tgz", - "integrity": "sha512-5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", - "dev": true, - "requires": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "typedoc": { - "version": "0.20.36", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.36.tgz", - "integrity": "sha512-qFU+DWMV/hifQ9ZAlTjdFO9wbUIHuUBpNXzv68ZyURAP9pInjZiO4+jCPeAzHVcaBCHER9WL/+YzzTt6ZlN/Nw==", - "dev": true, - "requires": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", - "lunr": "^2.3.9", - "marked": "^2.0.3", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shelljs": "^0.8.4", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.10" - } - }, - "typedoc-default-themes": { - "version": "0.12.10", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz", - "integrity": "sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA==", - "dev": true - }, - "typedoc-plugin-markdown": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.8.0.tgz", - "integrity": "sha512-TVyz7hnVa7MpFQ26U4kCmsCoExtVi9OHD70Tijo9d3G0qGDxRWw3X9EomPThi54CLszLEj/MNSRsVbylNc9EEQ==", - "dev": true, - "requires": { - "handlebars": "^4.7.7" - } - }, - "typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", - "dev": true, - "peer": true - }, - "uglify-js": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz", - "integrity": "sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==", - "dev": true, - "optional": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "vscode-textmate": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.4.0.tgz", - "integrity": "sha512-c0Q4zYZkcLizeYJ3hNyaVUM2AA8KDhNCA3JvXY8CeZSJuBdAy3bAvSbv46RClC4P3dSO9BdwhnKEx2zOo6vP/w==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 56ccb8f..0000000 --- a/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "xk6-faker", - "license": "MIT", - "devDependencies": { - "typedoc": "^0.20.36", - "typedoc-plugin-markdown": "^3.8.0" - } -} diff --git a/register.go b/register.go new file mode 100644 index 0000000..60a72bb --- /dev/null +++ b/register.go @@ -0,0 +1,16 @@ +// Package faker is a xk6-faker extension module. +package faker + +import ( + "github.com/szkiba/xk6-faker/module" + + "go.k6.io/k6/js/modules" +) + +func register() { + modules.Register(module.ImportPath, module.New()) +} + +func init() { //nolint:gochecknoinits + register() +} diff --git a/register_internal_test.go b/register_internal_test.go new file mode 100644 index 0000000..8659e42 --- /dev/null +++ b/register_internal_test.go @@ -0,0 +1,15 @@ +package faker + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func Test_register(t *testing.T) { + t.Parallel() + + require.Panics(t, func() { + register() + }) +} diff --git a/script.js b/script.js new file mode 100644 index 0000000..e16450a --- /dev/null +++ b/script.js @@ -0,0 +1,7 @@ +import faker from "k6/x/faker"; + +console.log(faker.fake("{username}")); + +export default function () { + console.log(faker.fake("{username}")); +} diff --git a/test/expect.js b/test/expect.js deleted file mode 100644 index cc0269f..0000000 --- a/test/expect.js +++ /dev/null @@ -1,258 +0,0 @@ -/** - * MIT License - * - * Copyright (c) 2021 Iván Szkiba - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// modified version https://jslib.k6.io/expect/0.0.5/index.js - -import { check, group } from "k6"; -import { Rate } from "k6/metrics"; - -export let errors = new Rate("errors"); -export let options = { thresholds: { errors: ["rate==0"] } }; - -export class FunkBrokenChainException extends Error { - constructor(message) { - super(message); - this.brokenChain = true; - this.name = this.constructor.name; - if (typeof Error.captureStackTrace === "function") { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = new Error(message).stack; - } - } -} - -class Funk { - constructor() { - this.leftHandValue = null; // resp.status - this.leftHandValueName = null; // "my status" - this.rightHandValue = null; // 200 - this.chainBroken = false; - this.printedBrokenChainWarning = false; // print only one warning. - } - - as(name) { - this.leftHandValueName = name; - return this; - } - - _brokenChainCheck() { - if (this.chainBroken) { - if (!this.printedBrokenChainWarning) { - console.warn("This check has been aborted because the previous check in the chain has failed"); - this.printedBrokenChainWarning = true; - } - return true; - } - return false; - } - - _recordCheck(checkName, isSuccessful, value) { - if (value !== undefined) { - check( - null, - { - [checkName]: isSuccessful, - }, - { - value: value, - } - ); - } else { - check(null, { - [checkName]: isSuccessful, - }); - } - } - - _breakTheChain() { - this.chainBroken = true; - throw new FunkBrokenChainException("Chain broke, skipping this check"); - } - - toEqual(rhv) { - if (this._brokenChainCheck()) return this; - this.rightHandValue = rhv; - - let checkName = `${this.leftHandValue} is ${this.rightHandValue}`; - - let checkIsSuccessful = this.leftHandValue === this.rightHandValue; - - if (this.leftHandValueName) { - checkName = `${this.leftHandValueName} is ${this.leftHandValue}.`; - - if (!checkIsSuccessful) { - checkName += ` Expected '${this.rightHandValue}'`; - } - } - - this._recordCheck(checkName, checkIsSuccessful, this.rightHandValue); - - if (!checkIsSuccessful) this._breakTheChain(); - - return this; - } - - toBeGreaterThan(rhv) { - if (this._brokenChainCheck()) return this; - - this.rightHandValue = rhv; - - let checkName = `${this.leftHandValueName || this.leftHandValue} is greater than ${this.rightHandValue}`; - - let checkIsSuccessful = this.leftHandValue > this.rightHandValue; - - this._recordCheck(checkName, checkIsSuccessful, this.leftHandValue); - - if (!checkIsSuccessful) this._breakTheChain(); - - return this; - } - - toBeGreaterThanOrEqual(rhv) { - if (this._brokenChainCheck()) return this; - - this.rightHandValue = rhv; - - let checkName = `${this.leftHandValueName || this.leftHandValue} is greater or equal to ${this.rightHandValue}`; - - let checkIsSuccessful = this.leftHandValue >= this.rightHandValue; - - this._recordCheck(checkName, checkIsSuccessful, this.leftHandValue); - - if (!checkIsSuccessful) this._breakTheChain(); - - return this; - } - toBeLessThan(rhv) { - if (this._brokenChainCheck()) return this; - - this.rightHandValue = rhv; - - let checkName = `${this.leftHandValueName || this.leftHandValue} is less than ${this.rightHandValue}`; - - let checkIsSuccessful = this.leftHandValue < this.rightHandValue; - - this._recordCheck(checkName, checkIsSuccessful, this.leftHandValue); - - if (!checkIsSuccessful) this._breakTheChain(); - - return this; - } - toBeLessThanOrEqual(rhv) { - if (this._brokenChainCheck()) return this; - - this.rightHandValue = rhv; - - let checkName = `${this.leftHandValueName || this.leftHandValue} is less or equal to ${this.rightHandValue}`; - - let checkIsSuccessful = this.leftHandValue <= this.rightHandValue; - - this._recordCheck(checkName, checkIsSuccessful, this.leftHandValue); - - if (!checkIsSuccessful) this._breakTheChain(); - - return this; - } - - toBeTruthy() { - if (this._brokenChainCheck()) return this; - - let checkName = `${this.leftHandValueName || this.leftHandValue} is truthy.`; - - let checkIsSuccessful = this.leftHandValue ? true : false; - - this._recordCheck(checkName, checkIsSuccessful, this.leftHandValue); - - if (!checkIsSuccessful) this._breakTheChain(); - - return this; - } - - toBeBetween(from, to) { - if (this._brokenChainCheck()) return this; - - this.rightHandValue = `${from} - ${to}`; - - let checkName = `${this.leftHandValueName || this.leftHandValue} is between ${this.rightHandValue}`; - - let checkIsSuccessful = this.leftHandValue >= from && this.leftHandValue <= to; - - this._recordCheck(checkName, checkIsSuccessful, this.leftHandValue); - - if (!checkIsSuccessful) this._breakTheChain(); - - return this; - } - - and(lhv) { - // same as expect() but chained. - if (this._brokenChainCheck()) return this; - this.leftHandValue = lhv; - this.leftHandValueName = null; // clearing the previous .as() - return this; - } -} - -let expect = function (value1) { - let state = new Funk(); - state.leftHandValue = value1; - return state; -}; - -function handleUnexpectedException(e, testName) { - console.error(`Exception raised in test "${testName}". Failing the test and continuing. \n${e}`); - - check(null, { - [`Exception raised "${e}"`]: false, - }); -} - -let describe = function (testName, callback) { - let t = { - expect, - }; - - let success = true; - - group(testName, () => { - try { - callback(t); - success = true; - } catch (e) { - if (e.brokenChain) { - success = false; - } else { - success = false; - handleUnexpectedException(e, testName); - } - } - }); - - errors.add(!success); - - return success; -}; - -export { describe }; diff --git a/test/faker.test.js b/test/faker.test.js deleted file mode 100644 index 2db7066..0000000 --- a/test/faker.test.js +++ /dev/null @@ -1,276 +0,0 @@ -/** - * MIT License - * - * Copyright (c) 2021 Iván Szkiba - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -export { options } from "./expect.js"; -import { describe } from "./expect.js"; -import faker, { Faker } from "k6/x/faker"; - -const functions = [ - "emoji", - "emojiAlias", - "emojiCategory", - "hackerPhrase", - "ipv4Address", - "lastName", - "carTransmissionType", - "hipsterParagraph", - "httpStatusCodeSimple", - "int8", - "address", - "adjective", - "adverb", - "animalType", - "chromeUserAgent", - "float32Range", - "phoneFormatted", - "vegetable", - "uint32", - "bool", - "car", - "contact", - "firefoxUserAgent", - "password", - "safeColor", - "beerMalt", - "emojiDescription", - "float64Range", - "logLevel", - "street", - "carType", - "city", - "currencyShort", - "hipsterSentence", - "jobTitle", - "map", - "randomUint", - "url", - "animal", - "countryAbr", - "creditCardExp", - "creditCardNumber", - "jobLevel", - "noun", - "hackeringVerb", - "hour", - "monthString", - "price", - "achRouting", - "company", - "currencyLong", - "domainSuffix", - "farmAnimal", - "language", - "quote", - "streetSuffix", - "imageURL", - "shuffleInts", - "randomInt", - "shuffleAnySlice", - "creditCard", - "httpMethod", - "letter", - "number", - "operaUserAgent", - "paragraph", - "timeZone", - "domainName", - "hackerVerb", - "rgbColor", - "slice", - "beerHop", - "beerStyle", - "bitcoinAddress", - "buzzWord", - "float32", - "month", - "uUID", - "userAgent", - "sentence", - "uint64", - "country", - "email", - "flipACoin", - "longitudeInRange", - "macAddress", - "numerify", - "teams", - "dog", - "hackerNoun", - "int16", - "question", - "randomString", - "streetPrefix", - "beerAlcohol", - "latitude", - "preposition", - "zip", - "hackerAbbreviation", - "ipv6Address", - "programmingLanguage", - "word", - "companySuffix", - "dateRange", - "digit", - "imagePng", - "nameSuffix", - "languageAbbreviation", - "namePrefix", - "appName", - "beerBlg", - "carMaker", - "currency", - "hackerAdjective", - "job", - "streetName", - "breakfast", - "day", - "fruit", - "letterN", - "petName", - "carModel", - "gamertag", - "lunch", - "weekDay", - "bs", - "bitcoinPrivateKey", - "firstName", - "image", - "loremIpsumSentence", - "person", - "username", - "carFuelType", - "emojiTag", - "fileExtension", - "int64", - "name", - "sSN", - "struct", - "beerYeast", - "hexColor", - "json", - "minute", - "regex", - "shuffleStrings", - "timeZoneRegion", - "verb", - "achAccount", - "creditCardCvv", - "float64", - "hipsterWord", - "imageJpeg", - "state", - "faker", - "creditCardType", - "jobDescriptor", - "latitudeInRange", - "uint16", - "weighted", - "second", - "timeZoneAbv", - "appAuthor", - "cat", - "digitN", - "fileMimeType", - "gender", - "loremIpsumWord", - "uint8", - "beerIbu", - "generate", - "lexify", - "programmingLanguageBest", - "streetNumber", - "phone", - "timeZoneOffset", - "appVersion", - "beerName", - "date", - "dessert", - "httpStatusCode", - "int32", - "year", - "dinner", - "longitude", - "nanoSecond", - "phrase", - "stateAbr", - "timeZoneFull", - "color", - "loremIpsumParagraph", - "safariUserAgent", - "snack", -]; - -export default function () { - describe("Faker constructor", (t) => { - const f = new Faker(); - t.expect(f.name()).as("name").toBeTruthy(); - }); - - describe("Seed parameter", (t) => { - t.expect(new Faker().name() != new Faker().name()) - .as("random") - .toBeTruthy(); - - t.expect(new Faker(42).name() == new Faker(42).name()) - .as("fixed") - .toBeTruthy(); - }); - - describe("Function name mapping", (t) => { - for (const f of functions) { - t.expect(f in faker) - .as(`has ${f}()`) - .toBeTruthy(); - } - }); - - describe("generate", (t) => { - const f1 = new Faker(42); - const f2 = new Faker(42); - const result = `${f1.name()}`; - t.expect(f2.generate("{name}")).as(`{name}`).toEqual(result); - t.expect(f2.generate("##")) - .as(`##`) - .toEqual(`${f1.digitN(2)}`); - t.expect(f2.generate("??")) - .as(`??`) - .toEqual(`${f1.letterN(2)}`); - }); - - describe("numerify", (t) => { - const f1 = new Faker(42); - const f2 = new Faker(42); - t.expect(f2.numerify("##")) - .as(`##`) - .toEqual(`${f1.digitN(2)}`); - }); - - describe("lexify", (t) => { - const f1 = new Faker(42); - const f2 = new Faker(42); - t.expect(f2.lexify("??")) - .as(`??`) - .toEqual(`${f1.letterN(2)}`); - }); -} diff --git a/test/testdata/sample.csv b/test/testdata/sample.csv deleted file mode 100644 index b38840d..0000000 --- a/test/testdata/sample.csv +++ /dev/null @@ -1,6 +0,0 @@ -Year,Make,Model,Description,Price -1997,Ford,E350,"ac, abs, moon",3000.00 -1999,Chevy,"Venture ""Extended Edition""","",4900.00 -1999,Chevy,"Venture ""Extended Edition, Very Large""",,5000.00 -1996,Jeep,Grand Cherokee,"MUST SELL! -air, moon roof, loaded",4799.00 diff --git a/tools/codegen/genjson.go b/tools/codegen/genjson.go new file mode 100644 index 0000000..9e2b9c8 --- /dev/null +++ b/tools/codegen/genjson.go @@ -0,0 +1,16 @@ +//go:build codegen + +package main + +import ( + "encoding/json" + "io" +) + +func jsonGen(out io.Writer) error { + encoder := json.NewEncoder(out) + + encoder.SetIndent("", " ") + + return encoder.Encode(getFuncLookups()) +} diff --git a/tools/codegen/gentest.go b/tools/codegen/gentest.go new file mode 100644 index 0000000..fb18032 --- /dev/null +++ b/tools/codegen/gentest.go @@ -0,0 +1,9 @@ +//go:build codegen + +package main + +import "io" + +func goTest(out io.Writer) error { + return nil +} diff --git a/tools/codegen/gents.go b/tools/codegen/gents.go new file mode 100644 index 0000000..d33b326 --- /dev/null +++ b/tools/codegen/gents.go @@ -0,0 +1,9 @@ +//go:build codegen + +package main + +import "io" + +func tsGen(out io.Writer) error { + return nil +} diff --git a/tools/codegen/lookup.go b/tools/codegen/lookup.go new file mode 100644 index 0000000..55cd40c --- /dev/null +++ b/tools/codegen/lookup.go @@ -0,0 +1,82 @@ +//go:build codegen + +package main + +import ( + "strings" + + "github.com/szkiba/xk6-faker/faker" + + "github.com/brianvoe/gofakeit/v6" +) + +func typemap(src string) string { + var array bool + if array = strings.HasPrefix(src, "[]"); array { + src = src[2:] + } + + switch src { + case "string": + case "bool": + src = "boolean" + case "float", "float32", "float64": + fallthrough + case "byte", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64": + src = "number" + case "map[string]any": + src = "Record" + case "map[string]string": + src = "Record" + case "any": + src = "unknown" + case "map[string][]string": + src = "Record>" + default: + return "" + } + + if array { + src += "[]" + } + + return src +} + +func convertLookup(src *gofakeit.Info) (*gofakeit.Info, bool) { + output := typemap(src.Output) + if len(output) == 0 { + return src, false + } + + info := *src + + info.Output = output + + if len(src.Params) == 0 { + return &info, true + } + + info.Params = make([]gofakeit.Param, len(src.Params)) + + for idx, from := range src.Params { + param := from + param.Type = typemap(param.Type) + + info.Params[idx] = param + } + + return &info, true +} + +func getFuncLookups() map[string]*gofakeit.Info { + all := map[string]*gofakeit.Info{} + + for key, value := range faker.GetFuncLookups() { + if info, ok := convertLookup(value); ok { + all[key] = info + } + } + + return all +} diff --git a/tools/codegen/main.go b/tools/codegen/main.go new file mode 100644 index 0000000..2d21675 --- /dev/null +++ b/tools/codegen/main.go @@ -0,0 +1,59 @@ +//go:build codegen + +// Package main contains codegen tool. +package main + +import ( + "bytes" + "log" + "os" +) + +func usage() { + log.Fatal("error: usage: codegen {json|ts|test} filename") +} + +//nolint:forbidigo +func main() { + if len(os.Args) != 3 { + usage() + } + + command := os.Args[1] + + var ( + buff bytes.Buffer + err error + file *os.File + ) + + switch command { + case "test": + err = goTest(&buff) + case "ts": + err = tsGen(&buff) + case "json": + err = jsonGen(&buff) + default: + usage() + } + + if err != nil { + log.Fatalf("error: %s", err.Error()) + } + + file, err = os.Create(os.Args[2]) + if err != nil { + log.Fatal(err) + } + + _, err = file.Write(buff.Bytes()) + if err != nil { + log.Fatal(err) + } + + err = file.Close() + if err != nil { + log.Fatal(err) + } +} diff --git a/tsconfig.json b/tsconfig.json index 9817f06..5ad16e4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,20 @@ { - "compilerOptions": { - "target": "es2015", - "module": "commonjs", - "rootDir": ".", - "strict": true - }, - "exclude": ["node_modules"] + "typedocOptions": { + "entryPoints": ["./index.d.ts"], + "out": "build/docs", + "name": "xk6-faker", + "readme": "none", + "hideGenerator": true, + "disableSources": true, + "navigation": { + "includeCategories": false, + "includeGroups": false, + "includeFolders": false + }, + "categorizeByGroup": false, + "visibilityFilters": {}, + "navigationLinks": { + "GitHub": "https://github.com/szkiba/xk6-faker" + } + } } diff --git a/typedoc.json b/typedoc.json deleted file mode 100644 index d8fcfe0..0000000 --- a/typedoc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "theme": "markdown", - "hideBreadcrumbs": true, - "disableSources": true, - "entryPoints": ["index.d.ts"], - "plugin": ["typedoc-plugin-markdown"], - "readme": "none" -} From c742a262ca3388250ca1f9300a972e40b20fd66e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20SZKIBA?= Date: Wed, 13 Mar 2024 17:38:19 +0100 Subject: [PATCH 2/4] feat: generate TypeScript declaration file and integration test --- .github/workflows/docs.yml | 4 +- .github/workflows/lint.yml | 2 +- .github/workflows/test.yml | 5 +- README.md | 97 +- examples/custom-faker.js | 9 + examples/default-faker-env.js | 8 + examples/default-faker.js | 7 + faker/faker.go | 2 - faker/lookup.go | 47 +- faker/lookup_test.go | 4 +- functions-test.js | 977 +++ functions.json | 1029 +-- functions_test.go | 32 + go.mod | 53 +- go.sum | 217 +- package.json | 10 + tools/codegen/gentest.go | 121 +- tools/codegen/gents.go | 178 +- tools/codegen/lookup.go | 20 +- tools/codegen/prolog.d.ts | 114 + tsconfig.json | 11 +- types/k6/x/faker/index.d.ts | 13137 ++++++++++++++++++++++++++++++++ 22 files changed, 15271 insertions(+), 813 deletions(-) create mode 100644 examples/custom-faker.js create mode 100644 examples/default-faker-env.js create mode 100644 examples/default-faker.js create mode 100644 functions-test.js create mode 100644 package.json create mode 100644 tools/codegen/prolog.d.ts create mode 100644 types/k6/x/faker/index.d.ts diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 79bf618..d4c60a8 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,7 +1,7 @@ name: Docs on: push: - branches: [master, feature/simplifa-api] + branches: [master, feature/simplify-api] paths: - .github/workflows/docs.yml - index.js @@ -27,7 +27,7 @@ jobs: - name: Generate API doc run: bun x typedoc - name: Copy index.d.ts - run: cp index.d.ts build/docs/ + run: cp types/k6/x/faker/index.d.ts build/docs/ - name: Setup Pages uses: actions/configure-pages@v4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 25f6264..698a2ab 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,4 +1,4 @@ -name: lint +name: Lint on: pull_request: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c7dadbb..3f7518c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,9 +32,10 @@ jobs: - name: Upload Coverage if: ${{ matrix.platform == 'ubuntu-latest' && github.ref_name == 'master' }} - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4.0.1 with: - directory: build + token: ${{ secrets.CODECOV_TOKEN }} + slug: szkiba/xk6-faker - name: Generate Go Report Card if: ${{ matrix.platform == 'ubuntu-latest' && github.ref_name == 'master' }} diff --git a/README.md b/README.md index f39caab..699835f 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,89 @@ +[![API Reference](https://img.shields.io/badge/API-reference-blue?logo=readme&logoColor=lightgray)](https://ivan.szkiba.hu/xk6-faker) +[![GitHub Release](https://img.shields.io/github/v/release/szkiba/xk6-faker)](https://github.com/szkiba/xk6-faker/releases/) +[![Go Report Card](https://goreportcard.com/badge/github.com/szkiba/xk6-faker)](https://goreportcard.com/report/github.com/szkiba/xk6-faker) +[![GitHub Actions](https://github.com/szkiba/xk6-faker/actions/workflows/test.yml/badge.svg)](https://github.com/szkiba/xk6-faker/actions/workflows/test.yml) +[![codecov](https://codecov.io/gh/szkiba/xk6-faker/graph/badge.svg?token=RDJNHP8NFP)](https://codecov.io/gh/szkiba/xk6-faker) +![GitHub Downloads](https://img.shields.io/github/downloads/szkiba/xk6-faker/total) + # xk6-faker -A k6 extension for random fake data generation. +**Random fake data generator for k6.** -Altought there is several good JavaScript fake data generator, but using these as remote module in k6 tests has several disadvantages (download size, memory usage, startup time, etc). The *xk6-faker* implemented as a golang extension, so tests starts faster and use less memory. The price is a little bit smaller feature set compared with popular JavaScript fake data generators. +Altought there is several good JavaScript fake data generator, but using these in [k6](https://k6.io) tests has several disadvantages (download size, memory usage, startup time, etc). The xk6-faker implemented as a golang extension, so tests starts faster and use less memory. The price is a little bit smaller feature set compared with popular JavaScript fake data generators. -The underlying implementation is https://github.com/brianvoe/gofakeit. +For convenience, the xk6-faker API resembles the popular [Faker.js](https://fakerjs.dev/). The category names and the generator function names are often different (due to the [underlying go faker library](https://github.com/brianvoe/gofakeit)), but the way of use is similar. -Built for [k6](https://go.k6.io/k6) using [xk6](https://github.com/grafana/xk6). +Check out the API documentation [here](https://ivan.szkiba.hu/xk6-faker). The TypeScript declaration file can be downloaded from [here](https://ivan.szkiba.hu/xk6-faker/index.d.ts). ## Usage -The main generator class is [Faker](docs/classes/faker.md). +For convenient use, the default export of the module is a Faker instance, it just needs to be imported and it is ready for use. + +```ts file=examples/default-faker.js +import faker from "k6/x/faker"; -```js -import { Faker } from "k6/x/faker" +export default function () { + console.log(faker.person.firstName()); +} -let f = new Faker(); -console.log(f.name()); +// prints a random first name ``` -Pass a random seed number to [Faker constructor](docs/classes/faker.md#constructor) if you want to get deterministic random values. +For a reproducible test run, a random seed value can be passed to the constructor of the Faker class. + + +```ts file=examples/custom-faker.js +import { Faker } from "k6/x/faker"; + +const faker = new Faker(11); -```js -import { Faker } from "k6/x/faker" +export default function () { + console.log(faker.person.firstName()); +} -let f = new Faker(1234); -console.log(f.name()); +// output: Josiah ``` -For easier usage, the module's default export is a Faker instance too, so you can use generator functions without instantiating the [Faker](docs/classes/faker.md) class: +The reproducibility of the test can also be achieved using the default Faker instance, if the seed value is set in the `XK6_FAKER_SEED` environment variable. -```js -import faker from "k6/x/faker" +```bash +k6 run --env XK6_FAKER_SEED=11 script.js +``` + +then + +```ts file=examples/default-faker-env.js +import faker from "k6/x/faker"; -console.log(faker.name()) +export default function () { + console.log(faker.person.firstName()); +} + +// as long as XK6_FAKER_SEEED is 11 +// output: Josiah ``` -You can pass random seed value in `XK6_FAKER_SEED` env if you want deterministic generated random values. +The [examples](https://github.com/szkiba/xk6-faker/blob/master/examples) directory contains examples of how to use the xk6-faker extension. A k6 binary containing the xk6-faker extension is required to run the examples. -## API +> [!IMPORTANT] +> If the search path also contains the k6 command, don't forget to specify which k6 you want to run (for example `./k6`). -General purpose generator functions: +## Download - - [lexify(str)](docs/classes/faker.md#lexify) will replace `?` with random generated letters - - [numerify(str)](docs/classes/faker.md#numerify) will replace `#` with random numerical values - - [generate(str)](docs/classes/faker.md#generate) will replace values within `{}` with generator function return values +You can download pre-built k6 binaries from the [Releases](https://github.com/szkiba/xk6-faker/releases/) page. -For complete generated API documentation click [here](docs/README.md)! +**Build** -## Build +The [xk6](https://github.com/grafana/xk6) build tool can be used to build a k6 that will include xk6-faker extension: -To build a `k6` binary with this extension, first ensure you have the prerequisites: +```bash +$ xk6 build --with github.com/szkiba/xk6-faker@latest +``` -- [Go toolchain](https://go101.org/article/go-toolchain.html) -- Git +For more build options and how to use xk6, check out the [xk6 documentation](https://github.com/grafana/xk6). -Then: +## Feedback -1. Install `xk6`: - ```bash - $ go install go.k6.io/xk6/cmd/xk6@latest - ``` +If you find the xk6-faker extension useful, please star the repo. The number of stars will determine the time allocated for maintenance. -2. Build the binary: - ```bash - $ xk6 build --with github.com/szkiba/xk6-faker@latest - ``` +[![Stargazers over time](https://starchart.cc/szkiba/xk6-faker.svg?variant=adaptive)](https://starchart.cc/szkiba/xk6-faker) \ No newline at end of file diff --git a/examples/custom-faker.js b/examples/custom-faker.js new file mode 100644 index 0000000..1dec84a --- /dev/null +++ b/examples/custom-faker.js @@ -0,0 +1,9 @@ +import { Faker } from "k6/x/faker"; + +const faker = new Faker(11); + +export default function () { + console.log(faker.person.firstName()); +} + +// output: Josiah diff --git a/examples/default-faker-env.js b/examples/default-faker-env.js new file mode 100644 index 0000000..2135770 --- /dev/null +++ b/examples/default-faker-env.js @@ -0,0 +1,8 @@ +import faker from "k6/x/faker"; + +export default function () { + console.log(faker.person.firstName()); +} + +// as long as XK6_FAKER_SEEED is 11 +// output: Josiah diff --git a/examples/default-faker.js b/examples/default-faker.js new file mode 100644 index 0000000..e49120d --- /dev/null +++ b/examples/default-faker.js @@ -0,0 +1,7 @@ +import faker from "k6/x/faker"; + +export default function () { + console.log(faker.person.firstName()); +} + +// prints a random first name diff --git a/faker/faker.go b/faker/faker.go index 4872f92..3eff2e9 100644 --- a/faker/faker.go +++ b/faker/faker.go @@ -187,5 +187,3 @@ func (c *category) Keys() []string { func (c *category) Set(_ string, _ goja.Value) bool { return false } - -//go:generate go run -tags codegen ../tools/codegen json ../functions.json diff --git a/faker/lookup.go b/faker/lookup.go index c8197e3..cdb9be9 100644 --- a/faker/lookup.go +++ b/faker/lookup.go @@ -58,9 +58,24 @@ func requireFuncLookups() { //nolint:gochecknoglobals var ( funcToSkip = map[string]struct{}{ - "template": {}, - "generate": {}, - "weighted": {}, + "template": {}, + "generate": {}, + "weighted": {}, + "imagejpeg": {}, + "imagepng": {}, + "imagesvg": {}, + "svg": {}, + "sql": {}, + "fixed_width": {}, + "map": {}, + "regex": {}, + "json": {}, + "xml": {}, + "csv": {}, + "email_text": {}, + "markdown": {}, + "vowel": {}, + "flipacoin": {}, } addPrefix = map[string]string{ @@ -71,8 +86,21 @@ var ( } funcRename = map[string]string{ - "imageSvg": "imageSVG", - "gRpcError": "gRPCError", + "gRpcError": "gRPCError", + "creditCardCvv": "creditCardCVV", + } + + categoryRename = map[string]string{ + "auth": "internet", + "image": "internet", + "html": "internet", + "school": "person", + } + + categoryByFunc = map[string]string{ + "uuid": "string", + "flipACoin": "string", + "boolean": "number", } ) @@ -87,6 +115,14 @@ func fixLookup(name string, info *gofakeit.Info) string { key = fixed } + if fixed, need := categoryByFunc[key]; need { + info.Category = fixed + } + + if fixed, need := categoryRename[info.Category]; need { + info.Category = fixed + } + return key } @@ -101,7 +137,6 @@ func convertFuncLookups() { } info := info - info.Any = key key = fixLookup(key, &info) _funcLookups[key] = &info diff --git a/faker/lookup_test.go b/faker/lookup_test.go index 8a5a0b2..fa43f69 100644 --- a/faker/lookup_test.go +++ b/faker/lookup_test.go @@ -12,7 +12,7 @@ func TestGetFuncLookups(t *testing.T) { funcs := faker.GetFuncLookups() - require.Len(t, funcs, 317) + require.Len(t, funcs, 303) require.Contains(t, funcs, "intRange") require.Contains(t, funcs, "randomString") } @@ -22,7 +22,7 @@ func TestGetCategoryFuncs(t *testing.T) { categories := faker.GetCategoryFuncs() - require.Len(t, categories, 37) + require.Len(t, categories, 29) require.Contains(t, categories, "zen") require.Contains(t, categories, "number") diff --git a/functions-test.js b/functions-test.js new file mode 100644 index 0000000..bfea926 --- /dev/null +++ b/functions-test.js @@ -0,0 +1,977 @@ +import { check, group } from "k6"; +import { Faker } from "k6/x/faker"; + +export const options = { + "thresholds": { + "checks": ["rate == 1.0"] + } +}; + +export default function () { + let faker = new Faker(11); + let checker = (v) => typeof(v) != "undefined"; + group('address', ()=> { + check(faker.address.address(), { 'address.address()': checker }); + check(faker.address.city(), { 'address.city()': checker }); + check(faker.address.country(), { 'address.country()': checker }); + check(faker.address.countryAbbreviation(), { 'address.countryAbbreviation()': checker }); + check(faker.address.latitude(), { 'address.latitude()': checker }); + check(faker.address.latitudeRange(13,13), { 'address.latitudeRange(13,13)': checker }); + check(faker.address.longitude(), { 'address.longitude()': checker }); + check(faker.address.longitudeRange(13,13), { 'address.longitudeRange(13,13)': checker }); + check(faker.address.state(), { 'address.state()': checker }); + check(faker.address.stateAbbreviation(), { 'address.stateAbbreviation()': checker }); + check(faker.address.street(), { 'address.street()': checker }); + check(faker.address.streetName(), { 'address.streetName()': checker }); + check(faker.address.streetNumber(), { 'address.streetNumber()': checker }); + check(faker.address.streetPrefix(), { 'address.streetPrefix()': checker }); + check(faker.address.streetSuffix(), { 'address.streetSuffix()': checker }); + check(faker.address.zip(), { 'address.zip()': checker }); + }); + group('animal', ()=> { + check(faker.animal.animal(), { 'animal.animal()': checker }); + check(faker.animal.animalType(), { 'animal.animalType()': checker }); + check(faker.animal.bird(), { 'animal.bird()': checker }); + check(faker.animal.cat(), { 'animal.cat()': checker }); + check(faker.animal.dog(), { 'animal.dog()': checker }); + check(faker.animal.farmAnimal(), { 'animal.farmAnimal()': checker }); + check(faker.animal.petName(), { 'animal.petName()': checker }); + }); + group('app', ()=> { + check(faker.app.appAuthor(), { 'app.appAuthor()': checker }); + check(faker.app.appName(), { 'app.appName()': checker }); + check(faker.app.appVersion(), { 'app.appVersion()': checker }); + }); + group('beer', ()=> { + check(faker.beer.beerAlcohol(), { 'beer.beerAlcohol()': checker }); + check(faker.beer.beerBlg(), { 'beer.beerBlg()': checker }); + check(faker.beer.beerHop(), { 'beer.beerHop()': checker }); + check(faker.beer.beerIbu(), { 'beer.beerIbu()': checker }); + check(faker.beer.beerMalt(), { 'beer.beerMalt()': checker }); + check(faker.beer.beerName(), { 'beer.beerName()': checker }); + check(faker.beer.beerStyle(), { 'beer.beerStyle()': checker }); + check(faker.beer.beerYeast(), { 'beer.beerYeast()': checker }); + }); + group('book', ()=> { + check(faker.book.book(), { 'book.book()': checker }); + check(faker.book.bookAuthor(), { 'book.bookAuthor()': checker }); + check(faker.book.bookGenre(), { 'book.bookGenre()': checker }); + check(faker.book.bookTitle(), { 'book.bookTitle()': checker }); + }); + group('car', ()=> { + check(faker.car.car(), { 'car.car()': checker }); + check(faker.car.carFuelType(), { 'car.carFuelType()': checker }); + check(faker.car.carMaker(), { 'car.carMaker()': checker }); + check(faker.car.carModel(), { 'car.carModel()': checker }); + check(faker.car.carTransmissionType(), { 'car.carTransmissionType()': checker }); + check(faker.car.carType(), { 'car.carType()': checker }); + }); + group('celebrity', ()=> { + check(faker.celebrity.celebrityActor(), { 'celebrity.celebrityActor()': checker }); + check(faker.celebrity.celebrityBusiness(), { 'celebrity.celebrityBusiness()': checker }); + check(faker.celebrity.celebritySport(), { 'celebrity.celebritySport()': checker }); + }); + group('color', ()=> { + check(faker.color.color(), { 'color.color()': checker }); + check(faker.color.hexColor(), { 'color.hexColor()': checker }); + check(faker.color.niceColors(), { 'color.niceColors()': checker }); + check(faker.color.rgbColor(), { 'color.rgbColor()': checker }); + check(faker.color.safeColor(), { 'color.safeColor()': checker }); + }); + group('company', ()=> { + check(faker.company.blurb(), { 'company.blurb()': checker }); + check(faker.company.bs(), { 'company.bs()': checker }); + check(faker.company.buzzword(), { 'company.buzzword()': checker }); + check(faker.company.company(), { 'company.company()': checker }); + check(faker.company.companySuffix(), { 'company.companySuffix()': checker }); + check(faker.company.job(), { 'company.job()': checker }); + check(faker.company.jobDescriptor(), { 'company.jobDescriptor()': checker }); + check(faker.company.jobLevel(), { 'company.jobLevel()': checker }); + check(faker.company.jobTitle(), { 'company.jobTitle()': checker }); + check(faker.company.slogan(), { 'company.slogan()': checker }); + }); + group('emoji', ()=> { + check(faker.emoji.emoji(), { 'emoji.emoji()': checker }); + check(faker.emoji.emojiAlias(), { 'emoji.emojiAlias()': checker }); + check(faker.emoji.emojiCategory(), { 'emoji.emojiCategory()': checker }); + check(faker.emoji.emojiDescription(), { 'emoji.emojiDescription()': checker }); + check(faker.emoji.emojiTag(), { 'emoji.emojiTag()': checker }); + }); + group('error', ()=> { + check(faker.error.databaseError(), { 'error.databaseError()': checker }); + check(faker.error.error(), { 'error.error()': checker }); + check(faker.error.errorObjectWord(), { 'error.errorObjectWord()': checker }); + check(faker.error.gRPCError(), { 'error.gRPCError()': checker }); + check(faker.error.httpClientError(), { 'error.httpClientError()': checker }); + check(faker.error.httpError(), { 'error.httpError()': checker }); + check(faker.error.httpServerError(), { 'error.httpServerError()': checker }); + check(faker.error.runtimeError(), { 'error.runtimeError()': checker }); + check(faker.error.validationError(), { 'error.validationError()': checker }); + }); + group('file', ()=> { + check(faker.file.fileExtension(), { 'file.fileExtension()': checker }); + check(faker.file.fileMimeType(), { 'file.fileMimeType()': checker }); + }); + group('finance', ()=> { + check(faker.finance.cusip(), { 'finance.cusip()': checker }); + check(faker.finance.isin(), { 'finance.isin()': checker }); + }); + group('food', ()=> { + check(faker.food.breakfast(), { 'food.breakfast()': checker }); + check(faker.food.dessert(), { 'food.dessert()': checker }); + check(faker.food.dinner(), { 'food.dinner()': checker }); + check(faker.food.drink(), { 'food.drink()': checker }); + check(faker.food.fruit(), { 'food.fruit()': checker }); + check(faker.food.lunch(), { 'food.lunch()': checker }); + check(faker.food.snack(), { 'food.snack()': checker }); + check(faker.food.vegetable(), { 'food.vegetable()': checker }); + }); + group('game', ()=> { + check(faker.game.dice(13,[5,4,13]), { 'game.dice(13,[5,4,13])': checker }); + check(faker.game.gamertag(), { 'game.gamertag()': checker }); + }); + group('hacker', ()=> { + check(faker.hacker.hackerAbbreviation(), { 'hacker.hackerAbbreviation()': checker }); + check(faker.hacker.hackerAdjective(), { 'hacker.hackerAdjective()': checker }); + check(faker.hacker.hackerNoun(), { 'hacker.hackerNoun()': checker }); + check(faker.hacker.hackerPhrase(), { 'hacker.hackerPhrase()': checker }); + check(faker.hacker.hackerVerb(), { 'hacker.hackerVerb()': checker }); + check(faker.hacker.hackeringVerb(), { 'hacker.hackeringVerb()': checker }); + }); + group('hipster', ()=> { + check(faker.hipster.hipsterParagraph(13,13,17,"\u003cbr /\u003e"), { 'hipster.hipsterParagraph(13,13,17,"\u003cbr /\u003e")': checker }); + check(faker.hipster.hipsterSentence(13), { 'hipster.hipsterSentence(13)': checker }); + check(faker.hipster.hipsterWord(), { 'hipster.hipsterWord()': checker }); + }); + group('internet', ()=> { + check(faker.internet.chromeUserAgent(), { 'internet.chromeUserAgent()': checker }); + check(faker.internet.domainName(), { 'internet.domainName()': checker }); + check(faker.internet.domainSuffix(), { 'internet.domainSuffix()': checker }); + check(faker.internet.firefoxUserAgent(), { 'internet.firefoxUserAgent()': checker }); + check(faker.internet.httpMethod(), { 'internet.httpMethod()': checker }); + check(faker.internet.httpStatusCode(), { 'internet.httpStatusCode()': checker }); + check(faker.internet.httpStatusCodeSimple(), { 'internet.httpStatusCodeSimple()': checker }); + check(faker.internet.httpVersion(), { 'internet.httpVersion()': checker }); + check(faker.internet.imageUrl(13,13), { 'internet.imageUrl(13,13)': checker }); + check(faker.internet.inputName(), { 'internet.inputName()': checker }); + check(faker.internet.ipv4Address(), { 'internet.ipv4Address()': checker }); + check(faker.internet.ipv6Address(), { 'internet.ipv6Address()': checker }); + check(faker.internet.logLevel(), { 'internet.logLevel()': checker }); + check(faker.internet.macAddress(), { 'internet.macAddress()': checker }); + check(faker.internet.operaUserAgent(), { 'internet.operaUserAgent()': checker }); + check(faker.internet.password(true,false,true,true,false,13), { 'internet.password(true,false,true,true,false,13)': checker }); + check(faker.internet.safariUserAgent(), { 'internet.safariUserAgent()': checker }); + check(faker.internet.url(), { 'internet.url()': checker }); + check(faker.internet.userAgent(), { 'internet.userAgent()': checker }); + check(faker.internet.username(), { 'internet.username()': checker }); + }); + group('language', ()=> { + check(faker.language.language(), { 'language.language()': checker }); + check(faker.language.languageAbbreviation(), { 'language.languageAbbreviation()': checker }); + check(faker.language.languageBcp(), { 'language.languageBcp()': checker }); + check(faker.language.programmingLanguage(), { 'language.programmingLanguage()': checker }); + }); + group('minecraft', ()=> { + check(faker.minecraft.minecraftAnimal(), { 'minecraft.minecraftAnimal()': checker }); + check(faker.minecraft.minecraftArmorPart(), { 'minecraft.minecraftArmorPart()': checker }); + check(faker.minecraft.minecraftArmorTier(), { 'minecraft.minecraftArmorTier()': checker }); + check(faker.minecraft.minecraftBiome(), { 'minecraft.minecraftBiome()': checker }); + check(faker.minecraft.minecraftDye(), { 'minecraft.minecraftDye()': checker }); + check(faker.minecraft.minecraftFood(), { 'minecraft.minecraftFood()': checker }); + check(faker.minecraft.minecraftMobBoss(), { 'minecraft.minecraftMobBoss()': checker }); + check(faker.minecraft.minecraftMobHostile(), { 'minecraft.minecraftMobHostile()': checker }); + check(faker.minecraft.minecraftMobNeutral(), { 'minecraft.minecraftMobNeutral()': checker }); + check(faker.minecraft.minecraftMobPassive(), { 'minecraft.minecraftMobPassive()': checker }); + check(faker.minecraft.minecraftOre(), { 'minecraft.minecraftOre()': checker }); + check(faker.minecraft.minecraftTool(), { 'minecraft.minecraftTool()': checker }); + check(faker.minecraft.minecraftVillagerJob(), { 'minecraft.minecraftVillagerJob()': checker }); + check(faker.minecraft.minecraftVillagerLevel(), { 'minecraft.minecraftVillagerLevel()': checker }); + check(faker.minecraft.minecraftVillagerStation(), { 'minecraft.minecraftVillagerStation()': checker }); + check(faker.minecraft.minecraftWeapon(), { 'minecraft.minecraftWeapon()': checker }); + check(faker.minecraft.minecraftWeather(), { 'minecraft.minecraftWeather()': checker }); + check(faker.minecraft.minecraftWood(), { 'minecraft.minecraftWood()': checker }); + }); + group('movie', ()=> { + check(faker.movie.movie(), { 'movie.movie()': checker }); + check(faker.movie.movieGenre(), { 'movie.movieGenre()': checker }); + check(faker.movie.movieName(), { 'movie.movieName()': checker }); + }); + group('number', ()=> { + check(faker.number.boolean(), { 'number.boolean()': checker }); + check(faker.number.float32(), { 'number.float32()': checker }); + check(faker.number.float32Range(13,13), { 'number.float32Range(13,13)': checker }); + check(faker.number.float64(), { 'number.float64()': checker }); + check(faker.number.float64Range(13,13), { 'number.float64Range(13,13)': checker }); + check(faker.number.hexUint128(), { 'number.hexUint128()': checker }); + check(faker.number.hexUint16(), { 'number.hexUint16()': checker }); + check(faker.number.hexUint256(), { 'number.hexUint256()': checker }); + check(faker.number.hexUint32(), { 'number.hexUint32()': checker }); + check(faker.number.hexUint64(), { 'number.hexUint64()': checker }); + check(faker.number.hexUint8(), { 'number.hexUint8()': checker }); + check(faker.number.int16(), { 'number.int16()': checker }); + check(faker.number.int32(), { 'number.int32()': checker }); + check(faker.number.int64(), { 'number.int64()': checker }); + check(faker.number.int8(), { 'number.int8()': checker }); + check(faker.number.intRange(13,13), { 'number.intRange(13,13)': checker }); + check(faker.number.number(13,13), { 'number.number(13,13)': checker }); + check(faker.number.randomInt([14,8,13]), { 'number.randomInt([14,8,13])': checker }); + check(faker.number.randomUint([14,8,13]), { 'number.randomUint([14,8,13])': checker }); + check(faker.number.shuffleInts([14,8,13]), { 'number.shuffleInts([14,8,13])': checker }); + check(faker.number.uint16(), { 'number.uint16()': checker }); + check(faker.number.uint32(), { 'number.uint32()': checker }); + check(faker.number.uint64(), { 'number.uint64()': checker }); + check(faker.number.uint8(), { 'number.uint8()': checker }); + check(faker.number.uintRange(13,13), { 'number.uintRange(13,13)': checker }); + }); + group('payment', ()=> { + check(faker.payment.achAccountNumber(), { 'payment.achAccountNumber()': checker }); + check(faker.payment.achRoutingNumber(), { 'payment.achRoutingNumber()': checker }); + check(faker.payment.bitcoinAddress(), { 'payment.bitcoinAddress()': checker }); + check(faker.payment.bitcoinPrivateKey(), { 'payment.bitcoinPrivateKey()': checker }); + check(faker.payment.creditCard(), { 'payment.creditCard()': checker }); + check(faker.payment.creditCardCVV(), { 'payment.creditCardCVV()': checker }); + check(faker.payment.creditCardExp(), { 'payment.creditCardExp()': checker }); + check(faker.payment.creditCardExpMonth(), { 'payment.creditCardExpMonth()': checker }); + check(faker.payment.creditCardExpYear(), { 'payment.creditCardExpYear()': checker }); + check(faker.payment.creditCardNumberFormatted(), { 'payment.creditCardNumberFormatted()': checker }); + check(faker.payment.creditCardType(), { 'payment.creditCardType()': checker }); + check(faker.payment.currency(), { 'payment.currency()': checker }); + check(faker.payment.currencyLong(), { 'payment.currencyLong()': checker }); + check(faker.payment.currencyShort(), { 'payment.currencyShort()': checker }); + check(faker.payment.price(13,13), { 'payment.price(13,13)': checker }); + }); + group('person', ()=> { + check(faker.person.email(), { 'person.email()': checker }); + check(faker.person.firstName(), { 'person.firstName()': checker }); + check(faker.person.gender(), { 'person.gender()': checker }); + check(faker.person.hobby(), { 'person.hobby()': checker }); + check(faker.person.lastName(), { 'person.lastName()': checker }); + check(faker.person.middleName(), { 'person.middleName()': checker }); + check(faker.person.name(), { 'person.name()': checker }); + check(faker.person.namePrefix(), { 'person.namePrefix()': checker }); + check(faker.person.nameSuffix(), { 'person.nameSuffix()': checker }); + check(faker.person.person(), { 'person.person()': checker }); + check(faker.person.phone(), { 'person.phone()': checker }); + check(faker.person.phoneFormatted(), { 'person.phoneFormatted()': checker }); + check(faker.person.school(), { 'person.school()': checker }); + check(faker.person.ssn(), { 'person.ssn()': checker }); + check(faker.person.teams(["none","how","these","keep","trip","congolese","choir","computer","still","far"],["unless","army","party","riches","theirs","instead","here","mine","whichever","that"]), { 'person.teams(["none","how","these","keep","trip","congolese","choir","computer","still","far"],["unless","army","party","riches","theirs","instead","here","mine","whichever","that"])': checker }); + }); + group('product', ()=> { + check(faker.product.product(), { 'product.product()': checker }); + check(faker.product.productCategory(), { 'product.productCategory()': checker }); + check(faker.product.productDescription(), { 'product.productDescription()': checker }); + check(faker.product.productFeature(), { 'product.productFeature()': checker }); + check(faker.product.productMaterial(), { 'product.productMaterial()': checker }); + check(faker.product.productName(), { 'product.productName()': checker }); + check(faker.product.productUpc(), { 'product.productUpc()': checker }); + }); + group('string', ()=> { + check(faker.string.digit(), { 'string.digit()': checker }); + check(faker.string.digitN(13), { 'string.digitN(13)': checker }); + check(faker.string.letter(), { 'string.letter()': checker }); + check(faker.string.letterN(13), { 'string.letterN(13)': checker }); + check(faker.string.lexify("none"), { 'string.lexify("none")': checker }); + check(faker.string.numerify("none"), { 'string.numerify("none")': checker }); + check(faker.string.randomString(["none","how","these","keep","trip","congolese","choir","computer","still","far"]), { 'string.randomString(["none","how","these","keep","trip","congolese","choir","computer","still","far"])': checker }); + check(faker.string.shuffleStrings(["none","how","these","keep","trip","congolese","choir","computer","still","far"]), { 'string.shuffleStrings(["none","how","these","keep","trip","congolese","choir","computer","still","far"])': checker }); + check(faker.string.uuid(), { 'string.uuid()': checker }); + }); + group('time', ()=> { + check(faker.time.date("RFC3339"), { 'time.date("RFC3339")': checker }); + check(faker.time.dateRange("1970-01-01","2024-03-13","yyyy-MM-dd"), { 'time.dateRange("1970-01-01","2024-03-13","yyyy-MM-dd")': checker }); + check(faker.time.day(), { 'time.day()': checker }); + check(faker.time.futureTime(), { 'time.futureTime()': checker }); + check(faker.time.hour(), { 'time.hour()': checker }); + check(faker.time.minute(), { 'time.minute()': checker }); + check(faker.time.month(), { 'time.month()': checker }); + check(faker.time.monthString(), { 'time.monthString()': checker }); + check(faker.time.nanosecond(), { 'time.nanosecond()': checker }); + check(faker.time.pastTime(), { 'time.pastTime()': checker }); + check(faker.time.second(), { 'time.second()': checker }); + check(faker.time.timezone(), { 'time.timezone()': checker }); + check(faker.time.timezoneAbbreviation(), { 'time.timezoneAbbreviation()': checker }); + check(faker.time.timezoneFull(), { 'time.timezoneFull()': checker }); + check(faker.time.timezoneOffset(), { 'time.timezoneOffset()': checker }); + check(faker.time.timezoneRegion(), { 'time.timezoneRegion()': checker }); + check(faker.time.weekday(), { 'time.weekday()': checker }); + check(faker.time.year(), { 'time.year()': checker }); + }); + group('word', ()=> { + check(faker.word.actionVerb(), { 'word.actionVerb()': checker }); + check(faker.word.adjective(), { 'word.adjective()': checker }); + check(faker.word.adverb(), { 'word.adverb()': checker }); + check(faker.word.adverbDegree(), { 'word.adverbDegree()': checker }); + check(faker.word.adverbFrequencyDefinite(), { 'word.adverbFrequencyDefinite()': checker }); + check(faker.word.adverbFrequencyIndefinite(), { 'word.adverbFrequencyIndefinite()': checker }); + check(faker.word.adverbManner(), { 'word.adverbManner()': checker }); + check(faker.word.adverbPhrase(), { 'word.adverbPhrase()': checker }); + check(faker.word.adverbPlace(), { 'word.adverbPlace()': checker }); + check(faker.word.adverbTimeDefinite(), { 'word.adverbTimeDefinite()': checker }); + check(faker.word.adverbTimeIndefinite(), { 'word.adverbTimeIndefinite()': checker }); + check(faker.word.comment(), { 'word.comment()': checker }); + check(faker.word.connective(), { 'word.connective()': checker }); + check(faker.word.connectiveCasual(), { 'word.connectiveCasual()': checker }); + check(faker.word.connectiveComparitive(), { 'word.connectiveComparitive()': checker }); + check(faker.word.connectiveComplaint(), { 'word.connectiveComplaint()': checker }); + check(faker.word.connectiveExamplify(), { 'word.connectiveExamplify()': checker }); + check(faker.word.connectiveListing(), { 'word.connectiveListing()': checker }); + check(faker.word.connectiveTime(), { 'word.connectiveTime()': checker }); + check(faker.word.demonstrativeAdjective(), { 'word.demonstrativeAdjective()': checker }); + check(faker.word.descriptiveAdjective(), { 'word.descriptiveAdjective()': checker }); + check(faker.word.helpingVerb(), { 'word.helpingVerb()': checker }); + check(faker.word.indefiniteAdjective(), { 'word.indefiniteAdjective()': checker }); + check(faker.word.interjection(), { 'word.interjection()': checker }); + check(faker.word.interrogativeAdjective(), { 'word.interrogativeAdjective()': checker }); + check(faker.word.intransitiveVerb(), { 'word.intransitiveVerb()': checker }); + check(faker.word.linkingVerb(), { 'word.linkingVerb()': checker }); + check(faker.word.loremIpsumParagraph(13,13,17,"\u003cbr /\u003e"), { 'word.loremIpsumParagraph(13,13,17,"\u003cbr /\u003e")': checker }); + check(faker.word.loremIpsumSentence(13), { 'word.loremIpsumSentence(13)': checker }); + check(faker.word.loremIpsumWord(), { 'word.loremIpsumWord()': checker }); + check(faker.word.noun(), { 'word.noun()': checker }); + check(faker.word.nounAbstract(), { 'word.nounAbstract()': checker }); + check(faker.word.nounCollectiveAnimal(), { 'word.nounCollectiveAnimal()': checker }); + check(faker.word.nounCollectivePeople(), { 'word.nounCollectivePeople()': checker }); + check(faker.word.nounCollectiveThing(), { 'word.nounCollectiveThing()': checker }); + check(faker.word.nounCommon(), { 'word.nounCommon()': checker }); + check(faker.word.nounConcrete(), { 'word.nounConcrete()': checker }); + check(faker.word.nounCountable(), { 'word.nounCountable()': checker }); + check(faker.word.nounDeterminer(), { 'word.nounDeterminer()': checker }); + check(faker.word.nounPhrase(), { 'word.nounPhrase()': checker }); + check(faker.word.nounProper(), { 'word.nounProper()': checker }); + check(faker.word.nounUncountable(), { 'word.nounUncountable()': checker }); + check(faker.word.paragraph(13,13,17,"\u003cbr /\u003e"), { 'word.paragraph(13,13,17,"\u003cbr /\u003e")': checker }); + check(faker.word.phrase(), { 'word.phrase()': checker }); + check(faker.word.possessiveAdjective(), { 'word.possessiveAdjective()': checker }); + check(faker.word.preposition(), { 'word.preposition()': checker }); + check(faker.word.prepositionCompound(), { 'word.prepositionCompound()': checker }); + check(faker.word.prepositionDouble(), { 'word.prepositionDouble()': checker }); + check(faker.word.prepositionPhrase(), { 'word.prepositionPhrase()': checker }); + check(faker.word.prepositionSimple(), { 'word.prepositionSimple()': checker }); + check(faker.word.pronoun(), { 'word.pronoun()': checker }); + check(faker.word.pronounDemonstrative(), { 'word.pronounDemonstrative()': checker }); + check(faker.word.pronounIndefinite(), { 'word.pronounIndefinite()': checker }); + check(faker.word.pronounInterrogative(), { 'word.pronounInterrogative()': checker }); + check(faker.word.pronounObject(), { 'word.pronounObject()': checker }); + check(faker.word.pronounPersonal(), { 'word.pronounPersonal()': checker }); + check(faker.word.pronounPossessive(), { 'word.pronounPossessive()': checker }); + check(faker.word.pronounReflective(), { 'word.pronounReflective()': checker }); + check(faker.word.pronounRelative(), { 'word.pronounRelative()': checker }); + check(faker.word.properAdjective(), { 'word.properAdjective()': checker }); + check(faker.word.quantitativeAdjective(), { 'word.quantitativeAdjective()': checker }); + check(faker.word.question(), { 'word.question()': checker }); + check(faker.word.quote(), { 'word.quote()': checker }); + check(faker.word.sentence(13), { 'word.sentence(13)': checker }); + check(faker.word.simpleSentence(), { 'word.simpleSentence()': checker }); + check(faker.word.transitiveVerb(), { 'word.transitiveVerb()': checker }); + check(faker.word.verb(), { 'word.verb()': checker }); + check(faker.word.verbPhrase(), { 'word.verbPhrase()': checker }); + check(faker.word.word(), { 'word.word()': checker }); + }); + group('zen', ()=> { + check(faker.zen.achAccountNumber(), { 'zen.achAccountNumber()': checker }); + check(faker.call("achAccountNumber"), { 'call("achAccountNumber")': checker }); + check(faker.zen.achRoutingNumber(), { 'zen.achRoutingNumber()': checker }); + check(faker.call("achRoutingNumber"), { 'call("achRoutingNumber")': checker }); + check(faker.zen.actionVerb(), { 'zen.actionVerb()': checker }); + check(faker.call("actionVerb"), { 'call("actionVerb")': checker }); + check(faker.zen.address(), { 'zen.address()': checker }); + check(faker.call("address"), { 'call("address")': checker }); + check(faker.zen.adjective(), { 'zen.adjective()': checker }); + check(faker.call("adjective"), { 'call("adjective")': checker }); + check(faker.zen.adverb(), { 'zen.adverb()': checker }); + check(faker.call("adverb"), { 'call("adverb")': checker }); + check(faker.zen.adverbDegree(), { 'zen.adverbDegree()': checker }); + check(faker.call("adverbDegree"), { 'call("adverbDegree")': checker }); + check(faker.zen.adverbFrequencyDefinite(), { 'zen.adverbFrequencyDefinite()': checker }); + check(faker.call("adverbFrequencyDefinite"), { 'call("adverbFrequencyDefinite")': checker }); + check(faker.zen.adverbFrequencyIndefinite(), { 'zen.adverbFrequencyIndefinite()': checker }); + check(faker.call("adverbFrequencyIndefinite"), { 'call("adverbFrequencyIndefinite")': checker }); + check(faker.zen.adverbManner(), { 'zen.adverbManner()': checker }); + check(faker.call("adverbManner"), { 'call("adverbManner")': checker }); + check(faker.zen.adverbPhrase(), { 'zen.adverbPhrase()': checker }); + check(faker.call("adverbPhrase"), { 'call("adverbPhrase")': checker }); + check(faker.zen.adverbPlace(), { 'zen.adverbPlace()': checker }); + check(faker.call("adverbPlace"), { 'call("adverbPlace")': checker }); + check(faker.zen.adverbTimeDefinite(), { 'zen.adverbTimeDefinite()': checker }); + check(faker.call("adverbTimeDefinite"), { 'call("adverbTimeDefinite")': checker }); + check(faker.zen.adverbTimeIndefinite(), { 'zen.adverbTimeIndefinite()': checker }); + check(faker.call("adverbTimeIndefinite"), { 'call("adverbTimeIndefinite")': checker }); + check(faker.zen.animal(), { 'zen.animal()': checker }); + check(faker.call("animal"), { 'call("animal")': checker }); + check(faker.zen.animalType(), { 'zen.animalType()': checker }); + check(faker.call("animalType"), { 'call("animalType")': checker }); + check(faker.zen.appAuthor(), { 'zen.appAuthor()': checker }); + check(faker.call("appAuthor"), { 'call("appAuthor")': checker }); + check(faker.zen.appName(), { 'zen.appName()': checker }); + check(faker.call("appName"), { 'call("appName")': checker }); + check(faker.zen.appVersion(), { 'zen.appVersion()': checker }); + check(faker.call("appVersion"), { 'call("appVersion")': checker }); + check(faker.zen.beerAlcohol(), { 'zen.beerAlcohol()': checker }); + check(faker.call("beerAlcohol"), { 'call("beerAlcohol")': checker }); + check(faker.zen.beerBlg(), { 'zen.beerBlg()': checker }); + check(faker.call("beerBlg"), { 'call("beerBlg")': checker }); + check(faker.zen.beerHop(), { 'zen.beerHop()': checker }); + check(faker.call("beerHop"), { 'call("beerHop")': checker }); + check(faker.zen.beerIbu(), { 'zen.beerIbu()': checker }); + check(faker.call("beerIbu"), { 'call("beerIbu")': checker }); + check(faker.zen.beerMalt(), { 'zen.beerMalt()': checker }); + check(faker.call("beerMalt"), { 'call("beerMalt")': checker }); + check(faker.zen.beerName(), { 'zen.beerName()': checker }); + check(faker.call("beerName"), { 'call("beerName")': checker }); + check(faker.zen.beerStyle(), { 'zen.beerStyle()': checker }); + check(faker.call("beerStyle"), { 'call("beerStyle")': checker }); + check(faker.zen.beerYeast(), { 'zen.beerYeast()': checker }); + check(faker.call("beerYeast"), { 'call("beerYeast")': checker }); + check(faker.zen.bird(), { 'zen.bird()': checker }); + check(faker.call("bird"), { 'call("bird")': checker }); + check(faker.zen.bitcoinAddress(), { 'zen.bitcoinAddress()': checker }); + check(faker.call("bitcoinAddress"), { 'call("bitcoinAddress")': checker }); + check(faker.zen.bitcoinPrivateKey(), { 'zen.bitcoinPrivateKey()': checker }); + check(faker.call("bitcoinPrivateKey"), { 'call("bitcoinPrivateKey")': checker }); + check(faker.zen.blurb(), { 'zen.blurb()': checker }); + check(faker.call("blurb"), { 'call("blurb")': checker }); + check(faker.zen.book(), { 'zen.book()': checker }); + check(faker.call("book"), { 'call("book")': checker }); + check(faker.zen.bookAuthor(), { 'zen.bookAuthor()': checker }); + check(faker.call("bookAuthor"), { 'call("bookAuthor")': checker }); + check(faker.zen.bookGenre(), { 'zen.bookGenre()': checker }); + check(faker.call("bookGenre"), { 'call("bookGenre")': checker }); + check(faker.zen.bookTitle(), { 'zen.bookTitle()': checker }); + check(faker.call("bookTitle"), { 'call("bookTitle")': checker }); + check(faker.zen.boolean(), { 'zen.boolean()': checker }); + check(faker.call("boolean"), { 'call("boolean")': checker }); + check(faker.zen.breakfast(), { 'zen.breakfast()': checker }); + check(faker.call("breakfast"), { 'call("breakfast")': checker }); + check(faker.zen.bs(), { 'zen.bs()': checker }); + check(faker.call("bs"), { 'call("bs")': checker }); + check(faker.zen.buzzword(), { 'zen.buzzword()': checker }); + check(faker.call("buzzword"), { 'call("buzzword")': checker }); + check(faker.zen.car(), { 'zen.car()': checker }); + check(faker.call("car"), { 'call("car")': checker }); + check(faker.zen.carFuelType(), { 'zen.carFuelType()': checker }); + check(faker.call("carFuelType"), { 'call("carFuelType")': checker }); + check(faker.zen.carMaker(), { 'zen.carMaker()': checker }); + check(faker.call("carMaker"), { 'call("carMaker")': checker }); + check(faker.zen.carModel(), { 'zen.carModel()': checker }); + check(faker.call("carModel"), { 'call("carModel")': checker }); + check(faker.zen.carTransmissionType(), { 'zen.carTransmissionType()': checker }); + check(faker.call("carTransmissionType"), { 'call("carTransmissionType")': checker }); + check(faker.zen.carType(), { 'zen.carType()': checker }); + check(faker.call("carType"), { 'call("carType")': checker }); + check(faker.zen.cat(), { 'zen.cat()': checker }); + check(faker.call("cat"), { 'call("cat")': checker }); + check(faker.zen.celebrityActor(), { 'zen.celebrityActor()': checker }); + check(faker.call("celebrityActor"), { 'call("celebrityActor")': checker }); + check(faker.zen.celebrityBusiness(), { 'zen.celebrityBusiness()': checker }); + check(faker.call("celebrityBusiness"), { 'call("celebrityBusiness")': checker }); + check(faker.zen.celebritySport(), { 'zen.celebritySport()': checker }); + check(faker.call("celebritySport"), { 'call("celebritySport")': checker }); + check(faker.zen.chromeUserAgent(), { 'zen.chromeUserAgent()': checker }); + check(faker.call("chromeUserAgent"), { 'call("chromeUserAgent")': checker }); + check(faker.zen.city(), { 'zen.city()': checker }); + check(faker.call("city"), { 'call("city")': checker }); + check(faker.zen.color(), { 'zen.color()': checker }); + check(faker.call("color"), { 'call("color")': checker }); + check(faker.zen.comment(), { 'zen.comment()': checker }); + check(faker.call("comment"), { 'call("comment")': checker }); + check(faker.zen.company(), { 'zen.company()': checker }); + check(faker.call("company"), { 'call("company")': checker }); + check(faker.zen.companySuffix(), { 'zen.companySuffix()': checker }); + check(faker.call("companySuffix"), { 'call("companySuffix")': checker }); + check(faker.zen.connective(), { 'zen.connective()': checker }); + check(faker.call("connective"), { 'call("connective")': checker }); + check(faker.zen.connectiveCasual(), { 'zen.connectiveCasual()': checker }); + check(faker.call("connectiveCasual"), { 'call("connectiveCasual")': checker }); + check(faker.zen.connectiveComparitive(), { 'zen.connectiveComparitive()': checker }); + check(faker.call("connectiveComparitive"), { 'call("connectiveComparitive")': checker }); + check(faker.zen.connectiveComplaint(), { 'zen.connectiveComplaint()': checker }); + check(faker.call("connectiveComplaint"), { 'call("connectiveComplaint")': checker }); + check(faker.zen.connectiveExamplify(), { 'zen.connectiveExamplify()': checker }); + check(faker.call("connectiveExamplify"), { 'call("connectiveExamplify")': checker }); + check(faker.zen.connectiveListing(), { 'zen.connectiveListing()': checker }); + check(faker.call("connectiveListing"), { 'call("connectiveListing")': checker }); + check(faker.zen.connectiveTime(), { 'zen.connectiveTime()': checker }); + check(faker.call("connectiveTime"), { 'call("connectiveTime")': checker }); + check(faker.zen.country(), { 'zen.country()': checker }); + check(faker.call("country"), { 'call("country")': checker }); + check(faker.zen.countryAbbreviation(), { 'zen.countryAbbreviation()': checker }); + check(faker.call("countryAbbreviation"), { 'call("countryAbbreviation")': checker }); + check(faker.zen.creditCard(), { 'zen.creditCard()': checker }); + check(faker.call("creditCard"), { 'call("creditCard")': checker }); + check(faker.zen.creditCardCVV(), { 'zen.creditCardCVV()': checker }); + check(faker.call("creditCardCVV"), { 'call("creditCardCVV")': checker }); + check(faker.zen.creditCardExp(), { 'zen.creditCardExp()': checker }); + check(faker.call("creditCardExp"), { 'call("creditCardExp")': checker }); + check(faker.zen.creditCardExpMonth(), { 'zen.creditCardExpMonth()': checker }); + check(faker.call("creditCardExpMonth"), { 'call("creditCardExpMonth")': checker }); + check(faker.zen.creditCardExpYear(), { 'zen.creditCardExpYear()': checker }); + check(faker.call("creditCardExpYear"), { 'call("creditCardExpYear")': checker }); + check(faker.zen.creditCardNumberFormatted(), { 'zen.creditCardNumberFormatted()': checker }); + check(faker.call("creditCardNumberFormatted"), { 'call("creditCardNumberFormatted")': checker }); + check(faker.zen.creditCardType(), { 'zen.creditCardType()': checker }); + check(faker.call("creditCardType"), { 'call("creditCardType")': checker }); + check(faker.zen.currency(), { 'zen.currency()': checker }); + check(faker.call("currency"), { 'call("currency")': checker }); + check(faker.zen.currencyLong(), { 'zen.currencyLong()': checker }); + check(faker.call("currencyLong"), { 'call("currencyLong")': checker }); + check(faker.zen.currencyShort(), { 'zen.currencyShort()': checker }); + check(faker.call("currencyShort"), { 'call("currencyShort")': checker }); + check(faker.zen.cusip(), { 'zen.cusip()': checker }); + check(faker.call("cusip"), { 'call("cusip")': checker }); + check(faker.zen.databaseError(), { 'zen.databaseError()': checker }); + check(faker.call("databaseError"), { 'call("databaseError")': checker }); + check(faker.zen.date("RFC3339"), { 'zen.date("RFC3339")': checker }); + check(faker.call("date","RFC3339"), { 'call("date","RFC3339")': checker }); + check(faker.zen.dateRange("1970-01-01","2024-03-13","yyyy-MM-dd"), { 'zen.dateRange("1970-01-01","2024-03-13","yyyy-MM-dd")': checker }); + check(faker.call("dateRange","1970-01-01","2024-03-13","yyyy-MM-dd"), { 'call("dateRange","1970-01-01","2024-03-13","yyyy-MM-dd")': checker }); + check(faker.zen.day(), { 'zen.day()': checker }); + check(faker.call("day"), { 'call("day")': checker }); + check(faker.zen.demonstrativeAdjective(), { 'zen.demonstrativeAdjective()': checker }); + check(faker.call("demonstrativeAdjective"), { 'call("demonstrativeAdjective")': checker }); + check(faker.zen.descriptiveAdjective(), { 'zen.descriptiveAdjective()': checker }); + check(faker.call("descriptiveAdjective"), { 'call("descriptiveAdjective")': checker }); + check(faker.zen.dessert(), { 'zen.dessert()': checker }); + check(faker.call("dessert"), { 'call("dessert")': checker }); + check(faker.zen.dice(13,[5,4,13]), { 'zen.dice(13,[5,4,13])': checker }); + check(faker.call("dice",13,[5,4,13]), { 'call("dice",13,[5,4,13])': checker }); + check(faker.zen.digit(), { 'zen.digit()': checker }); + check(faker.call("digit"), { 'call("digit")': checker }); + check(faker.zen.digitN(13), { 'zen.digitN(13)': checker }); + check(faker.call("digitN",13), { 'call("digitN",13)': checker }); + check(faker.zen.dinner(), { 'zen.dinner()': checker }); + check(faker.call("dinner"), { 'call("dinner")': checker }); + check(faker.zen.dog(), { 'zen.dog()': checker }); + check(faker.call("dog"), { 'call("dog")': checker }); + check(faker.zen.domainName(), { 'zen.domainName()': checker }); + check(faker.call("domainName"), { 'call("domainName")': checker }); + check(faker.zen.domainSuffix(), { 'zen.domainSuffix()': checker }); + check(faker.call("domainSuffix"), { 'call("domainSuffix")': checker }); + check(faker.zen.drink(), { 'zen.drink()': checker }); + check(faker.call("drink"), { 'call("drink")': checker }); + check(faker.zen.email(), { 'zen.email()': checker }); + check(faker.call("email"), { 'call("email")': checker }); + check(faker.zen.emoji(), { 'zen.emoji()': checker }); + check(faker.call("emoji"), { 'call("emoji")': checker }); + check(faker.zen.emojiAlias(), { 'zen.emojiAlias()': checker }); + check(faker.call("emojiAlias"), { 'call("emojiAlias")': checker }); + check(faker.zen.emojiCategory(), { 'zen.emojiCategory()': checker }); + check(faker.call("emojiCategory"), { 'call("emojiCategory")': checker }); + check(faker.zen.emojiDescription(), { 'zen.emojiDescription()': checker }); + check(faker.call("emojiDescription"), { 'call("emojiDescription")': checker }); + check(faker.zen.emojiTag(), { 'zen.emojiTag()': checker }); + check(faker.call("emojiTag"), { 'call("emojiTag")': checker }); + check(faker.zen.error(), { 'zen.error()': checker }); + check(faker.call("error"), { 'call("error")': checker }); + check(faker.zen.errorObjectWord(), { 'zen.errorObjectWord()': checker }); + check(faker.call("errorObjectWord"), { 'call("errorObjectWord")': checker }); + check(faker.zen.farmAnimal(), { 'zen.farmAnimal()': checker }); + check(faker.call("farmAnimal"), { 'call("farmAnimal")': checker }); + check(faker.zen.fileExtension(), { 'zen.fileExtension()': checker }); + check(faker.call("fileExtension"), { 'call("fileExtension")': checker }); + check(faker.zen.fileMimeType(), { 'zen.fileMimeType()': checker }); + check(faker.call("fileMimeType"), { 'call("fileMimeType")': checker }); + check(faker.zen.firefoxUserAgent(), { 'zen.firefoxUserAgent()': checker }); + check(faker.call("firefoxUserAgent"), { 'call("firefoxUserAgent")': checker }); + check(faker.zen.firstName(), { 'zen.firstName()': checker }); + check(faker.call("firstName"), { 'call("firstName")': checker }); + check(faker.zen.float32(), { 'zen.float32()': checker }); + check(faker.call("float32"), { 'call("float32")': checker }); + check(faker.zen.float32Range(13,13), { 'zen.float32Range(13,13)': checker }); + check(faker.call("float32Range",13,13), { 'call("float32Range",13,13)': checker }); + check(faker.zen.float64(), { 'zen.float64()': checker }); + check(faker.call("float64"), { 'call("float64")': checker }); + check(faker.zen.float64Range(13,13), { 'zen.float64Range(13,13)': checker }); + check(faker.call("float64Range",13,13), { 'call("float64Range",13,13)': checker }); + check(faker.zen.fruit(), { 'zen.fruit()': checker }); + check(faker.call("fruit"), { 'call("fruit")': checker }); + check(faker.zen.futureTime(), { 'zen.futureTime()': checker }); + check(faker.call("futureTime"), { 'call("futureTime")': checker }); + check(faker.zen.gRPCError(), { 'zen.gRPCError()': checker }); + check(faker.call("gRPCError"), { 'call("gRPCError")': checker }); + check(faker.zen.gamertag(), { 'zen.gamertag()': checker }); + check(faker.call("gamertag"), { 'call("gamertag")': checker }); + check(faker.zen.gender(), { 'zen.gender()': checker }); + check(faker.call("gender"), { 'call("gender")': checker }); + check(faker.zen.hackerAbbreviation(), { 'zen.hackerAbbreviation()': checker }); + check(faker.call("hackerAbbreviation"), { 'call("hackerAbbreviation")': checker }); + check(faker.zen.hackerAdjective(), { 'zen.hackerAdjective()': checker }); + check(faker.call("hackerAdjective"), { 'call("hackerAdjective")': checker }); + check(faker.zen.hackerNoun(), { 'zen.hackerNoun()': checker }); + check(faker.call("hackerNoun"), { 'call("hackerNoun")': checker }); + check(faker.zen.hackerPhrase(), { 'zen.hackerPhrase()': checker }); + check(faker.call("hackerPhrase"), { 'call("hackerPhrase")': checker }); + check(faker.zen.hackerVerb(), { 'zen.hackerVerb()': checker }); + check(faker.call("hackerVerb"), { 'call("hackerVerb")': checker }); + check(faker.zen.hackeringVerb(), { 'zen.hackeringVerb()': checker }); + check(faker.call("hackeringVerb"), { 'call("hackeringVerb")': checker }); + check(faker.zen.helpingVerb(), { 'zen.helpingVerb()': checker }); + check(faker.call("helpingVerb"), { 'call("helpingVerb")': checker }); + check(faker.zen.hexColor(), { 'zen.hexColor()': checker }); + check(faker.call("hexColor"), { 'call("hexColor")': checker }); + check(faker.zen.hexUint128(), { 'zen.hexUint128()': checker }); + check(faker.call("hexUint128"), { 'call("hexUint128")': checker }); + check(faker.zen.hexUint16(), { 'zen.hexUint16()': checker }); + check(faker.call("hexUint16"), { 'call("hexUint16")': checker }); + check(faker.zen.hexUint256(), { 'zen.hexUint256()': checker }); + check(faker.call("hexUint256"), { 'call("hexUint256")': checker }); + check(faker.zen.hexUint32(), { 'zen.hexUint32()': checker }); + check(faker.call("hexUint32"), { 'call("hexUint32")': checker }); + check(faker.zen.hexUint64(), { 'zen.hexUint64()': checker }); + check(faker.call("hexUint64"), { 'call("hexUint64")': checker }); + check(faker.zen.hexUint8(), { 'zen.hexUint8()': checker }); + check(faker.call("hexUint8"), { 'call("hexUint8")': checker }); + check(faker.zen.hipsterParagraph(13,13,17,"\u003cbr /\u003e"), { 'zen.hipsterParagraph(13,13,17,"\u003cbr /\u003e")': checker }); + check(faker.call("hipsterParagraph",13,13,17,"\u003cbr /\u003e"), { 'call("hipsterParagraph",13,13,17,"\u003cbr /\u003e")': checker }); + check(faker.zen.hipsterSentence(13), { 'zen.hipsterSentence(13)': checker }); + check(faker.call("hipsterSentence",13), { 'call("hipsterSentence",13)': checker }); + check(faker.zen.hipsterWord(), { 'zen.hipsterWord()': checker }); + check(faker.call("hipsterWord"), { 'call("hipsterWord")': checker }); + check(faker.zen.hobby(), { 'zen.hobby()': checker }); + check(faker.call("hobby"), { 'call("hobby")': checker }); + check(faker.zen.hour(), { 'zen.hour()': checker }); + check(faker.call("hour"), { 'call("hour")': checker }); + check(faker.zen.httpClientError(), { 'zen.httpClientError()': checker }); + check(faker.call("httpClientError"), { 'call("httpClientError")': checker }); + check(faker.zen.httpError(), { 'zen.httpError()': checker }); + check(faker.call("httpError"), { 'call("httpError")': checker }); + check(faker.zen.httpMethod(), { 'zen.httpMethod()': checker }); + check(faker.call("httpMethod"), { 'call("httpMethod")': checker }); + check(faker.zen.httpServerError(), { 'zen.httpServerError()': checker }); + check(faker.call("httpServerError"), { 'call("httpServerError")': checker }); + check(faker.zen.httpStatusCode(), { 'zen.httpStatusCode()': checker }); + check(faker.call("httpStatusCode"), { 'call("httpStatusCode")': checker }); + check(faker.zen.httpStatusCodeSimple(), { 'zen.httpStatusCodeSimple()': checker }); + check(faker.call("httpStatusCodeSimple"), { 'call("httpStatusCodeSimple")': checker }); + check(faker.zen.httpVersion(), { 'zen.httpVersion()': checker }); + check(faker.call("httpVersion"), { 'call("httpVersion")': checker }); + check(faker.zen.imageUrl(13,13), { 'zen.imageUrl(13,13)': checker }); + check(faker.call("imageUrl",13,13), { 'call("imageUrl",13,13)': checker }); + check(faker.zen.indefiniteAdjective(), { 'zen.indefiniteAdjective()': checker }); + check(faker.call("indefiniteAdjective"), { 'call("indefiniteAdjective")': checker }); + check(faker.zen.inputName(), { 'zen.inputName()': checker }); + check(faker.call("inputName"), { 'call("inputName")': checker }); + check(faker.zen.int16(), { 'zen.int16()': checker }); + check(faker.call("int16"), { 'call("int16")': checker }); + check(faker.zen.int32(), { 'zen.int32()': checker }); + check(faker.call("int32"), { 'call("int32")': checker }); + check(faker.zen.int64(), { 'zen.int64()': checker }); + check(faker.call("int64"), { 'call("int64")': checker }); + check(faker.zen.int8(), { 'zen.int8()': checker }); + check(faker.call("int8"), { 'call("int8")': checker }); + check(faker.zen.intRange(13,13), { 'zen.intRange(13,13)': checker }); + check(faker.call("intRange",13,13), { 'call("intRange",13,13)': checker }); + check(faker.zen.interjection(), { 'zen.interjection()': checker }); + check(faker.call("interjection"), { 'call("interjection")': checker }); + check(faker.zen.interrogativeAdjective(), { 'zen.interrogativeAdjective()': checker }); + check(faker.call("interrogativeAdjective"), { 'call("interrogativeAdjective")': checker }); + check(faker.zen.intransitiveVerb(), { 'zen.intransitiveVerb()': checker }); + check(faker.call("intransitiveVerb"), { 'call("intransitiveVerb")': checker }); + check(faker.zen.ipv4Address(), { 'zen.ipv4Address()': checker }); + check(faker.call("ipv4Address"), { 'call("ipv4Address")': checker }); + check(faker.zen.ipv6Address(), { 'zen.ipv6Address()': checker }); + check(faker.call("ipv6Address"), { 'call("ipv6Address")': checker }); + check(faker.zen.isin(), { 'zen.isin()': checker }); + check(faker.call("isin"), { 'call("isin")': checker }); + check(faker.zen.job(), { 'zen.job()': checker }); + check(faker.call("job"), { 'call("job")': checker }); + check(faker.zen.jobDescriptor(), { 'zen.jobDescriptor()': checker }); + check(faker.call("jobDescriptor"), { 'call("jobDescriptor")': checker }); + check(faker.zen.jobLevel(), { 'zen.jobLevel()': checker }); + check(faker.call("jobLevel"), { 'call("jobLevel")': checker }); + check(faker.zen.jobTitle(), { 'zen.jobTitle()': checker }); + check(faker.call("jobTitle"), { 'call("jobTitle")': checker }); + check(faker.zen.language(), { 'zen.language()': checker }); + check(faker.call("language"), { 'call("language")': checker }); + check(faker.zen.languageAbbreviation(), { 'zen.languageAbbreviation()': checker }); + check(faker.call("languageAbbreviation"), { 'call("languageAbbreviation")': checker }); + check(faker.zen.languageBcp(), { 'zen.languageBcp()': checker }); + check(faker.call("languageBcp"), { 'call("languageBcp")': checker }); + check(faker.zen.lastName(), { 'zen.lastName()': checker }); + check(faker.call("lastName"), { 'call("lastName")': checker }); + check(faker.zen.latitude(), { 'zen.latitude()': checker }); + check(faker.call("latitude"), { 'call("latitude")': checker }); + check(faker.zen.latitudeRange(13,13), { 'zen.latitudeRange(13,13)': checker }); + check(faker.call("latitudeRange",13,13), { 'call("latitudeRange",13,13)': checker }); + check(faker.zen.letter(), { 'zen.letter()': checker }); + check(faker.call("letter"), { 'call("letter")': checker }); + check(faker.zen.letterN(13), { 'zen.letterN(13)': checker }); + check(faker.call("letterN",13), { 'call("letterN",13)': checker }); + check(faker.zen.lexify("none"), { 'zen.lexify("none")': checker }); + check(faker.call("lexify","none"), { 'call("lexify","none")': checker }); + check(faker.zen.linkingVerb(), { 'zen.linkingVerb()': checker }); + check(faker.call("linkingVerb"), { 'call("linkingVerb")': checker }); + check(faker.zen.logLevel(), { 'zen.logLevel()': checker }); + check(faker.call("logLevel"), { 'call("logLevel")': checker }); + check(faker.zen.longitude(), { 'zen.longitude()': checker }); + check(faker.call("longitude"), { 'call("longitude")': checker }); + check(faker.zen.longitudeRange(13,13), { 'zen.longitudeRange(13,13)': checker }); + check(faker.call("longitudeRange",13,13), { 'call("longitudeRange",13,13)': checker }); + check(faker.zen.loremIpsumParagraph(13,13,17,"\u003cbr /\u003e"), { 'zen.loremIpsumParagraph(13,13,17,"\u003cbr /\u003e")': checker }); + check(faker.call("loremIpsumParagraph",13,13,17,"\u003cbr /\u003e"), { 'call("loremIpsumParagraph",13,13,17,"\u003cbr /\u003e")': checker }); + check(faker.zen.loremIpsumSentence(13), { 'zen.loremIpsumSentence(13)': checker }); + check(faker.call("loremIpsumSentence",13), { 'call("loremIpsumSentence",13)': checker }); + check(faker.zen.loremIpsumWord(), { 'zen.loremIpsumWord()': checker }); + check(faker.call("loremIpsumWord"), { 'call("loremIpsumWord")': checker }); + check(faker.zen.lunch(), { 'zen.lunch()': checker }); + check(faker.call("lunch"), { 'call("lunch")': checker }); + check(faker.zen.macAddress(), { 'zen.macAddress()': checker }); + check(faker.call("macAddress"), { 'call("macAddress")': checker }); + check(faker.zen.middleName(), { 'zen.middleName()': checker }); + check(faker.call("middleName"), { 'call("middleName")': checker }); + check(faker.zen.minecraftAnimal(), { 'zen.minecraftAnimal()': checker }); + check(faker.call("minecraftAnimal"), { 'call("minecraftAnimal")': checker }); + check(faker.zen.minecraftArmorPart(), { 'zen.minecraftArmorPart()': checker }); + check(faker.call("minecraftArmorPart"), { 'call("minecraftArmorPart")': checker }); + check(faker.zen.minecraftArmorTier(), { 'zen.minecraftArmorTier()': checker }); + check(faker.call("minecraftArmorTier"), { 'call("minecraftArmorTier")': checker }); + check(faker.zen.minecraftBiome(), { 'zen.minecraftBiome()': checker }); + check(faker.call("minecraftBiome"), { 'call("minecraftBiome")': checker }); + check(faker.zen.minecraftDye(), { 'zen.minecraftDye()': checker }); + check(faker.call("minecraftDye"), { 'call("minecraftDye")': checker }); + check(faker.zen.minecraftFood(), { 'zen.minecraftFood()': checker }); + check(faker.call("minecraftFood"), { 'call("minecraftFood")': checker }); + check(faker.zen.minecraftMobBoss(), { 'zen.minecraftMobBoss()': checker }); + check(faker.call("minecraftMobBoss"), { 'call("minecraftMobBoss")': checker }); + check(faker.zen.minecraftMobHostile(), { 'zen.minecraftMobHostile()': checker }); + check(faker.call("minecraftMobHostile"), { 'call("minecraftMobHostile")': checker }); + check(faker.zen.minecraftMobNeutral(), { 'zen.minecraftMobNeutral()': checker }); + check(faker.call("minecraftMobNeutral"), { 'call("minecraftMobNeutral")': checker }); + check(faker.zen.minecraftMobPassive(), { 'zen.minecraftMobPassive()': checker }); + check(faker.call("minecraftMobPassive"), { 'call("minecraftMobPassive")': checker }); + check(faker.zen.minecraftOre(), { 'zen.minecraftOre()': checker }); + check(faker.call("minecraftOre"), { 'call("minecraftOre")': checker }); + check(faker.zen.minecraftTool(), { 'zen.minecraftTool()': checker }); + check(faker.call("minecraftTool"), { 'call("minecraftTool")': checker }); + check(faker.zen.minecraftVillagerJob(), { 'zen.minecraftVillagerJob()': checker }); + check(faker.call("minecraftVillagerJob"), { 'call("minecraftVillagerJob")': checker }); + check(faker.zen.minecraftVillagerLevel(), { 'zen.minecraftVillagerLevel()': checker }); + check(faker.call("minecraftVillagerLevel"), { 'call("minecraftVillagerLevel")': checker }); + check(faker.zen.minecraftVillagerStation(), { 'zen.minecraftVillagerStation()': checker }); + check(faker.call("minecraftVillagerStation"), { 'call("minecraftVillagerStation")': checker }); + check(faker.zen.minecraftWeapon(), { 'zen.minecraftWeapon()': checker }); + check(faker.call("minecraftWeapon"), { 'call("minecraftWeapon")': checker }); + check(faker.zen.minecraftWeather(), { 'zen.minecraftWeather()': checker }); + check(faker.call("minecraftWeather"), { 'call("minecraftWeather")': checker }); + check(faker.zen.minecraftWood(), { 'zen.minecraftWood()': checker }); + check(faker.call("minecraftWood"), { 'call("minecraftWood")': checker }); + check(faker.zen.minute(), { 'zen.minute()': checker }); + check(faker.call("minute"), { 'call("minute")': checker }); + check(faker.zen.month(), { 'zen.month()': checker }); + check(faker.call("month"), { 'call("month")': checker }); + check(faker.zen.monthString(), { 'zen.monthString()': checker }); + check(faker.call("monthString"), { 'call("monthString")': checker }); + check(faker.zen.movie(), { 'zen.movie()': checker }); + check(faker.call("movie"), { 'call("movie")': checker }); + check(faker.zen.movieGenre(), { 'zen.movieGenre()': checker }); + check(faker.call("movieGenre"), { 'call("movieGenre")': checker }); + check(faker.zen.movieName(), { 'zen.movieName()': checker }); + check(faker.call("movieName"), { 'call("movieName")': checker }); + check(faker.zen.name(), { 'zen.name()': checker }); + check(faker.call("name"), { 'call("name")': checker }); + check(faker.zen.namePrefix(), { 'zen.namePrefix()': checker }); + check(faker.call("namePrefix"), { 'call("namePrefix")': checker }); + check(faker.zen.nameSuffix(), { 'zen.nameSuffix()': checker }); + check(faker.call("nameSuffix"), { 'call("nameSuffix")': checker }); + check(faker.zen.nanosecond(), { 'zen.nanosecond()': checker }); + check(faker.call("nanosecond"), { 'call("nanosecond")': checker }); + check(faker.zen.niceColors(), { 'zen.niceColors()': checker }); + check(faker.call("niceColors"), { 'call("niceColors")': checker }); + check(faker.zen.noun(), { 'zen.noun()': checker }); + check(faker.call("noun"), { 'call("noun")': checker }); + check(faker.zen.nounAbstract(), { 'zen.nounAbstract()': checker }); + check(faker.call("nounAbstract"), { 'call("nounAbstract")': checker }); + check(faker.zen.nounCollectiveAnimal(), { 'zen.nounCollectiveAnimal()': checker }); + check(faker.call("nounCollectiveAnimal"), { 'call("nounCollectiveAnimal")': checker }); + check(faker.zen.nounCollectivePeople(), { 'zen.nounCollectivePeople()': checker }); + check(faker.call("nounCollectivePeople"), { 'call("nounCollectivePeople")': checker }); + check(faker.zen.nounCollectiveThing(), { 'zen.nounCollectiveThing()': checker }); + check(faker.call("nounCollectiveThing"), { 'call("nounCollectiveThing")': checker }); + check(faker.zen.nounCommon(), { 'zen.nounCommon()': checker }); + check(faker.call("nounCommon"), { 'call("nounCommon")': checker }); + check(faker.zen.nounConcrete(), { 'zen.nounConcrete()': checker }); + check(faker.call("nounConcrete"), { 'call("nounConcrete")': checker }); + check(faker.zen.nounCountable(), { 'zen.nounCountable()': checker }); + check(faker.call("nounCountable"), { 'call("nounCountable")': checker }); + check(faker.zen.nounDeterminer(), { 'zen.nounDeterminer()': checker }); + check(faker.call("nounDeterminer"), { 'call("nounDeterminer")': checker }); + check(faker.zen.nounPhrase(), { 'zen.nounPhrase()': checker }); + check(faker.call("nounPhrase"), { 'call("nounPhrase")': checker }); + check(faker.zen.nounProper(), { 'zen.nounProper()': checker }); + check(faker.call("nounProper"), { 'call("nounProper")': checker }); + check(faker.zen.nounUncountable(), { 'zen.nounUncountable()': checker }); + check(faker.call("nounUncountable"), { 'call("nounUncountable")': checker }); + check(faker.zen.number(13,13), { 'zen.number(13,13)': checker }); + check(faker.call("number",13,13), { 'call("number",13,13)': checker }); + check(faker.zen.numerify("none"), { 'zen.numerify("none")': checker }); + check(faker.call("numerify","none"), { 'call("numerify","none")': checker }); + check(faker.zen.operaUserAgent(), { 'zen.operaUserAgent()': checker }); + check(faker.call("operaUserAgent"), { 'call("operaUserAgent")': checker }); + check(faker.zen.paragraph(13,13,17,"\u003cbr /\u003e"), { 'zen.paragraph(13,13,17,"\u003cbr /\u003e")': checker }); + check(faker.call("paragraph",13,13,17,"\u003cbr /\u003e"), { 'call("paragraph",13,13,17,"\u003cbr /\u003e")': checker }); + check(faker.zen.password(true,false,true,true,false,13), { 'zen.password(true,false,true,true,false,13)': checker }); + check(faker.call("password",true,false,true,true,false,13), { 'call("password",true,false,true,true,false,13)': checker }); + check(faker.zen.pastTime(), { 'zen.pastTime()': checker }); + check(faker.call("pastTime"), { 'call("pastTime")': checker }); + check(faker.zen.person(), { 'zen.person()': checker }); + check(faker.call("person"), { 'call("person")': checker }); + check(faker.zen.petName(), { 'zen.petName()': checker }); + check(faker.call("petName"), { 'call("petName")': checker }); + check(faker.zen.phone(), { 'zen.phone()': checker }); + check(faker.call("phone"), { 'call("phone")': checker }); + check(faker.zen.phoneFormatted(), { 'zen.phoneFormatted()': checker }); + check(faker.call("phoneFormatted"), { 'call("phoneFormatted")': checker }); + check(faker.zen.phrase(), { 'zen.phrase()': checker }); + check(faker.call("phrase"), { 'call("phrase")': checker }); + check(faker.zen.possessiveAdjective(), { 'zen.possessiveAdjective()': checker }); + check(faker.call("possessiveAdjective"), { 'call("possessiveAdjective")': checker }); + check(faker.zen.preposition(), { 'zen.preposition()': checker }); + check(faker.call("preposition"), { 'call("preposition")': checker }); + check(faker.zen.prepositionCompound(), { 'zen.prepositionCompound()': checker }); + check(faker.call("prepositionCompound"), { 'call("prepositionCompound")': checker }); + check(faker.zen.prepositionDouble(), { 'zen.prepositionDouble()': checker }); + check(faker.call("prepositionDouble"), { 'call("prepositionDouble")': checker }); + check(faker.zen.prepositionPhrase(), { 'zen.prepositionPhrase()': checker }); + check(faker.call("prepositionPhrase"), { 'call("prepositionPhrase")': checker }); + check(faker.zen.prepositionSimple(), { 'zen.prepositionSimple()': checker }); + check(faker.call("prepositionSimple"), { 'call("prepositionSimple")': checker }); + check(faker.zen.price(13,13), { 'zen.price(13,13)': checker }); + check(faker.call("price",13,13), { 'call("price",13,13)': checker }); + check(faker.zen.product(), { 'zen.product()': checker }); + check(faker.call("product"), { 'call("product")': checker }); + check(faker.zen.productCategory(), { 'zen.productCategory()': checker }); + check(faker.call("productCategory"), { 'call("productCategory")': checker }); + check(faker.zen.productDescription(), { 'zen.productDescription()': checker }); + check(faker.call("productDescription"), { 'call("productDescription")': checker }); + check(faker.zen.productFeature(), { 'zen.productFeature()': checker }); + check(faker.call("productFeature"), { 'call("productFeature")': checker }); + check(faker.zen.productMaterial(), { 'zen.productMaterial()': checker }); + check(faker.call("productMaterial"), { 'call("productMaterial")': checker }); + check(faker.zen.productName(), { 'zen.productName()': checker }); + check(faker.call("productName"), { 'call("productName")': checker }); + check(faker.zen.productUpc(), { 'zen.productUpc()': checker }); + check(faker.call("productUpc"), { 'call("productUpc")': checker }); + check(faker.zen.programmingLanguage(), { 'zen.programmingLanguage()': checker }); + check(faker.call("programmingLanguage"), { 'call("programmingLanguage")': checker }); + check(faker.zen.pronoun(), { 'zen.pronoun()': checker }); + check(faker.call("pronoun"), { 'call("pronoun")': checker }); + check(faker.zen.pronounDemonstrative(), { 'zen.pronounDemonstrative()': checker }); + check(faker.call("pronounDemonstrative"), { 'call("pronounDemonstrative")': checker }); + check(faker.zen.pronounIndefinite(), { 'zen.pronounIndefinite()': checker }); + check(faker.call("pronounIndefinite"), { 'call("pronounIndefinite")': checker }); + check(faker.zen.pronounInterrogative(), { 'zen.pronounInterrogative()': checker }); + check(faker.call("pronounInterrogative"), { 'call("pronounInterrogative")': checker }); + check(faker.zen.pronounObject(), { 'zen.pronounObject()': checker }); + check(faker.call("pronounObject"), { 'call("pronounObject")': checker }); + check(faker.zen.pronounPersonal(), { 'zen.pronounPersonal()': checker }); + check(faker.call("pronounPersonal"), { 'call("pronounPersonal")': checker }); + check(faker.zen.pronounPossessive(), { 'zen.pronounPossessive()': checker }); + check(faker.call("pronounPossessive"), { 'call("pronounPossessive")': checker }); + check(faker.zen.pronounReflective(), { 'zen.pronounReflective()': checker }); + check(faker.call("pronounReflective"), { 'call("pronounReflective")': checker }); + check(faker.zen.pronounRelative(), { 'zen.pronounRelative()': checker }); + check(faker.call("pronounRelative"), { 'call("pronounRelative")': checker }); + check(faker.zen.properAdjective(), { 'zen.properAdjective()': checker }); + check(faker.call("properAdjective"), { 'call("properAdjective")': checker }); + check(faker.zen.quantitativeAdjective(), { 'zen.quantitativeAdjective()': checker }); + check(faker.call("quantitativeAdjective"), { 'call("quantitativeAdjective")': checker }); + check(faker.zen.question(), { 'zen.question()': checker }); + check(faker.call("question"), { 'call("question")': checker }); + check(faker.zen.quote(), { 'zen.quote()': checker }); + check(faker.call("quote"), { 'call("quote")': checker }); + check(faker.zen.randomInt([14,8,13]), { 'zen.randomInt([14,8,13])': checker }); + check(faker.call("randomInt",[14,8,13]), { 'call("randomInt",[14,8,13])': checker }); + check(faker.zen.randomString(["none","how","these","keep","trip","congolese","choir","computer","still","far"]), { 'zen.randomString(["none","how","these","keep","trip","congolese","choir","computer","still","far"])': checker }); + check(faker.call("randomString",["none","how","these","keep","trip","congolese","choir","computer","still","far"]), { 'call("randomString",["none","how","these","keep","trip","congolese","choir","computer","still","far"])': checker }); + check(faker.zen.randomUint([14,8,13]), { 'zen.randomUint([14,8,13])': checker }); + check(faker.call("randomUint",[14,8,13]), { 'call("randomUint",[14,8,13])': checker }); + check(faker.zen.rgbColor(), { 'zen.rgbColor()': checker }); + check(faker.call("rgbColor"), { 'call("rgbColor")': checker }); + check(faker.zen.runtimeError(), { 'zen.runtimeError()': checker }); + check(faker.call("runtimeError"), { 'call("runtimeError")': checker }); + check(faker.zen.safariUserAgent(), { 'zen.safariUserAgent()': checker }); + check(faker.call("safariUserAgent"), { 'call("safariUserAgent")': checker }); + check(faker.zen.safeColor(), { 'zen.safeColor()': checker }); + check(faker.call("safeColor"), { 'call("safeColor")': checker }); + check(faker.zen.school(), { 'zen.school()': checker }); + check(faker.call("school"), { 'call("school")': checker }); + check(faker.zen.second(), { 'zen.second()': checker }); + check(faker.call("second"), { 'call("second")': checker }); + check(faker.zen.sentence(13), { 'zen.sentence(13)': checker }); + check(faker.call("sentence",13), { 'call("sentence",13)': checker }); + check(faker.zen.shuffleInts([14,8,13]), { 'zen.shuffleInts([14,8,13])': checker }); + check(faker.call("shuffleInts",[14,8,13]), { 'call("shuffleInts",[14,8,13])': checker }); + check(faker.zen.shuffleStrings(["none","how","these","keep","trip","congolese","choir","computer","still","far"]), { 'zen.shuffleStrings(["none","how","these","keep","trip","congolese","choir","computer","still","far"])': checker }); + check(faker.call("shuffleStrings",["none","how","these","keep","trip","congolese","choir","computer","still","far"]), { 'call("shuffleStrings",["none","how","these","keep","trip","congolese","choir","computer","still","far"])': checker }); + check(faker.zen.simpleSentence(), { 'zen.simpleSentence()': checker }); + check(faker.call("simpleSentence"), { 'call("simpleSentence")': checker }); + check(faker.zen.slogan(), { 'zen.slogan()': checker }); + check(faker.call("slogan"), { 'call("slogan")': checker }); + check(faker.zen.snack(), { 'zen.snack()': checker }); + check(faker.call("snack"), { 'call("snack")': checker }); + check(faker.zen.ssn(), { 'zen.ssn()': checker }); + check(faker.call("ssn"), { 'call("ssn")': checker }); + check(faker.zen.state(), { 'zen.state()': checker }); + check(faker.call("state"), { 'call("state")': checker }); + check(faker.zen.stateAbbreviation(), { 'zen.stateAbbreviation()': checker }); + check(faker.call("stateAbbreviation"), { 'call("stateAbbreviation")': checker }); + check(faker.zen.street(), { 'zen.street()': checker }); + check(faker.call("street"), { 'call("street")': checker }); + check(faker.zen.streetName(), { 'zen.streetName()': checker }); + check(faker.call("streetName"), { 'call("streetName")': checker }); + check(faker.zen.streetNumber(), { 'zen.streetNumber()': checker }); + check(faker.call("streetNumber"), { 'call("streetNumber")': checker }); + check(faker.zen.streetPrefix(), { 'zen.streetPrefix()': checker }); + check(faker.call("streetPrefix"), { 'call("streetPrefix")': checker }); + check(faker.zen.streetSuffix(), { 'zen.streetSuffix()': checker }); + check(faker.call("streetSuffix"), { 'call("streetSuffix")': checker }); + check(faker.zen.teams(["none","how","these","keep","trip","congolese","choir","computer","still","far"],["unless","army","party","riches","theirs","instead","here","mine","whichever","that"]), { 'zen.teams(["none","how","these","keep","trip","congolese","choir","computer","still","far"],["unless","army","party","riches","theirs","instead","here","mine","whichever","that"])': checker }); + check(faker.call("teams",["none","how","these","keep","trip","congolese","choir","computer","still","far"],["unless","army","party","riches","theirs","instead","here","mine","whichever","that"]), { 'call("teams",["none","how","these","keep","trip","congolese","choir","computer","still","far"],["unless","army","party","riches","theirs","instead","here","mine","whichever","that"])': checker }); + check(faker.zen.timezone(), { 'zen.timezone()': checker }); + check(faker.call("timezone"), { 'call("timezone")': checker }); + check(faker.zen.timezoneAbbreviation(), { 'zen.timezoneAbbreviation()': checker }); + check(faker.call("timezoneAbbreviation"), { 'call("timezoneAbbreviation")': checker }); + check(faker.zen.timezoneFull(), { 'zen.timezoneFull()': checker }); + check(faker.call("timezoneFull"), { 'call("timezoneFull")': checker }); + check(faker.zen.timezoneOffset(), { 'zen.timezoneOffset()': checker }); + check(faker.call("timezoneOffset"), { 'call("timezoneOffset")': checker }); + check(faker.zen.timezoneRegion(), { 'zen.timezoneRegion()': checker }); + check(faker.call("timezoneRegion"), { 'call("timezoneRegion")': checker }); + check(faker.zen.transitiveVerb(), { 'zen.transitiveVerb()': checker }); + check(faker.call("transitiveVerb"), { 'call("transitiveVerb")': checker }); + check(faker.zen.uint16(), { 'zen.uint16()': checker }); + check(faker.call("uint16"), { 'call("uint16")': checker }); + check(faker.zen.uint32(), { 'zen.uint32()': checker }); + check(faker.call("uint32"), { 'call("uint32")': checker }); + check(faker.zen.uint64(), { 'zen.uint64()': checker }); + check(faker.call("uint64"), { 'call("uint64")': checker }); + check(faker.zen.uint8(), { 'zen.uint8()': checker }); + check(faker.call("uint8"), { 'call("uint8")': checker }); + check(faker.zen.uintRange(13,13), { 'zen.uintRange(13,13)': checker }); + check(faker.call("uintRange",13,13), { 'call("uintRange",13,13)': checker }); + check(faker.zen.url(), { 'zen.url()': checker }); + check(faker.call("url"), { 'call("url")': checker }); + check(faker.zen.userAgent(), { 'zen.userAgent()': checker }); + check(faker.call("userAgent"), { 'call("userAgent")': checker }); + check(faker.zen.username(), { 'zen.username()': checker }); + check(faker.call("username"), { 'call("username")': checker }); + check(faker.zen.uuid(), { 'zen.uuid()': checker }); + check(faker.call("uuid"), { 'call("uuid")': checker }); + check(faker.zen.validationError(), { 'zen.validationError()': checker }); + check(faker.call("validationError"), { 'call("validationError")': checker }); + check(faker.zen.vegetable(), { 'zen.vegetable()': checker }); + check(faker.call("vegetable"), { 'call("vegetable")': checker }); + check(faker.zen.verb(), { 'zen.verb()': checker }); + check(faker.call("verb"), { 'call("verb")': checker }); + check(faker.zen.verbPhrase(), { 'zen.verbPhrase()': checker }); + check(faker.call("verbPhrase"), { 'call("verbPhrase")': checker }); + check(faker.zen.weekday(), { 'zen.weekday()': checker }); + check(faker.call("weekday"), { 'call("weekday")': checker }); + check(faker.zen.word(), { 'zen.word()': checker }); + check(faker.call("word"), { 'call("word")': checker }); + check(faker.zen.year(), { 'zen.year()': checker }); + check(faker.call("year"), { 'call("year")': checker }); + check(faker.zen.zip(), { 'zen.zip()': checker }); + check(faker.call("zip"), { 'call("zip")': checker }); + }); +}; diff --git a/functions.json b/functions.json index a5ea33f..bc4315c 100644 --- a/functions.json +++ b/functions.json @@ -7,7 +7,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "achaccount" + "any": null }, "achRoutingNumber": { "display": "ACH Routing Number", @@ -17,7 +17,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "achrouting" + "any": null }, "actionVerb": { "display": "Action Verb", @@ -27,7 +27,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "verbaction" + "any": null }, "address": { "display": "Address", @@ -37,7 +37,7 @@ "output": "Record\u003cstring,unknown\u003e", "content_type": "application/json", "params": null, - "any": "address" + "any": null }, "adjective": { "display": "Adjective", @@ -47,7 +47,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adjective" + "any": null }, "adverb": { "display": "Adverb", @@ -57,7 +57,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adverb" + "any": null }, "adverbDegree": { "display": "Adverb Degree", @@ -67,7 +67,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adverbdegree" + "any": null }, "adverbFrequencyDefinite": { "display": "Adverb Frequency Definite", @@ -77,7 +77,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adverbfrequencydefinite" + "any": null }, "adverbFrequencyIndefinite": { "display": "Adverb Frequency Indefinite", @@ -87,7 +87,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adverbfrequencyindefinite" + "any": null }, "adverbManner": { "display": "Adverb Manner", @@ -97,7 +97,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adverbmanner" + "any": null }, "adverbPhrase": { "display": "Adverb Phrase", @@ -107,7 +107,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "phraseadverb" + "any": null }, "adverbPlace": { "display": "Adverb Place", @@ -117,7 +117,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adverbplace" + "any": null }, "adverbTimeDefinite": { "display": "Adverb Time Definite", @@ -127,7 +127,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adverbtimedefinite" + "any": null }, "adverbTimeIndefinite": { "display": "Adverb Time Indefinite", @@ -137,7 +137,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adverbtimeindefinite" + "any": null }, "animal": { "display": "Animal", @@ -147,7 +147,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "animal" + "any": null }, "animalType": { "display": "Animal Type", @@ -157,7 +157,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "animaltype" + "any": null }, "appAuthor": { "display": "App Author", @@ -167,7 +167,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "appauthor" + "any": null }, "appName": { "display": "App Name", @@ -177,7 +177,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "appname" + "any": null }, "appVersion": { "display": "App Version", @@ -187,7 +187,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "appversion" + "any": null }, "beerAlcohol": { "display": "Beer Alcohol", @@ -197,7 +197,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "beeralcohol" + "any": null }, "beerBlg": { "display": "Beer BLG", @@ -207,7 +207,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "beerblg" + "any": null }, "beerHop": { "display": "Beer Hop", @@ -217,7 +217,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "beerhop" + "any": null }, "beerIbu": { "display": "Beer IBU", @@ -227,7 +227,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "beeribu" + "any": null }, "beerMalt": { "display": "Beer Malt", @@ -237,7 +237,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "beermalt" + "any": null }, "beerName": { "display": "Beer Name", @@ -247,7 +247,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "beername" + "any": null }, "beerStyle": { "display": "Beer Style", @@ -257,7 +257,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "beerstyle" + "any": null }, "beerYeast": { "display": "Beer Yeast", @@ -267,7 +267,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "beeryeast" + "any": null }, "bird": { "display": "Bird", @@ -277,7 +277,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "bird" + "any": null }, "bitcoinAddress": { "display": "Bitcoin Address", @@ -287,7 +287,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "bitcoinaddress" + "any": null }, "bitcoinPrivateKey": { "display": "Bitcoin Private Key", @@ -297,7 +297,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "bitcoinprivatekey" + "any": null }, "blurb": { "display": "Blurb", @@ -307,7 +307,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "blurb" + "any": null }, "book": { "display": "Book", @@ -317,7 +317,7 @@ "output": "Record\u003cstring,string\u003e", "content_type": "application/json", "params": null, - "any": "book" + "any": null }, "bookAuthor": { "display": "Book Author", @@ -327,7 +327,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "bookauthor" + "any": null }, "bookGenre": { "display": "Book Genre", @@ -337,7 +337,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "bookgenre" + "any": null }, "bookTitle": { "display": "Book Title", @@ -347,17 +347,17 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "booktitle" + "any": null }, "boolean": { "display": "Boolean", - "category": "misc", + "category": "number", "description": "Data type that represents one of two possible values, typically true or false", "example": "true", "output": "boolean", "content_type": "text/plain", "params": null, - "any": "bool" + "any": null }, "breakfast": { "display": "Breakfast", @@ -367,7 +367,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "breakfast" + "any": null }, "bs": { "display": "BS", @@ -377,7 +377,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "bs" + "any": null }, "buzzword": { "display": "Buzzword", @@ -387,7 +387,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "buzzword" + "any": null }, "car": { "display": "Car", @@ -397,7 +397,7 @@ "output": "Record\u003cstring,unknown\u003e", "content_type": "application/json", "params": null, - "any": "car" + "any": null }, "carFuelType": { "display": "Car Fuel Type", @@ -407,7 +407,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "carfueltype" + "any": null }, "carMaker": { "display": "Car Maker", @@ -417,7 +417,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "carmaker" + "any": null }, "carModel": { "display": "Car Model", @@ -427,7 +427,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "carmodel" + "any": null }, "carTransmissionType": { "display": "Car Transmission Type", @@ -437,7 +437,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "cartransmissiontype" + "any": null }, "carType": { "display": "Car Type", @@ -447,7 +447,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "cartype" + "any": null }, "cat": { "display": "Cat", @@ -457,7 +457,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "cat" + "any": null }, "celebrityActor": { "display": "Celebrity Actor", @@ -467,7 +467,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "celebrityactor" + "any": null }, "celebrityBusiness": { "display": "Celebrity Business", @@ -477,7 +477,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "celebritybusiness" + "any": null }, "celebritySport": { "display": "Celebrity Sport", @@ -487,7 +487,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "celebritysport" + "any": null }, "chromeUserAgent": { "display": "Chrome User Agent", @@ -497,7 +497,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "chromeuseragent" + "any": null }, "city": { "display": "City", @@ -507,7 +507,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "city" + "any": null }, "color": { "display": "Color", @@ -517,7 +517,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "color" + "any": null }, "comment": { "display": "Comment", @@ -527,7 +527,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "comment" + "any": null }, "company": { "display": "Company", @@ -537,7 +537,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "company" + "any": null }, "companySuffix": { "display": "Company Suffix", @@ -547,7 +547,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "companysuffix" + "any": null }, "connective": { "display": "Connective", @@ -557,7 +557,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "connective" + "any": null }, "connectiveCasual": { "display": "Connective Casual", @@ -567,7 +567,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "connectivecasual" + "any": null }, "connectiveComparitive": { "display": "Connective Comparitive", @@ -577,7 +577,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "connectivecomparative" + "any": null }, "connectiveComplaint": { "display": "Connective Complaint", @@ -587,7 +587,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "connectivecomplaint" + "any": null }, "connectiveExamplify": { "display": "Connective Examplify", @@ -597,7 +597,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "connectiveexamplify" + "any": null }, "connectiveListing": { "display": "Connective Listing", @@ -607,7 +607,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "connectivelisting" + "any": null }, "connectiveTime": { "display": "Connective Time", @@ -617,7 +617,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "connectivetime" + "any": null }, "country": { "display": "Country", @@ -627,7 +627,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "country" + "any": null }, "countryAbbreviation": { "display": "Country Abbreviation", @@ -637,7 +637,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "countryabr" + "any": null }, "creditCard": { "display": "Credit Card", @@ -647,9 +647,9 @@ "output": "Record\u003cstring,unknown\u003e", "content_type": "application/json", "params": null, - "any": "creditcard" + "any": null }, - "creditCardCvv": { + "creditCardCVV": { "display": "Credit Card CVV", "category": "payment", "description": "Three or four-digit security code on a credit card used for online and remote transactions", @@ -657,7 +657,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "creditcardcvv" + "any": null }, "creditCardExp": { "display": "Credit Card Exp", @@ -667,7 +667,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "creditcardexp" + "any": null }, "creditCardExpMonth": { "display": "Credit Card Exp Month", @@ -677,7 +677,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "creditcardexpmonth" + "any": null }, "creditCardExpYear": { "display": "Credit Card Exp Year", @@ -687,7 +687,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "creditcardexpyear" + "any": null }, "creditCardNumber": { "display": "Credit Card Number", @@ -737,7 +737,7 @@ "description": "Whether or not to have gaps in number" } ], - "any": "creditcardnumber" + "any": null }, "creditCardNumberFormatted": { "display": "Credit Card Number Formatted", @@ -747,7 +747,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "creditcardstring" + "any": null }, "creditCardType": { "display": "Credit Card Type", @@ -757,45 +757,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "creditcardtype" - }, - "csv": { - "display": "CSV", - "category": "file", - "description": "Individual lines or data entries within a CSV (Comma-Separated Values) format", - "example": "id,first_name,last_name,password\n1,Markus,Moen,Dc0VYXjkWABx\n2,Osborne,Hilll,XPJ9OVNbs5lm", - "output": "number[]", - "content_type": "text/csv", - "params": [ - { - "field": "delimiter", - "display": "Delimiter", - "type": "string", - "optional": false, - "default": ",", - "options": null, - "description": "Separator in between row values" - }, - { - "field": "rowcount", - "display": "Row Count", - "type": "number", - "optional": false, - "default": "100", - "options": null, - "description": "Number of rows" - }, - { - "field": "fields", - "display": "Fields", - "type": "", - "optional": false, - "default": "", - "options": null, - "description": "Fields containing key name and function" - } - ], - "any": "csv" + "any": null }, "currency": { "display": "Currency", @@ -805,7 +767,7 @@ "output": "Record\u003cstring,string\u003e", "content_type": "application/json", "params": null, - "any": "currency" + "any": null }, "currencyLong": { "display": "Currency Long", @@ -815,7 +777,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "currencylong" + "any": null }, "currencyShort": { "display": "Currency Short", @@ -825,7 +787,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "currencyshort" + "any": null }, "cusip": { "display": "CUSIP", @@ -835,7 +797,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "cusip" + "any": null }, "databaseError": { "display": "Database error", @@ -845,7 +807,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "errordatabase" + "any": null }, "date": { "display": "Date", @@ -876,7 +838,7 @@ "description": "Date time string format output. You may also use golang time format or java time format" } ], - "any": "date" + "any": null }, "dateRange": { "display": "DateRange", @@ -900,7 +862,7 @@ "display": "End Date", "type": "string", "optional": false, - "default": "2024-03-12", + "default": "2024-03-13", "options": null, "description": "End date time string" }, @@ -914,7 +876,7 @@ "description": "Date time string format" } ], - "any": "daterange" + "any": null }, "day": { "display": "Day", @@ -924,7 +886,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "day" + "any": null }, "demonstrativeAdjective": { "display": "Demonstrative Adjective", @@ -934,7 +896,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adjectivedemonstrative" + "any": null }, "descriptiveAdjective": { "display": "Descriptive Adjective", @@ -944,7 +906,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adjectivedescriptive" + "any": null }, "dessert": { "display": "Dessert", @@ -954,7 +916,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "dessert" + "any": null }, "dice": { "display": "Dice", @@ -983,7 +945,7 @@ "description": "Number of sides on each dice" } ], - "any": "dice" + "any": null }, "digit": { "display": "Digit", @@ -993,7 +955,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "digit" + "any": null }, "digitN": { "display": "DigitN", @@ -1013,7 +975,7 @@ "description": "Number of digits to generate" } ], - "any": "digitn" + "any": null }, "dinner": { "display": "Dinner", @@ -1023,7 +985,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "dinner" + "any": null }, "dog": { "display": "Dog", @@ -1033,7 +995,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "dog" + "any": null }, "domainName": { "display": "Domain Name", @@ -1043,7 +1005,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "domainname" + "any": null }, "domainSuffix": { "display": "Domain Suffix", @@ -1053,7 +1015,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "domainsuffix" + "any": null }, "drink": { "display": "Drink", @@ -1063,7 +1025,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "drink" + "any": null }, "email": { "display": "Email", @@ -1073,7 +1035,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "email" + "any": null }, "emoji": { "display": "Emoji", @@ -1083,7 +1045,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "emoji" + "any": null }, "emojiAlias": { "display": "Emoji Alias", @@ -1093,7 +1055,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "emojialias" + "any": null }, "emojiCategory": { "display": "Emoji Category", @@ -1103,7 +1065,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "emojicategory" + "any": null }, "emojiDescription": { "display": "Emoji Description", @@ -1113,7 +1075,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "emojidescription" + "any": null }, "emojiTag": { "display": "Emoji Tag", @@ -1123,7 +1085,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "emojitag" + "any": null }, "error": { "display": "Error", @@ -1133,7 +1095,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "error" + "any": null }, "errorObjectWord": { "display": "Error object word", @@ -1143,7 +1105,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "errorobject" + "any": null }, "farmAnimal": { "display": "Farm Animal", @@ -1153,7 +1115,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "farmanimal" + "any": null }, "fileExtension": { "display": "File Extension", @@ -1163,7 +1125,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "fileextension" + "any": null }, "fileMimeType": { "display": "File Mime Type", @@ -1173,7 +1135,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "filemimetype" + "any": null }, "firefoxUserAgent": { "display": "Firefox User Agent", @@ -1183,7 +1145,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "firefoxuseragent" + "any": null }, "firstName": { "display": "First Name", @@ -1193,46 +1155,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "firstname" - }, - "fixedWidth": { - "display": "Fixed Width", - "category": "generate", - "description": "Fixed width rows of output data based on input fields", - "example": "Name Email Password Age\nMarkus Moen sylvanmraz@murphy.net 6VlvH6qqXc7g 13\nAlayna Wuckert santinostanton@carroll.biz g7sLrS0gEwLO 46\nLura Lockman zacherykuhic@feil.name S8gV7Z64KlHG 12", - "output": "number[]", - "content_type": "text/plain", - "params": [ - { - "field": "rowcount", - "display": "Row Count", - "type": "number", - "optional": false, - "default": "10", - "options": null, - "description": "Number of rows" - }, - { - "field": "fields", - "display": "Fields", - "type": "", - "optional": false, - "default": "", - "options": null, - "description": "Fields name, function and params" - } - ], - "any": "fixed_width" - }, - "flipACoin": { - "display": "Flip A Coin", - "category": "misc", - "description": "Decision-making method involving the tossing of a coin to determine outcomes", - "example": "Tails", - "output": "string", - "content_type": "text/plain", - "params": null, - "any": "flipacoin" + "any": null }, "float32": { "display": "Float32", @@ -1242,7 +1165,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "float32" + "any": null }, "float32Range": { "display": "Float32 Range", @@ -1271,7 +1194,7 @@ "description": "Maximum float32 value" } ], - "any": "float32range" + "any": null }, "float64": { "display": "Float64", @@ -1281,7 +1204,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "float64" + "any": null }, "float64Range": { "display": "Float64 Range", @@ -1310,7 +1233,7 @@ "description": "Maximum float64 value" } ], - "any": "float64range" + "any": null }, "fruit": { "display": "Fruit", @@ -1320,7 +1243,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "fruit" + "any": null }, "futureTime": { "display": "FutureTime", @@ -1330,7 +1253,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "futuretime" + "any": null }, "gRPCError": { "display": "gRPC error", @@ -1340,7 +1263,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "errorgrpc" + "any": null }, "gamertag": { "display": "Gamertag", @@ -1350,7 +1273,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "gamertag" + "any": null }, "gender": { "display": "Gender", @@ -1360,7 +1283,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "gender" + "any": null }, "hackerAbbreviation": { "display": "Hacker Abbreviation", @@ -1370,7 +1293,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hackerabbreviation" + "any": null }, "hackerAdjective": { "display": "Hacker Adjective", @@ -1380,7 +1303,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hackeradjective" + "any": null }, "hackerNoun": { "display": "Hacker Noun", @@ -1390,7 +1313,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hackernoun" + "any": null }, "hackerPhrase": { "display": "Hacker Phrase", @@ -1400,7 +1323,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hackerphrase" + "any": null }, "hackerVerb": { "display": "Hacker Verb", @@ -1410,7 +1333,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hackerverb" + "any": null }, "hackeringVerb": { "display": "Hackering Verb", @@ -1420,7 +1343,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hackeringverb" + "any": null }, "helpingVerb": { "display": "Helping Verb", @@ -1430,7 +1353,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "verbhelping" + "any": null }, "hexColor": { "display": "Hex Color", @@ -1440,7 +1363,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hexcolor" + "any": null }, "hexUint128": { "display": "HexUint128", @@ -1450,7 +1373,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hexuint128" + "any": null }, "hexUint16": { "display": "HexUint16", @@ -1460,7 +1383,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hexuint16" + "any": null }, "hexUint256": { "display": "HexUint256", @@ -1470,7 +1393,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hexuint256" + "any": null }, "hexUint32": { "display": "HexUint32", @@ -1480,7 +1403,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hexuint32" + "any": null }, "hexUint64": { "display": "HexUint64", @@ -1490,7 +1413,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hexuint64" + "any": null }, "hexUint8": { "display": "HexUint8", @@ -1500,7 +1423,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hexuint8" + "any": null }, "hipsterParagraph": { "display": "Hipster Paragraph", @@ -1547,7 +1470,7 @@ "description": "String value to add between paragraphs" } ], - "any": "hipsterparagraph" + "any": null }, "hipsterSentence": { "display": "Hipster Sentence", @@ -1567,7 +1490,7 @@ "description": "Number of words in a sentence" } ], - "any": "hipstersentence" + "any": null }, "hipsterWord": { "display": "Hipster Word", @@ -1577,7 +1500,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hipsterword" + "any": null }, "hobby": { "display": "Hobby", @@ -1587,7 +1510,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "hobby" + "any": null }, "hour": { "display": "Hour", @@ -1597,7 +1520,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "hour" + "any": null }, "httpClientError": { "display": "HTTP client error", @@ -1607,7 +1530,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "errorhttpclient" + "any": null }, "httpError": { "display": "HTTP error", @@ -1617,7 +1540,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "errorhttp" + "any": null }, "httpMethod": { "display": "HTTP Method", @@ -1627,7 +1550,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "httpmethod" + "any": null }, "httpServerError": { "display": "HTTP server error", @@ -1637,7 +1560,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "errorhttpserver" + "any": null }, "httpStatusCode": { "display": "HTTP Status Code", @@ -1647,7 +1570,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "httpstatuscode" + "any": null }, "httpStatusCodeSimple": { "display": "HTTP Status Code Simple", @@ -1657,7 +1580,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "httpstatuscodesimple" + "any": null }, "httpVersion": { "display": "HTTP Version", @@ -1667,123 +1590,11 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "httpversion" - }, - "imageJpeg": { - "display": "Image JPEG", - "category": "image", - "description": "Image file format known for its efficient compression and compatibility", - "example": "file.jpeg - bytes", - "output": "number[]", - "content_type": "image/jpeg", - "params": [ - { - "field": "width", - "display": "Width", - "type": "number", - "optional": false, - "default": "500", - "options": null, - "description": "Image width in px" - }, - { - "field": "height", - "display": "Height", - "type": "number", - "optional": false, - "default": "500", - "options": null, - "description": "Image height in px" - } - ], - "any": "imagejpeg" - }, - "imagePng": { - "display": "Image PNG", - "category": "image", - "description": "Image file format known for its lossless compression and support for transparency", - "example": "file.png - bytes", - "output": "number[]", - "content_type": "image/png", - "params": [ - { - "field": "width", - "display": "Width", - "type": "number", - "optional": false, - "default": "500", - "options": null, - "description": "Image width in px" - }, - { - "field": "height", - "display": "Height", - "type": "number", - "optional": false, - "default": "500", - "options": null, - "description": "Image height in px" - } - ], - "any": "imagepng" - }, - "imageSVG": { - "display": "Image SVG", - "category": "html", - "description": "Scalable Vector Graphics used to display vector images in web content", - "example": "\u003csvg width=\"369\" height=\"289\"\u003e\n\t\u003crect fill=\"#4f2958\" /\u003e\n\t\u003cpolygon points=\"382,87 418,212 415,110\" fill=\"#fffbb7\" /\u003e\n\u003c/svg\u003e", - "output": "string", - "content_type": "image/svg+xml", - "params": [ - { - "field": "width", - "display": "Width", - "type": "number", - "optional": false, - "default": "500", - "options": null, - "description": "Width in px" - }, - { - "field": "height", - "display": "Height", - "type": "number", - "optional": false, - "default": "500", - "options": null, - "description": "Height in px" - }, - { - "field": "type", - "display": "Type", - "type": "string", - "optional": true, - "default": "", - "options": [ - "rect", - "circle", - "ellipse", - "line", - "polyline", - "polygon" - ], - "description": "Sub child element type" - }, - { - "field": "colors", - "display": "Colors", - "type": "string[]", - "optional": true, - "default": "", - "options": null, - "description": "Hex or RGB array of colors to use" - } - ], - "any": "svg" + "any": null }, "imageUrl": { "display": "Image URL", - "category": "image", + "category": "internet", "description": "Web address pointing to an image file that can be accessed and displayed online", "example": "https://picsum.photos/500/500", "output": "string", @@ -1808,7 +1619,7 @@ "description": "Image height in px" } ], - "any": "imageurl" + "any": null }, "indefiniteAdjective": { "display": "Indefinite Adjective", @@ -1818,17 +1629,17 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adjectiveindefinite" + "any": null }, "inputName": { "display": "Input Name", - "category": "html", + "category": "internet", "description": "Attribute used to define the name of an input element in web forms", "example": "first_name", "output": "string", "content_type": "text/plain", "params": null, - "any": "inputname" + "any": null }, "int16": { "display": "Int16", @@ -1838,7 +1649,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "int16" + "any": null }, "int32": { "display": "Int32", @@ -1848,7 +1659,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "int32" + "any": null }, "int64": { "display": "Int64", @@ -1858,7 +1669,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "int64" + "any": null }, "int8": { "display": "Int8", @@ -1868,7 +1679,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "int8" + "any": null }, "intRange": { "display": "IntRange", @@ -1897,7 +1708,7 @@ "description": "Maximum int value" } ], - "any": "intrange" + "any": null }, "interjection": { "display": "Interjection", @@ -1907,7 +1718,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "interjection" + "any": null }, "interrogativeAdjective": { "display": "Interrogative Adjective", @@ -1917,7 +1728,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adjectiveinterrogative" + "any": null }, "intransitiveVerb": { "display": "Intransitive Verb", @@ -1927,7 +1738,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "verbintransitive" + "any": null }, "ipv4Address": { "display": "IPv4 Address", @@ -1937,7 +1748,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "ipv4address" + "any": null }, "ipv6Address": { "display": "IPv6 Address", @@ -1947,7 +1758,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "ipv6address" + "any": null }, "isin": { "display": "ISIN", @@ -1957,7 +1768,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "isin" + "any": null }, "job": { "display": "Job", @@ -1967,7 +1778,7 @@ "output": "Record\u003cstring,string\u003e", "content_type": "application/json", "params": null, - "any": "job" + "any": null }, "jobDescriptor": { "display": "Job Descriptor", @@ -1977,7 +1788,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "jobdescriptor" + "any": null }, "jobLevel": { "display": "Job Level", @@ -1987,7 +1798,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "joblevel" + "any": null }, "jobTitle": { "display": "Job Title", @@ -1997,57 +1808,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "jobtitle" - }, - "json": { - "display": "JSON", - "category": "file", - "description": "Format for structured data interchange used in programming, returns an object or an array of objects", - "example": "[\n\t\t\t{ \"first_name\": \"Markus\", \"last_name\": \"Moen\", \"password\": \"Dc0VYXjkWABx\" },\n\t\t\t{ \"first_name\": \"Osborne\", \"last_name\": \"Hilll\", \"password\": \"XPJ9OVNbs5lm\" },\n\t\t\t{ \"first_name\": \"Mertie\", \"last_name\": \"Halvorson\", \"password\": \"eyl3bhwfV8wA\" }\n\t\t]", - "output": "number[]", - "content_type": "application/json", - "params": [ - { - "field": "type", - "display": "Type", - "type": "string", - "optional": false, - "default": "object", - "options": [ - "object", - "array" - ], - "description": "Type of JSON, object or array" - }, - { - "field": "rowcount", - "display": "Row Count", - "type": "number", - "optional": false, - "default": "100", - "options": null, - "description": "Number of rows in JSON array" - }, - { - "field": "indent", - "display": "Indent", - "type": "boolean", - "optional": false, - "default": "false", - "options": null, - "description": "Whether or not to add indents and newlines" - }, - { - "field": "fields", - "display": "Fields", - "type": "", - "optional": false, - "default": "", - "options": null, - "description": "Fields containing key name and function to run in json format" - } - ], - "any": "json" + "any": null }, "language": { "display": "Language", @@ -2057,7 +1818,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "language" + "any": null }, "languageAbbreviation": { "display": "Language Abbreviation", @@ -2067,7 +1828,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "languageabbreviation" + "any": null }, "languageBcp": { "display": "Language BCP", @@ -2077,7 +1838,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "languagebcp" + "any": null }, "lastName": { "display": "Last Name", @@ -2087,7 +1848,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "lastname" + "any": null }, "latitude": { "display": "Latitude", @@ -2097,7 +1858,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "latitude" + "any": null }, "latitudeRange": { "display": "Latitude Range", @@ -2126,7 +1887,7 @@ "description": "Maximum range" } ], - "any": "latituderange" + "any": null }, "letter": { "display": "Letter", @@ -2136,7 +1897,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "letter" + "any": null }, "letterN": { "display": "LetterN", @@ -2156,7 +1917,7 @@ "description": "Number of digits to generate" } ], - "any": "lettern" + "any": null }, "lexify": { "display": "Lexify", @@ -2176,7 +1937,7 @@ "description": "String value to replace ?'s" } ], - "any": "lexify" + "any": null }, "linkingVerb": { "display": "Linking Verb", @@ -2186,7 +1947,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "verblinking" + "any": null }, "logLevel": { "display": "Log Level", @@ -2196,7 +1957,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "loglevel" + "any": null }, "longitude": { "display": "Longitude", @@ -2206,7 +1967,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "longitude" + "any": null }, "longitudeRange": { "display": "Longitude Range", @@ -2235,7 +1996,7 @@ "description": "Maximum range" } ], - "any": "longituderange" + "any": null }, "loremIpsumParagraph": { "display": "Lorem Ipsum Paragraph", @@ -2282,7 +2043,7 @@ "description": "String value to add between paragraphs" } ], - "any": "loremipsumparagraph" + "any": null }, "loremIpsumSentence": { "display": "Lorem Ipsum Sentence", @@ -2302,7 +2063,7 @@ "description": "Number of words in a sentence" } ], - "any": "loremipsumsentence" + "any": null }, "loremIpsumWord": { "display": "Lorem Ipsum Word", @@ -2312,7 +2073,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "loremipsumword" + "any": null }, "lunch": { "display": "Lunch", @@ -2322,7 +2083,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "lunch" + "any": null }, "macAddress": { "display": "MAC Address", @@ -2332,17 +2093,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "macaddress" - }, - "map": { - "display": "Map", - "category": "generate", - "description": "Data structure that stores key-value pairs", - "example": "{\n\t\"software\": 7518355,\n\t\"that\": [\"despite\", \"pack\", \"whereas\", \"recently\", \"there\", \"anyone\", \"time\", \"read\"],\n\t\"use\": 683598,\n\t\"whom\": \"innovate\",\n\t\"yourselves\": 1987784\n}", - "output": "Record\u003cstring,unknown\u003e", - "content_type": "application/json", - "params": null, - "any": "map" + "any": null }, "middleName": { "display": "Middle Name", @@ -2352,7 +2103,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "middlename" + "any": null }, "minecraftAnimal": { "display": "Minecraft animal", @@ -2362,7 +2113,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftanimal" + "any": null }, "minecraftArmorPart": { "display": "Minecraft armor part", @@ -2372,7 +2123,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftarmorpart" + "any": null }, "minecraftArmorTier": { "display": "Minecraft armor tier", @@ -2382,7 +2133,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftarmortier" + "any": null }, "minecraftBiome": { "display": "Minecraft biome", @@ -2392,7 +2143,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftbiome" + "any": null }, "minecraftDye": { "display": "Minecraft dye", @@ -2402,7 +2153,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftdye" + "any": null }, "minecraftFood": { "display": "Minecraft food", @@ -2412,7 +2163,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftfood" + "any": null }, "minecraftMobBoss": { "display": "Minecraft mob boss", @@ -2422,7 +2173,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftmobboss" + "any": null }, "minecraftMobHostile": { "display": "Minecraft mob hostile", @@ -2432,7 +2183,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftmobhostile" + "any": null }, "minecraftMobNeutral": { "display": "Minecraft mob neutral", @@ -2442,7 +2193,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftmobneutral" + "any": null }, "minecraftMobPassive": { "display": "Minecraft mob passive", @@ -2452,7 +2203,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftmobpassive" + "any": null }, "minecraftOre": { "display": "Minecraft ore", @@ -2462,7 +2213,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftore" + "any": null }, "minecraftTool": { "display": "Minecraft tool", @@ -2472,7 +2223,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecrafttool" + "any": null }, "minecraftVillagerJob": { "display": "Minecraft villager job", @@ -2482,7 +2233,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftvillagerjob" + "any": null }, "minecraftVillagerLevel": { "display": "Minecraft villager level", @@ -2492,7 +2243,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftvillagerlevel" + "any": null }, "minecraftVillagerStation": { "display": "Minecraft villager station", @@ -2502,7 +2253,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftvillagerstation" + "any": null }, "minecraftWeapon": { "display": "Minecraft weapon", @@ -2512,7 +2263,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftweapon" + "any": null }, "minecraftWeather": { "display": "Minecraft weather", @@ -2522,7 +2273,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftweather" + "any": null }, "minecraftWood": { "display": "Minecraft wood", @@ -2532,7 +2283,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "minecraftwood" + "any": null }, "minute": { "display": "Minute", @@ -2542,7 +2293,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "minute" + "any": null }, "month": { "display": "Month", @@ -2552,7 +2303,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "month" + "any": null }, "monthString": { "display": "Month String", @@ -2562,7 +2313,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "monthstring" + "any": null }, "movie": { "display": "Movie", @@ -2572,7 +2323,7 @@ "output": "Record\u003cstring,string\u003e", "content_type": "application/json", "params": null, - "any": "movie" + "any": null }, "movieGenre": { "display": "Movie Genre", @@ -2582,7 +2333,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "moviegenre" + "any": null }, "movieName": { "display": "Movie Name", @@ -2592,7 +2343,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "moviename" + "any": null }, "name": { "display": "Name", @@ -2602,7 +2353,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "name" + "any": null }, "namePrefix": { "display": "Name Prefix", @@ -2612,7 +2363,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "nameprefix" + "any": null }, "nameSuffix": { "display": "Name Suffix", @@ -2622,7 +2373,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "namesuffix" + "any": null }, "nanosecond": { "display": "Nanosecond", @@ -2632,7 +2383,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "nanosecond" + "any": null }, "niceColors": { "display": "Nice Colors", @@ -2642,7 +2393,7 @@ "output": "string[]", "content_type": "application/json", "params": null, - "any": "nicecolors" + "any": null }, "noun": { "display": "Noun", @@ -2652,7 +2403,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "noun" + "any": null }, "nounAbstract": { "display": "Noun Abstract", @@ -2662,7 +2413,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "nounabstract" + "any": null }, "nounCollectiveAnimal": { "display": "Noun Collective Animal", @@ -2672,7 +2423,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "nouncollectiveanimal" + "any": null }, "nounCollectivePeople": { "display": "Noun Collective People", @@ -2682,7 +2433,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "nouncollectivepeople" + "any": null }, "nounCollectiveThing": { "display": "Noun Collective Thing", @@ -2692,7 +2443,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "nouncollectivething" + "any": null }, "nounCommon": { "display": "Noun Common", @@ -2702,7 +2453,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "nouncommon" + "any": null }, "nounConcrete": { "display": "Noun Concrete", @@ -2712,7 +2463,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "nounconcrete" + "any": null }, "nounCountable": { "display": "Noun Countable", @@ -2722,7 +2473,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "nouncountable" + "any": null }, "nounDeterminer": { "display": "Noun Determiner", @@ -2732,7 +2483,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "noundeterminer" + "any": null }, "nounPhrase": { "display": "Noun Phrase", @@ -2742,7 +2493,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "phrasenoun" + "any": null }, "nounProper": { "display": "Noun Proper", @@ -2752,7 +2503,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "nounproper" + "any": null }, "nounUncountable": { "display": "Noun Uncountable", @@ -2762,7 +2513,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "noununcountable" + "any": null }, "number": { "display": "Number", @@ -2791,7 +2542,7 @@ "description": "Maximum integer value" } ], - "any": "number" + "any": null }, "numerify": { "display": "Numerify", @@ -2811,7 +2562,7 @@ "description": "String value to replace #'s" } ], - "any": "numerify" + "any": null }, "operaUserAgent": { "display": "Opera User Agent", @@ -2821,7 +2572,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "operauseragent" + "any": null }, "paragraph": { "display": "Paragraph", @@ -2868,11 +2619,11 @@ "description": "String value to add between paragraphs" } ], - "any": "paragraph" + "any": null }, "password": { "display": "Password", - "category": "auth", + "category": "internet", "description": "Secret word or phrase used to authenticate access to a system or account", "example": "EEP+wwpk 4lU-eHNXlJZ4n K9%v\u0026TZ9e", "output": "string", @@ -2933,7 +2684,7 @@ "description": "Number of characters in password" } ], - "any": "password" + "any": null }, "pastTime": { "display": "PastTime", @@ -2943,7 +2694,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "pasttime" + "any": null }, "person": { "display": "Person", @@ -2953,7 +2704,7 @@ "output": "Record\u003cstring,unknown\u003e", "content_type": "application/json", "params": null, - "any": "person" + "any": null }, "petName": { "display": "Pet Name", @@ -2963,7 +2714,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "petname" + "any": null }, "phone": { "display": "Phone", @@ -2973,7 +2724,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "phone" + "any": null }, "phoneFormatted": { "display": "Phone Formatted", @@ -2983,7 +2734,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "phoneformatted" + "any": null }, "phrase": { "display": "Phrase", @@ -2993,7 +2744,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "phrase" + "any": null }, "possessiveAdjective": { "display": "Possessive Adjective", @@ -3003,7 +2754,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adjectivepossessive" + "any": null }, "preposition": { "display": "Preposition", @@ -3013,7 +2764,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "preposition" + "any": null }, "prepositionCompound": { "display": "Preposition Compound", @@ -3023,7 +2774,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "prepositioncompound" + "any": null }, "prepositionDouble": { "display": "Preposition Double", @@ -3033,7 +2784,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "prepositiondouble" + "any": null }, "prepositionPhrase": { "display": "Preposition Phrase", @@ -3043,7 +2794,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "phrasepreposition" + "any": null }, "prepositionSimple": { "display": "Preposition Simple", @@ -3053,7 +2804,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "prepositionsimple" + "any": null }, "price": { "display": "Price", @@ -3082,7 +2833,7 @@ "description": "Maximum price value" } ], - "any": "price" + "any": null }, "product": { "display": "Product", @@ -3092,7 +2843,7 @@ "output": "Record\u003cstring,unknown\u003e", "content_type": "application/json", "params": null, - "any": "product" + "any": null }, "productCategory": { "display": "Product Category", @@ -3102,7 +2853,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "productcategory" + "any": null }, "productDescription": { "display": "Product Description", @@ -3112,7 +2863,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "productdescription" + "any": null }, "productFeature": { "display": "Product Feature", @@ -3122,7 +2873,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "productfeature" + "any": null }, "productMaterial": { "display": "Product Material", @@ -3132,7 +2883,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "productmaterial" + "any": null }, "productName": { "display": "Product Name", @@ -3142,7 +2893,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "productname" + "any": null }, "productUpc": { "display": "Product UPC", @@ -3152,7 +2903,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "productupc" + "any": null }, "programmingLanguage": { "display": "Programming Language", @@ -3162,7 +2913,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "programminglanguage" + "any": null }, "pronoun": { "display": "Pronoun", @@ -3172,7 +2923,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "pronoun" + "any": null }, "pronounDemonstrative": { "display": "Pronoun Demonstrative", @@ -3182,7 +2933,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "pronoundemonstrative" + "any": null }, "pronounIndefinite": { "display": "Pronoun Indefinite", @@ -3192,7 +2943,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "pronounindefinite" + "any": null }, "pronounInterrogative": { "display": "Pronoun Interrogative", @@ -3202,7 +2953,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "pronouninterrogative" + "any": null }, "pronounObject": { "display": "Pronoun Object", @@ -3212,7 +2963,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "pronounobject" + "any": null }, "pronounPersonal": { "display": "Pronoun Personal", @@ -3222,7 +2973,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "pronounpersonal" + "any": null }, "pronounPossessive": { "display": "Pronoun Possessive", @@ -3232,7 +2983,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "pronounpossessive" + "any": null }, "pronounReflective": { "display": "Pronoun Reflective", @@ -3242,7 +2993,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "pronounreflective" + "any": null }, "pronounRelative": { "display": "Pronoun Relative", @@ -3252,7 +3003,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "pronounrelative" + "any": null }, "properAdjective": { "display": "Proper Adjective", @@ -3262,7 +3013,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adjectiveproper" + "any": null }, "quantitativeAdjective": { "display": "Quantitative Adjective", @@ -3272,7 +3023,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "adjectivequantitative" + "any": null }, "question": { "display": "Question", @@ -3282,7 +3033,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "question" + "any": null }, "quote": { "display": "Quote", @@ -3292,7 +3043,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "quote" + "any": null }, "randomInt": { "display": "Random Int", @@ -3312,17 +3063,7 @@ "description": "Delimited separated integers" } ], - "any": "randomint" - }, - "randomMarkdownDocument": { - "display": "Random markdown document", - "category": "template", - "description": "Lightweight markup language used for formatting plain text", - "example": "# PurpleSheep5\n\n*Author: Amie Feil*\n\nQuarterly without week it hungry thing someone. Him regularly today whomever this revolt hence. From his timing as quantity us these. Yours live these frantic not may another. How this ours his them those whose.\n\nThem batch its Iraqi most that few. Abroad cheese this whereas next how there. Gorgeous genetics time choir fiction therefore yourselves. Am those infrequently heap software quarterly rather. Punctuation yellow where several his orchard to.\n\n## Table of Contents\n- [Installation](#installation)\n- [Usage](#usage)\n- [License](#license)\n\n## Installation\n'''bash\npip install PurpleSheep5\n'''\n\n## Usage\n'''python\nresult = purplesheep5.process(\"funny request\")\nprint(\"purplesheep5 result:\", \"in progress\")\n'''\n\n## License\nMIT", - "output": "string", - "content_type": "text/plain", - "params": null, - "any": "markdown" + "any": null }, "randomString": { "display": "Random String", @@ -3342,17 +3083,7 @@ "description": "Delimited separated strings" } ], - "any": "randomstring" - }, - "randomTextEmailDocument": { - "display": "Random text email Document", - "category": "template", - "description": "Written content of an email message, including the sender's message to the recipient", - "example": "Subject: Greetings from Marcel!\n\nDear Pagac,\n\nHello there! Sending positive vibes your way.\n\nI hope you're doing great. May your week be filled with joy.\n\nVirtually woman where team late quarterly without week it hungry. Thing someone him regularly today whomever this revolt hence from. His timing as quantity us these yours live these frantic. Not may another how this ours his them those whose. Them batch its Iraqi most that few abroad cheese this.\n\nWhereas next how there gorgeous genetics time choir fiction therefore. Yourselves am those infrequently heap software quarterly rather punctuation yellow. Where several his orchard to frequently hence victorious boxers each. Does auspicious yourselves first soup tomorrow this that must conclude. Anyway some yearly who cough laugh himself both yet rarely.\n\nMe dolphin intensely block would leap plane us first then. Down them eager would hundred super throughout animal yet themselves. Been group flock shake part purchase up usually it her. None it hers boat what their there Turkmen moreover one. Lebanese to brace these shower in it everybody should whatever.\n\nI'm curious to know what you think about it. If you have a moment, please feel free to check out the project on Bitbucket\n\nI'm eager to hear what you think. Looking forward to your feedback!\n\nThank you for your consideration! Thanks in advance for your time.\n\nKind regards\nMilford Johnston\njamelhaag@king.org\n(507)096-3058", - "output": "string", - "content_type": "text/plain", - "params": null, - "any": "email_text" + "any": null }, "randomUint": { "display": "Random Uint", @@ -3372,27 +3103,7 @@ "description": "Delimited separated unsigned integers" } ], - "any": "randomuint" - }, - "regex": { - "display": "Regex", - "category": "generate", - "description": "Pattern-matching tool used in text processing to search and manipulate strings", - "example": "[abcdef]{5} - affec", - "output": "string", - "content_type": "text/plain", - "params": [ - { - "field": "str", - "display": "String", - "type": "string", - "optional": false, - "default": "", - "options": null, - "description": "Regex RE2 syntax string" - } - ], - "any": "regex" + "any": null }, "rgbColor": { "display": "RGB Color", @@ -3402,7 +3113,7 @@ "output": "number[]", "content_type": "application/json", "params": null, - "any": "rgbcolor" + "any": null }, "runtimeError": { "display": "Runtime error", @@ -3412,7 +3123,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "errorruntime" + "any": null }, "safariUserAgent": { "display": "Safari User Agent", @@ -3422,7 +3133,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "safariuseragent" + "any": null }, "safeColor": { "display": "Safe Color", @@ -3432,17 +3143,17 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "safecolor" + "any": null }, "school": { "display": "School", - "category": "school", + "category": "person", "description": "An institution for formal education and learning", "example": "Harborview State Academy", "output": "string", "content_type": "text/plain", "params": null, - "any": "school" + "any": null }, "second": { "display": "Second", @@ -3452,7 +3163,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "second" + "any": null }, "sentence": { "display": "Sentence", @@ -3472,7 +3183,7 @@ "description": "Number of words in a sentence" } ], - "any": "sentence" + "any": null }, "shuffleInts": { "display": "Shuffle Ints", @@ -3492,7 +3203,7 @@ "description": "Delimited separated integers" } ], - "any": "shuffleints" + "any": null }, "shuffleStrings": { "display": "Shuffle Strings", @@ -3512,7 +3223,7 @@ "description": "Delimited separated strings" } ], - "any": "shufflestrings" + "any": null }, "simpleSentence": { "display": "Simple Sentence", @@ -3522,7 +3233,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "sentencesimple" + "any": null }, "slogan": { "display": "Slogan", @@ -3532,7 +3243,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "slogan" + "any": null }, "snack": { "display": "Snack", @@ -3542,45 +3253,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "snack" - }, - "sql": { - "display": "SQL", - "category": "database", - "description": "Command in SQL used to add new data records into a database table", - "example": "INSERT INTO people \n\t(id, first_name, price, age, created_at) \nVALUES \n\t(1, 'Markus', 804.92, 21, '1937-01-30 07:58:01'),\n\t(2, 'Santino', 235.13, 40, '1964-07-07 22:25:40');", - "output": "string", - "content_type": "application/sql", - "params": [ - { - "field": "table", - "display": "Table", - "type": "string", - "optional": false, - "default": "", - "options": null, - "description": "Name of the table to insert into" - }, - { - "field": "count", - "display": "Count", - "type": "number", - "optional": false, - "default": "100", - "options": null, - "description": "Number of inserts to generate" - }, - { - "field": "fields", - "display": "Fields", - "type": "", - "optional": false, - "default": "", - "options": null, - "description": "Fields containing key name and function to run in json format" - } - ], - "any": "sql" + "any": null }, "ssn": { "display": "SSN", @@ -3590,7 +3263,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "ssn" + "any": null }, "state": { "display": "State", @@ -3600,7 +3273,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "state" + "any": null }, "stateAbbreviation": { "display": "State Abbreviation", @@ -3610,7 +3283,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "stateabr" + "any": null }, "street": { "display": "Street", @@ -3620,7 +3293,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "street" + "any": null }, "streetName": { "display": "Street Name", @@ -3630,7 +3303,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "streetname" + "any": null }, "streetNumber": { "display": "Street Number", @@ -3640,7 +3313,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "streetnumber" + "any": null }, "streetPrefix": { "display": "Street Prefix", @@ -3650,7 +3323,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "streetprefix" + "any": null }, "streetSuffix": { "display": "Street Suffix", @@ -3660,7 +3333,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "streetsuffix" + "any": null }, "teams": { "display": "Teams", @@ -3689,7 +3362,7 @@ "description": "Array of teams" } ], - "any": "teams" + "any": null }, "timezone": { "display": "Timezone", @@ -3699,7 +3372,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "timezone" + "any": null }, "timezoneAbbreviation": { "display": "Timezone Abbreviation", @@ -3709,7 +3382,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "timezoneabv" + "any": null }, "timezoneFull": { "display": "Timezone Full", @@ -3719,7 +3392,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "timezonefull" + "any": null }, "timezoneOffset": { "display": "Timezone Offset", @@ -3729,7 +3402,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "timezoneoffset" + "any": null }, "timezoneRegion": { "display": "Timezone Region", @@ -3739,7 +3412,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "timezoneregion" + "any": null }, "transitiveVerb": { "display": "Transitive Verb", @@ -3749,7 +3422,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "verbtransitive" + "any": null }, "uint16": { "display": "Uint16", @@ -3759,7 +3432,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "uint16" + "any": null }, "uint32": { "display": "Uint32", @@ -3769,7 +3442,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "uint32" + "any": null }, "uint64": { "display": "Uint64", @@ -3779,7 +3452,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "uint64" + "any": null }, "uint8": { "display": "Uint8", @@ -3789,7 +3462,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "uint8" + "any": null }, "uintRange": { "display": "UintRange", @@ -3818,7 +3491,7 @@ "description": "Maximum uint value" } ], - "any": "uintrange" + "any": null }, "url": { "display": "URL", @@ -3828,7 +3501,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "url" + "any": null }, "userAgent": { "display": "User Agent", @@ -3838,27 +3511,27 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "useragent" + "any": null }, "username": { "display": "Username", - "category": "auth", + "category": "internet", "description": "Unique identifier assigned to a user for accessing an account or system", "example": "Daniel1364", "output": "string", "content_type": "text/plain", "params": null, - "any": "username" + "any": null }, "uuid": { "display": "UUID", - "category": "misc", + "category": "string", "description": "128-bit identifier used to uniquely identify objects or entities in computer systems", "example": "590c1440-9888-45b0-bd51-a817ee07c3f2", "output": "string", "content_type": "text/plain", "params": null, - "any": "uuid" + "any": null }, "validationError": { "display": "Validation error", @@ -3868,7 +3541,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "errorvalidation" + "any": null }, "vegetable": { "display": "Vegetable", @@ -3878,7 +3551,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "vegetable" + "any": null }, "verb": { "display": "Verb", @@ -3888,7 +3561,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "verb" + "any": null }, "verbPhrase": { "display": "Verb Phrase", @@ -3898,17 +3571,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "phraseverb" - }, - "vowel": { - "display": "Vowel", - "category": "string", - "description": "Speech sound produced with an open vocal tract", - "example": "a", - "output": "string", - "content_type": "text/plain", - "params": null, - "any": "vowel" + "any": null }, "weekday": { "display": "Weekday", @@ -3918,7 +3581,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "weekday" + "any": null }, "word": { "display": "Word", @@ -3928,75 +3591,7 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "word" - }, - "xml": { - "display": "XML", - "category": "file", - "description": "Generates an single or an array of elements in xml format", - "example": "\u003cxml\u003e\n\t\u003crecord\u003e\n\t\t\u003cfirst_name\u003eMarkus\u003c/first_name\u003e\n\t\t\u003clast_name\u003eMoen\u003c/last_name\u003e\n\t\t\u003cpassword\u003eDc0VYXjkWABx\u003c/password\u003e\n\t\u003c/record\u003e\n\t\u003crecord\u003e\n\t\t\u003cfirst_name\u003eOsborne\u003c/first_name\u003e\n\t\t\u003clast_name\u003eHilll\u003c/last_name\u003e\n\t\t\u003cpassword\u003eXPJ9OVNbs5lm\u003c/password\u003e\n\t\u003c/record\u003e\n\u003c/xml\u003e", - "output": "number[]", - "content_type": "application/xml", - "params": [ - { - "field": "type", - "display": "Type", - "type": "string", - "optional": false, - "default": "single", - "options": [ - "single", - "array" - ], - "description": "Type of XML, single or array" - }, - { - "field": "rootelement", - "display": "Root Element", - "type": "string", - "optional": false, - "default": "xml", - "options": null, - "description": "Root element wrapper name" - }, - { - "field": "recordelement", - "display": "Record Element", - "type": "string", - "optional": false, - "default": "record", - "options": null, - "description": "Record element for each record row" - }, - { - "field": "rowcount", - "display": "Row Count", - "type": "number", - "optional": false, - "default": "100", - "options": null, - "description": "Number of rows in JSON array" - }, - { - "field": "indent", - "display": "Indent", - "type": "boolean", - "optional": false, - "default": "false", - "options": null, - "description": "Whether or not to add indents and newlines" - }, - { - "field": "fields", - "display": "Fields", - "type": "", - "optional": false, - "default": "", - "options": null, - "description": "Fields containing key name and function to run in json format" - } - ], - "any": "xml" + "any": null }, "year": { "display": "Year", @@ -4006,7 +3601,7 @@ "output": "number", "content_type": "text/plain", "params": null, - "any": "year" + "any": null }, "zip": { "display": "Zip", @@ -4016,6 +3611,6 @@ "output": "string", "content_type": "text/plain", "params": null, - "any": "zip" + "any": null } } diff --git a/functions_test.go b/functions_test.go index 1db20c3..b96a09c 100644 --- a/functions_test.go +++ b/functions_test.go @@ -1,6 +1,7 @@ package faker import ( + "bytes" _ "embed" "encoding/json" "fmt" @@ -10,9 +11,12 @@ import ( "github.com/stretchr/testify/require" "github.com/szkiba/xk6-faker/faker" "github.com/szkiba/xk6-faker/module" + "go.k6.io/k6/cmd" + "go.k6.io/k6/cmd/tests" "go.k6.io/k6/js/modulestest" ) +//go:generate go run -tags codegen ./tools/codegen json ./functions.json //go:embed functions.json var functionsJSON []byte @@ -50,3 +54,31 @@ func Test_functions_json(t *testing.T) { require.Equal(t, "function", val.String()) } } + +//go:generate go run -tags codegen ./tools/codegen test ./functions-test.js +//go:embed functions-test.js +var testJS []byte + +func Test_run_k6_test(t *testing.T) { + if testing.Short() { + t.Skip() + } + + t.Parallel() + + ts := tests.NewGlobalTestState(t) + + ts.CmdArgs = []string{"k6", "run", "--quiet", "-"} + ts.Stdin = bytes.NewBuffer(testJS) + cmd.ExecuteWithGlobalState(ts.GlobalState) + + if stdout := ts.Stdout.String(); len(stdout) != 0 { + t.Log(stdout) + } + + if stderr := ts.Stderr.String(); len(stderr) != 0 { + t.Error(stderr) + } +} + +//go:generate go run -tags codegen ./tools/codegen ts ./types/k6/x/faker/index.d.ts diff --git a/go.mod b/go.mod index f3454fd..1bc97d4 100644 --- a/go.mod +++ b/go.mod @@ -12,9 +12,23 @@ require ( ) require ( + buf.build/gen/go/gogo/protobuf/protocolbuffers/go v1.31.0-20210810001428-4df00b267f94.1 // indirect + buf.build/gen/go/prometheus/prometheus/protocolbuffers/go v1.31.0-20230627135113-9a12bc2590d2.1 // indirect + github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect + github.com/DataDog/datadog-go v0.0.0-20180330214955-e67964b4021a // indirect + github.com/PuerkitoBio/goquery v1.8.1 // indirect + github.com/Soontao/goHttpDigestClient v0.0.0-20170320082612-6d28bb1415c5 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect + github.com/andybalholm/brotli v1.0.6 // indirect + github.com/andybalholm/cascadia v1.3.1 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/bufbuild/protocompile v0.7.1 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/chromedp/cdproto v0.0.0-20221023212508-67ada9507fb2 // indirect + github.com/chromedp/sysutil v1.0.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/dlclark/regexp2 v1.9.0 // indirect github.com/fatih/color v1.16.0 // indirect github.com/go-logr/logr v1.3.0 // indirect @@ -22,18 +36,47 @@ require ( github.com/go-sourcemap/sourcemap v2.1.4-0.20211119122758-180fcef48034+incompatible // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/pprof v0.0.0-20230728192033-2ba5b33183c6 // indirect + github.com/google/uuid v1.3.1 // indirect + github.com/gorilla/websocket v1.5.1 // indirect + github.com/grafana/xk6-browser v1.3.0 // indirect + github.com/grafana/xk6-dashboard v0.7.2 // indirect + github.com/grafana/xk6-output-prometheus-remote v0.3.1 // indirect + github.com/grafana/xk6-redis v0.2.0 // indirect + github.com/grafana/xk6-timers v0.2.3 // indirect + github.com/grafana/xk6-webcrypto v0.1.1 // indirect + github.com/grafana/xk6-websockets v0.2.1 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect + github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/influxdata/influxdb1-client v0.0.0-20190402204710-8ff2fc3824fc // indirect + github.com/jhump/protoreflect v1.15.4 // indirect github.com/josharian/intern v1.0.0 // indirect + github.com/klauspost/compress v1.17.4 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/mccutchen/go-httpbin v1.1.2-0.20190116014521-c5cb2f4802fa // indirect github.com/mstoykov/atlas v0.0.0-20220811071828-388f114305dd // indirect - github.com/onsi/ginkgo v1.16.5 // indirect - github.com/onsi/gomega v1.20.2 // indirect + github.com/mstoykov/envconfig v1.4.1-0.20220114105314-765c6d8c76f1 // indirect + github.com/mstoykov/k6-taskqueue-lib v0.1.0 // indirect + github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d // indirect + github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/client_golang v1.16.0 // indirect + github.com/prometheus/client_model v0.4.0 // indirect + github.com/prometheus/common v0.42.0 // indirect + github.com/prometheus/procfs v0.10.1 // indirect + github.com/r3labs/sse/v2 v2.10.0 // indirect + github.com/redis/go-redis/v9 v9.0.5 // indirect github.com/serenize/snaker v0.0.0-20201027110005-a7ad2135616e // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/spf13/afero v1.1.2 // indirect + github.com/spf13/cobra v1.4.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/tidwall/gjson v1.17.0 // indirect + github.com/tidwall/match v1.1.1 // indirect + github.com/tidwall/pretty v1.2.1 // indirect go.opentelemetry.io/otel v1.21.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect @@ -42,14 +85,20 @@ require ( go.opentelemetry.io/otel/sdk v1.21.0 // indirect go.opentelemetry.io/otel/trace v1.21.0 // indirect go.opentelemetry.io/proto/otlp v1.0.0 // indirect + go.uber.org/goleak v1.3.0 // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto/x509roots/fallback v0.0.0-20231218163308-9d2ee975ef9f // indirect golang.org/x/net v0.19.0 // indirect + golang.org/x/sync v0.5.0 // indirect golang.org/x/sys v0.15.0 // indirect + golang.org/x/term v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 // indirect google.golang.org/grpc v1.60.0 // indirect google.golang.org/protobuf v1.31.1-0.20231027082548-f4a6c1f6e5c1 // indirect + gopkg.in/cenkalti/backoff.v1 v1.1.0 // indirect gopkg.in/guregu/null.v3 v3.3.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 8d9750f..aa9962b 100644 --- a/go.sum +++ b/go.sum @@ -1,18 +1,55 @@ +buf.build/gen/go/gogo/protobuf/protocolbuffers/go v1.31.0-20210810001428-4df00b267f94.1 h1:IpfoSUtXcmtXmL672yCeHx96evE7Z4AyWo8R2lVBU3o= +buf.build/gen/go/gogo/protobuf/protocolbuffers/go v1.31.0-20210810001428-4df00b267f94.1/go.mod h1:Az9fvKFYQGtiDa7cPW9T3Nbw8u3hpmD6wG15RsbQlA0= +buf.build/gen/go/prometheus/prometheus/protocolbuffers/go v1.31.0-20230627135113-9a12bc2590d2.1 h1:aAMGEehZVBrkvsvQYwE4yNrXRYkSX84eZpRaKPiDuxg= +buf.build/gen/go/prometheus/prometheus/protocolbuffers/go v1.31.0-20230627135113-9a12bc2590d2.1/go.mod h1:iqW5nSujn3ZJ9ISZQX3K/uWwjckAp8hz0J4/wNgFBZo= +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8= +github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDog/datadog-go v0.0.0-20180330214955-e67964b4021a h1:zpQSzEApXM0qkXcpdjeJ4OpnBWhD/X8zT/iT1wYLiVU= +github.com/DataDog/datadog-go v0.0.0-20180330214955-e67964b4021a/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/PuerkitoBio/goquery v1.8.1 h1:uQxhNlArOIdbrH1tr0UXwdVFgDcZDrZVdcpygAcwmWM= +github.com/PuerkitoBio/goquery v1.8.1/go.mod h1:Q8ICL1kNUJ2sXGoAhPGUdYDJvgQgHzJsnnd3H7Ho5jQ= +github.com/Soontao/goHttpDigestClient v0.0.0-20170320082612-6d28bb1415c5 h1:k+1+doEm31k0rRjCjLnGG3YRkuO9ljaEyS2ajZd6GK8= +github.com/Soontao/goHttpDigestClient v0.0.0-20170320082612-6d28bb1415c5/go.mod h1:5Q4+CyR7+Q3VMG8f78ou+QSX/BNUNUx5W48eFRat8DQ= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c= +github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/brianvoe/gofakeit/v6 v6.28.0 h1:Xib46XXuQfmlLS2EXRuJpqcw8St6qSZz75OUo0tgAW4= github.com/brianvoe/gofakeit/v6 v6.28.0/go.mod h1:Xj58BMSnFqcn/fAQeSK+/PLtC5kSb7FJIq4JyGa8vEs= +github.com/bsm/ginkgo/v2 v2.7.0 h1:ItPMPH90RbmZJt5GtkcNvIRuGEdwlBItdNVoyzaNQao= +github.com/bsm/ginkgo/v2 v2.7.0/go.mod h1:AiKlXPm7ItEHNc/2+OkrNG4E0ITzojb9/xWzvQ9XZ9w= +github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y= +github.com/bsm/gomega v1.26.0/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= +github.com/bufbuild/protocompile v0.7.1 h1:Kd8fb6EshOHXNNRtYAmLAwy/PotlyFoN0iMbuwGNh0M= +github.com/bufbuild/protocompile v0.7.1/go.mod h1:+Etjg4guZoAqzVk2czwEQP12yaxLJ8DxuqCJ9qHdH94= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chromedp/cdproto v0.0.0-20221023212508-67ada9507fb2 h1:xESwMZNYkDnZf9MUk+6lXfMbpDnEJwlEuIxKYKM1vJY= +github.com/chromedp/cdproto v0.0.0-20221023212508-67ada9507fb2/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= +github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic= +github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= github.com/chzyer/logex v1.2.0/go.mod h1:9+9sk7u7pGNWYMkh0hdiL++6OeibzJccyQU4p4MedaY= github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86cAH8qUic= github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dlclark/regexp2 v1.9.0 h1:pTK/l/3qYIKaRXuHnEnIf7Y5NxfRPfpb7dis6/gdlVI= @@ -22,12 +59,16 @@ github.com/dop251/goja v0.0.0-20231027120936-b396bb4c349d h1:wi6jN5LVt/ljaBG4ue7 github.com/dop251/goja v0.0.0-20231027120936-b396bb4c349d/go.mod h1:QMWlm50DNe14hD7t24KEqZuUdC9sOTy8W6XbCU1mlw4= github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -36,40 +77,65 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sourcemap/sourcemap v2.1.4-0.20211119122758-180fcef48034+incompatible h1:bopx7t9jyUNX1ebhr0G4gtQWmUOgwQRI0QsYhdYLgkU= github.com/go-sourcemap/sourcemap v2.1.4-0.20211119122758-180fcef48034+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= github.com/google/pprof v0.0.0-20230728192033-2ba5b33183c6 h1:ZgoomqkdjGbQ3+qQXCkvYMCDvGDNg2k5JJDjjdTB6jY= github.com/google/pprof v0.0.0-20230728192033-2ba5b33183c6/go.mod h1:Jh3hGz2jkYak8qXPD19ryItVnUgpgeqzdkY/D0EaeuA= +github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/grafana/xk6-browser v1.3.0 h1:NFDvx56O77e4dBWFIUYQ733lzgbClcVH2Kn/yaACWjM= +github.com/grafana/xk6-browser v1.3.0/go.mod h1:Y7fN+spgo9LVLfpxWdkki1bY5EKUk+5B6xaYp4DotPA= +github.com/grafana/xk6-dashboard v0.7.2 h1:CLaWeRfPZ388IS6rBn0nI+lqtX50QoQ73z0Hz5BIrS4= +github.com/grafana/xk6-dashboard v0.7.2/go.mod h1:7HLAY4udlWGXGDQL5gWIi+In3eZRljXi8AnHt1Z+lFM= +github.com/grafana/xk6-output-prometheus-remote v0.3.1 h1:X23rQzlJD8dXWB31DkxR4uPnuRFo8L0Y0H22fSG9xl0= +github.com/grafana/xk6-output-prometheus-remote v0.3.1/go.mod h1:0JLAm4ONsNUlNoxJXAwOCfA6GtDwTPs557OplAvE+3o= +github.com/grafana/xk6-redis v0.2.0 h1:iXmAKVlAxafZ/h8ptuXTFhGu63IFsyDI8QjUgWm66BU= +github.com/grafana/xk6-redis v0.2.0/go.mod h1:B3PA9PAPJa2/WUfNJCdQwZrbb6D4e6UHIk8dssQbj7w= +github.com/grafana/xk6-timers v0.2.3 h1:uShQZ6T+9fpCc9j8AAuBPRMKNneG/TRtkM1uuwhXH4g= +github.com/grafana/xk6-timers v0.2.3/go.mod h1:QbhJwMBHm9k8ukFm1AtnsoCbeRSngk+8iFaxnKZaKdo= +github.com/grafana/xk6-webcrypto v0.1.1 h1:SSGjm3mea8V9AkbqHkzlle+6KOu87gLE2xf9kfM3jlg= +github.com/grafana/xk6-webcrypto v0.1.1/go.mod h1:2pyN4Lmf5cK6EH9xnSn2B81k9vpCdBzcklWhZ/dH+18= +github.com/grafana/xk6-websockets v0.2.1 h1:99tuI5g9UPTCpGbiEo/9E7VFKQIOvTLq231qoMVef5c= +github.com/grafana/xk6-websockets v0.2.1/go.mod h1:f0XN0IGHx6m8jWh/w8ZFG6mZlRgzpztSHmvd4uK9RJo= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/influxdata/influxdb1-client v0.0.0-20190402204710-8ff2fc3824fc h1:KpMgaYJRieDkHZJWY3LMafvtqS/U8xX6+lUN+OKpl/Y= +github.com/influxdata/influxdb1-client v0.0.0-20190402204710-8ff2fc3824fc/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/jhump/protoreflect v1.15.4 h1:mrwJhfQGGljwvR/jPEocli8KA6G9afbQpH8NY2wORcI= +github.com/jhump/protoreflect v1.15.4/go.mod h1:2B+zwrnMY3TTIqEK01OG/d3pyUycQBfDf+bx8fE2DNg= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= @@ -86,39 +152,74 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mccutchen/go-httpbin v1.1.2-0.20190116014521-c5cb2f4802fa h1:lx8ZnNPwjkXSzOROz0cg69RlErRXs+L3eDkggASWKLo= github.com/mccutchen/go-httpbin v1.1.2-0.20190116014521-c5cb2f4802fa/go.mod h1:fhpOYavp5g2K74XDl/ao2y4KvhqVtKlkg1e+0UaQv7I= github.com/mstoykov/atlas v0.0.0-20220811071828-388f114305dd h1:AC3N94irbx2kWGA8f/2Ks7EQl2LxKIRQYuT9IJDwgiI= github.com/mstoykov/atlas v0.0.0-20220811071828-388f114305dd/go.mod h1:9vRHVuLCjoFfE3GT06X0spdOAO+Zzo4AMjdIwUHBvAk= github.com/mstoykov/envconfig v1.4.1-0.20220114105314-765c6d8c76f1 h1:94EkGmhXrVUEal+uLwFUf4fMXPhZpM5tYxuIsxrCCbI= github.com/mstoykov/envconfig v1.4.1-0.20220114105314-765c6d8c76f1/go.mod h1:vk/d9jpexY2Z9Bb0uB4Ndesss1Sr0Z9ZiGUrg5o9VGk= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/mstoykov/k6-taskqueue-lib v0.1.0 h1:M3eww1HSOLEN6rIkbNOJHhOVhlqnqkhYj7GTieiMBz4= +github.com/mstoykov/k6-taskqueue-lib v0.1.0/go.mod h1:PXdINulapvmzF545Auw++SCD69942FeNvUztaa9dVe4= +github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ= +github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.20.2 h1:8uQq0zMgLEfa0vRrrBgaJF2gyW9Da9BmfGV+OyUzfkY= github.com/onsi/gomega v1.20.2/go.mod h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= +github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/r3labs/sse/v2 v2.10.0 h1:hFEkLLFY4LDifoHdiCN/LlGBAdVJYsANaLqNYa1l/v0= +github.com/r3labs/sse/v2 v2.10.0/go.mod h1:Igau6Whc+F17QUgML1fYe1VPZzTV6EMCnYktEmkNJ7I= +github.com/redis/go-redis/v9 v9.0.5 h1:CuQcn5HIEeK7BgElubPP8CGtE0KakrnbBSTLjathl5o= +github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/serenize/snaker v0.0.0-20201027110005-a7ad2135616e h1:zWKUYT07mGmVBH+9UgnHXd/ekCK99C8EbDSAt5qsjXE= github.com/serenize/snaker v0.0.0-20201027110005-a7ad2135616e/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q= +github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= +github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= +github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= +github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= +github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.k6.io/k6 v0.49.0 h1:Bk+hemV2fbzuGnU8rPl7ZPUaDBUTdZOcypLe2JZoS5k= @@ -139,103 +240,145 @@ go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8 go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto/x509roots/fallback v0.0.0-20231218163308-9d2ee975ef9f h1:RZ6FOA20P3k/zy8nVmUBN4Xn7pzwtO7ooJJ3royqrB8= +golang.org/x/crypto/x509roots/fallback v0.0.0-20231218163308-9d2ee975ef9f/go.mod h1:kNa9WdvYnzFwC79zRpLRMJbdEFlhyM5RPFBBZp/wWH8= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 h1:6GQBEOdGkX6MMTLT9V+TjtIRZCw9VPD5Z+yHY9wMgS0= google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k= google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.1-0.20231027082548-f4a6c1f6e5c1 h1:fk72uXZyuZiTtW5tgd63jyVK6582lF61nRC/kGv6vCA= google.golang.org/protobuf v1.31.1-0.20231027082548-f4a6c1f6e5c1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/cenkalti/backoff.v1 v1.1.0 h1:Arh75ttbsvlpVA7WtVpH4u9h6Zl46xuptxqLxPiSo4Y= +gopkg.in/cenkalti/backoff.v1 v1.1.0/go.mod h1:J6Vskwqd+OMVJl8C33mmtxTBs2gyzfv7UDAkHu8BrjI= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/guregu/null.v3 v3.3.0 h1:8j3ggqq+NgKt/O7mbFVUFKUMWN+l1AmT5jQmJ6nPh2c= gopkg.in/guregu/null.v3 v3.3.0/go.mod h1:E4tX2Qe3h7QdL+uZ3a0vqvYwKQsRSQKM5V4YltdgH9Y= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= diff --git a/package.json b/package.json new file mode 100644 index 0000000..19982a7 --- /dev/null +++ b/package.json @@ -0,0 +1,10 @@ +{ + "name": "xk6-faker", + "version": "0.0.0", + "description": "Random fake data generator for k6", + "private": true, + "devDependencies": { + "@types/k6": "^0.49.1", + "k6": "^0.0.0" + } +} diff --git a/tools/codegen/gentest.go b/tools/codegen/gentest.go index fb18032..2cad652 100644 --- a/tools/codegen/gentest.go +++ b/tools/codegen/gentest.go @@ -2,8 +2,127 @@ package main -import "io" +import ( + "encoding/json" + "fmt" + "io" + "sort" + "strings" + + "github.com/brianvoe/gofakeit/v6" +) + +const testProlog = `import { check, group } from "k6"; +import { Faker } from "k6/x/faker"; + +export const options = { + "thresholds": { + "checks": ["rate == 1.0"] + } +}; + +export default function () { + let faker = new Faker(11); + let checker = (v) => typeof(v) != "undefined"; +` + +func genParams(info *gofakeit.Info) (string, error) { + faker := gofakeit.New(11) + + if len(info.Params) == 0 { + return "", nil + } + + var buff strings.Builder + + min := 11 + + for idx, param := range info.Params { + if idx > 0 { + buff.WriteRune(',') + } + + var val any + + switch param.Type { + case "number": + val = faker.Number(min, min+2) + min += 2 + case "boolean": + val = faker.Bool() + case "string": + val = faker.Word() + case "string[]": + str := faker.Sentence(10) + str = strings.ToLower(str[:len(str)-1]) + val = strings.Split(str, " ") + case "number[]": + val = []any{faker.Number(5, 20), faker.Number(2, 10), faker.Number(3, 15)} + default: + val = nil + } + + if param.Type == "string" && len(param.Default) != 0 { + val = param.Default + } + + b, err := json.Marshal(val) + if err != nil { + return "", err + } + + buff.Write(b) + } + + return buff.String(), nil +} + +func keys[VT any](dict map[string]VT) []string { + keys := make([]string, 0, len(dict)) + for key := range dict { + keys = append(keys, key) + } + + sort.Strings(keys) + + return keys +} func goTest(out io.Writer) error { + fmt.Fprint(out, testProlog) + + catfuncs := getCategoryFuncs() + + for _, cname := range keys(catfuncs) { + funcs := catfuncs[cname] + fmt.Fprintf(out, " group('%s', ()=> {\n", cname) + for _, fun := range keys(funcs) { + if fun == "creditCardNumber" { // it is not worth generating due to complicated parameter conditions + continue + } + + info := funcs[fun] + + params, err := genParams(info) + if err != nil { + return err + } + + callparams := params + if len(callparams) != 0 { + callparams = "," + callparams + } + + fmt.Fprintf(out, " check(faker.%s.%s(%s), { '%s.%s(%s)': checker });\n", cname, fun, params, cname, fun, params) + if cname == "zen" { + fmt.Fprintf(out, " check(faker.call(\"%s\"%s), { 'call(\"%s\"%s)': checker });\n", + fun, callparams, fun, callparams) + } + } + fmt.Fprintf(out, " });\n") + } + + fmt.Fprintln(out, "};") + return nil } diff --git a/tools/codegen/gents.go b/tools/codegen/gents.go index d33b326..1643921 100644 --- a/tools/codegen/gents.go +++ b/tools/codegen/gents.go @@ -2,8 +2,184 @@ package main -import "io" +import ( + "bytes" + _ "embed" + "fmt" + "io" + "strings" + + "github.com/brianvoe/gofakeit/v6" + "github.com/dop251/goja" + "github.com/iancoleman/strcase" + "github.com/szkiba/xk6-faker/faker" + "github.com/szkiba/xk6-faker/module" +) + +//go:embed prolog.d.ts +var tsProlog []byte + +const tsEpilog = ` +/** Default Faker instance. */ +declare const faker: Faker; + +/** Default Faker instance */ +export default faker; + +` func tsGen(out io.Writer) error { + tsProlog[bytes.LastIndexByte(tsProlog, '}')] = '\n' + fmt.Fprint(out, string(tsProlog)) + + for idx, cname := range keys(faker.GetCategoryFuncs()) { + if idx != 0 { + fmt.Fprintln(out) + } + fmt.Fprintf(out, " /**\n * %s\n */\n", catdesc[cname]) + fmt.Fprintf(out, " readonly %s: %s;\n", cname, strcase.ToCamel(cname)) + } + + fmt.Fprintln(out, "}") + fmt.Fprint(out, tsEpilog) + + categories := getCategoryFuncs() + + for idx, cname := range keys(categories) { + if idx != 0 { + fmt.Fprintln(out) + } + + fmt.Fprintf(out, "/**\n * %s\n */\n", catdesc[cname]) + fmt.Fprintf(out, "export declare interface %s {\n", strcase.ToCamel(cname)) + + funcs := categories[cname] + + for fidx, fname := range keys(funcs) { + if fidx != 0 { + fmt.Fprintln(out) + } + + info := funcs[fname] + + fmt.Fprintf(out, " /**\n * %s.\n", info.Description) + fmt.Fprintf(out, " * @returns a random %s\n", strings.ToLower(info.Display)) + fmt.Fprintf(out, " * @example\n") + fmt.Fprintf(out, " * ```ts\n") + + example, output, err := buildExample(fname, cname, info) + if err != nil { + return err + } + + for _, line := range strings.Split(example, "\n") { + fmt.Fprintf(out, " *%s\n", line) + } + + fmt.Fprintf(out, " *```\n") + + fmt.Fprintf(out, " * **Output** (formatted as JSON value)\n") + fmt.Fprintf(out, " *```json\n") + fmt.Fprintf(out, " * %s\n", output) + fmt.Fprintf(out, " * ```\n") + fmt.Fprintf(out, " */\n") + fmt.Fprintf(out, " %s(%s): %s;\n", fname, buildParamList(info), info.Output) + } + + fmt.Fprintln(out, "}") + } + return nil } + +func buildParamList(info *gofakeit.Info) string { + out := new(bytes.Buffer) + + for idx, param := range info.Params { + if idx != 0 { + fmt.Fprint(out, ", ") + } + + fmt.Fprintf(out, "%s: %s", param.Field, param.Type) + } + + return out.String() +} + +func buildExample(name string, category string, info *gofakeit.Info) (string, string, error) { + params, err := genParams(info) + if err != nil { + return "", "", err + } + + call := fmt.Sprintf("faker.%s.%s(%s)", category, name, params) + + runtime := goja.New() + err = runtime.Set("Faker", faker.Constructor) + if err != nil { + return "", "", err + } + + value, err := runtime.RunString(fmt.Sprintf("let faker=new Faker(11); %s", call)) + if err != nil { + return "", "", err + } + + var output string + + if obj := value.ToObject(runtime); obj != nil { + b, err := obj.MarshalJSON() + if err != nil { + return "", "", err + } + output = string(b) + } else { + output = value.ToString().String() + } + + out := new(bytes.Buffer) + + fmt.Fprintf(out, `import { Faker } from "%s"`, module.ImportPath) + fmt.Fprintf(out, ` + +let faker = new Faker(11) + +export default function () { + console.log(%s) +} +`, call) + + return out.String(), output, nil +} + +var catdesc = map[string]string{ //nolint:gochecknoglobals + "address": "Generator to generate addresses and locations.", + "animal": "Generator to generate animals.", + "app": "Generator to generate application related entries.", + "beer": "Generator to generate beer related entries.", + "book": "Generator to generate book related entries.", + "car": "Generator to generate car related entries.", + "celebrity": "Generator to generate celebrities.", + "color": "Generator to generate colors.", + "company": "Generator to generate company related entries.", + "emoji": "Generator to generate emoji related entries.", + "error": "Generator to generate various error codes and messages.", + "file": "Generator to generate file related entries.", + "finance": "Generator to generate finance related entries.", + "food": "Generator to generate food related entries.", + "game": "Generator to generate game related entries.", + "hacker": "Generator to generate hacker/IT words and phrases.", + "hipster": "Generator to generate hipster words, phrases and paragraphs.", + "internet": "Generator to generate internet related entries.", + "language": "Generator to generate language related entries.", + "minecraft": "Generator to generate minecraft related entries.", + "movie": "Generator to generate movie related entries.", + "number": "Generator to generate numbers.", + "payment": "Generator to generate payment related entries.", + "person": "Generator to generate people's personal information.", + "product": "Generator to generate product related entries.", + "string": "Generator to generate strings.", + "time": "Generator to generate time and date.", + "word": "Generator to generate words and sentences.", + "zen": "Generator with all generator functions for convenient use.", +} diff --git a/tools/codegen/lookup.go b/tools/codegen/lookup.go index 55cd40c..e03d059 100644 --- a/tools/codegen/lookup.go +++ b/tools/codegen/lookup.go @@ -70,7 +70,7 @@ func convertLookup(src *gofakeit.Info) (*gofakeit.Info, bool) { } func getFuncLookups() map[string]*gofakeit.Info { - all := map[string]*gofakeit.Info{} + all := make(map[string]*gofakeit.Info) for key, value := range faker.GetFuncLookups() { if info, ok := convertLookup(value); ok { @@ -80,3 +80,21 @@ func getFuncLookups() map[string]*gofakeit.Info { return all } + +func getCategoryFuncs() map[string]map[string]*gofakeit.Info { + all := make(map[string]map[string]*gofakeit.Info) + + for cname, funcs := range faker.GetCategoryFuncs() { + category := make(map[string]*gofakeit.Info, len(funcs)) + + for fun, info := range funcs { + if converted, ok := convertLookup(info); ok { + category[fun] = converted + } + } + + all[cname] = category + } + + return all +} diff --git a/tools/codegen/prolog.d.ts b/tools/codegen/prolog.d.ts new file mode 100644 index 0000000..17d2e2c --- /dev/null +++ b/tools/codegen/prolog.d.ts @@ -0,0 +1,114 @@ +/** + * **Random fake data generator for k6.** + * + * Altought there is several good JavaScript fake data generator, + * but using these in [k6](https://k6.io) tests has several disadvantages (download size, memory usage, startup time, etc). + * The xk6-faker implemented as a golang extension, so tests starts faster and use less memory. + * The price is a little bit smaller feature set compared with popular JavaScript fake data generators. + * + * For convenience, the xk6-faker API resembles the popular [Faker.js](https://fakerjs.dev/). + * The category names and the generator function names are often different + * (due to the [underlying go faker library](https://github.com/brianvoe/gofakeit)), + * but the way of use is similar. + * + * @example + * For convenient use, the default export of the module is a Faker instance, + * it just needs to be imported and it is ready for use. + * + * ```ts + * import faker from "k6/x/faker" + * + * export default function() { + * console.log(faker.person.firstName()) + * } + * + * // prints a random first name + * ``` + * For a reproducible test run, a random seed value can be passed to the constructor of the Faker class. + * + * ```ts + * import { Faker } from "k6/x/faker" + * + * const faker = new Faker(11) + * + * export default function() { + * console.log(faker.person.firstName()) + * } + * ``` + * **Output** (formatted as JSON value) + * ```json + * "Josiah" + * ``` + * The reproducibility of the test can also be achieved using the default Faker instance, + * if the seed value is set in the `XK6_FAKER_SEED` environment variable. + * ```bash + * k6 run --env XK6_FAKER_SEED=11 script.js + * ``` + * then + * ```ts + * import faker from "k6/x/faker" + * + * export default function() { + * console.log(faker.person.firstName()) + * } + * ``` + * **Output** (formatted as JSON value) + * ```json + * "Josiah" + * ``` + * + * @module faker + */ +export as namespace faker; + +/** + * This is Faker's main class containing all generators that can be used to generate data. + * + * Please have a look at the individual generators and methods for more information. + * + * @example + * ```ts + * import { Faker } from "k6/x/faker" + * + * const faker = new Faker(11) + * + * export default function() { + * console.log(faker.person.firstName()) + * } + * ``` + * **Output** (formatted as JSON value) + * ```json + * "Josiah" + * ``` + */ +export declare class Faker { + /** + * Creates a new instance of Faker. + * + * Optionally, the value of the random seed can be set as a constructor parameter. + * This is intended to allow for consistent values in a tests, + * so you might want to use hardcoded values as the seed. + * + * Please note that generated values are dependent on both the seed and the number + * of calls that have been made. + * + * Setting seed to 0 (or omitting it) will use seed derived from system entropy. + * + * @param seed random seed value for deterministic generator + * + * @example + * ```ts + * const consistentFaker = new Faker(11) + * const semiRandomFaker = new Faker() + * ``` + */ + constructor(seed?: number); + + /** + * Call fake data generator function based on function name. + * + * @param func the name of the generator function to be called + * @param args parameters for the generator function to be called + */ + call(func: string, ...args: unknown[]): unknown; +} diff --git a/tsconfig.json b/tsconfig.json index 5ad16e4..219e8d7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "typedocOptions": { - "entryPoints": ["./index.d.ts"], + "entryPoints": ["./types/k6/x/faker/index.d.ts"], "out": "build/docs", "name": "xk6-faker", "readme": "none", @@ -16,5 +16,14 @@ "navigationLinks": { "GitHub": "https://github.com/szkiba/xk6-faker" } + }, + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "esModuleInterop": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "typeRoots": ["node_modules/@types", "./types"] } } diff --git a/types/k6/x/faker/index.d.ts b/types/k6/x/faker/index.d.ts new file mode 100644 index 0000000..775763f --- /dev/null +++ b/types/k6/x/faker/index.d.ts @@ -0,0 +1,13137 @@ +/** + * **Random fake data generator for k6.** + * + * Altought there is several good JavaScript fake data generator, + * but using these in [k6](https://k6.io) tests has several disadvantages (download size, memory usage, startup time, etc). + * The xk6-faker implemented as a golang extension, so tests starts faster and use less memory. + * The price is a little bit smaller feature set compared with popular JavaScript fake data generators. + * + * For convenience, the xk6-faker API resembles the popular [Faker.js](https://fakerjs.dev/). + * The category names and the generator function names are often different + * (due to the [underlying go faker library](https://github.com/brianvoe/gofakeit)), + * but the way of use is similar. + * + * @example + * For convenient use, the default export of the module is a Faker instance, + * it just needs to be imported and it is ready for use. + * + * ```ts + * import faker from "k6/x/faker" + * + * export default function() { + * console.log(faker.person.firstName()) + * } + * + * // prints a random first name + * ``` + * For a reproducible test run, a random seed value can be passed to the constructor of the Faker class. + * + * ```ts + * import { Faker } from "k6/x/faker" + * + * const faker = new Faker(11) + * + * export default function() { + * console.log(faker.person.firstName()) + * } + * ``` + * **Output** (formatted as JSON value) + * ```json + * "Josiah" + * ``` + * The reproducibility of the test can also be achieved using the default Faker instance, + * if the seed value is set in the `XK6_FAKER_SEED` environment variable. + * ```bash + * k6 run --env XK6_FAKER_SEED=11 script.js + * ``` + * then + * ```ts + * import faker from "k6/x/faker" + * + * export default function() { + * console.log(faker.person.firstName()) + * } + * ``` + * **Output** (formatted as JSON value) + * ```json + * "Josiah" + * ``` + * + * @module faker + */ +export as namespace faker; + +/** + * This is Faker's main class containing all generators that can be used to generate data. + * + * Please have a look at the individual generators and methods for more information. + * + * @example + * ```ts + * import { Faker } from "k6/x/faker" + * + * const faker = new Faker(11) + * + * export default function() { + * console.log(faker.person.firstName()) + * } + * ``` + * **Output** (formatted as JSON value) + * ```json + * "Josiah" + * ``` + */ +export declare class Faker { + /** + * Creates a new instance of Faker. + * + * Optionally, the value of the random seed can be set as a constructor parameter. + * This is intended to allow for consistent values in a tests, + * so you might want to use hardcoded values as the seed. + * + * Please note that generated values are dependent on both the seed and the number + * of calls that have been made. + * + * Setting seed to 0 (or omitting it) will use seed derived from system entropy. + * + * @param seed random seed value for deterministic generator + * + * @example + * ```ts + * const consistentFaker = new Faker(11) + * const semiRandomFaker = new Faker() + * ``` + */ + constructor(seed?: number); + + /** + * Call fake data generator function based on function name. + * + * @param func the name of the generator function to be called + * @param args parameters for the generator function to be called + */ + call(func: string, ...args: unknown[]): unknown; + + + /** + * Generator to generate addresses and locations. + */ + readonly address: Address; + + /** + * Generator to generate animals. + */ + readonly animal: Animal; + + /** + * Generator to generate application related entries. + */ + readonly app: App; + + /** + * Generator to generate beer related entries. + */ + readonly beer: Beer; + + /** + * Generator to generate book related entries. + */ + readonly book: Book; + + /** + * Generator to generate car related entries. + */ + readonly car: Car; + + /** + * Generator to generate celebrities. + */ + readonly celebrity: Celebrity; + + /** + * Generator to generate colors. + */ + readonly color: Color; + + /** + * Generator to generate company related entries. + */ + readonly company: Company; + + /** + * Generator to generate emoji related entries. + */ + readonly emoji: Emoji; + + /** + * Generator to generate various error codes and messages. + */ + readonly error: Error; + + /** + * Generator to generate file related entries. + */ + readonly file: File; + + /** + * Generator to generate finance related entries. + */ + readonly finance: Finance; + + /** + * Generator to generate food related entries. + */ + readonly food: Food; + + /** + * Generator to generate game related entries. + */ + readonly game: Game; + + /** + * Generator to generate hacker/IT words and phrases. + */ + readonly hacker: Hacker; + + /** + * Generator to generate hipster words, phrases and paragraphs. + */ + readonly hipster: Hipster; + + /** + * Generator to generate internet related entries. + */ + readonly internet: Internet; + + /** + * Generator to generate language related entries. + */ + readonly language: Language; + + /** + * Generator to generate minecraft related entries. + */ + readonly minecraft: Minecraft; + + /** + * Generator to generate movie related entries. + */ + readonly movie: Movie; + + /** + * Generator to generate numbers. + */ + readonly number: Number; + + /** + * Generator to generate payment related entries. + */ + readonly payment: Payment; + + /** + * Generator to generate people's personal information. + */ + readonly person: Person; + + /** + * Generator to generate product related entries. + */ + readonly product: Product; + + /** + * Generator to generate strings. + */ + readonly string: String; + + /** + * Generator to generate time and date. + */ + readonly time: Time; + + /** + * Generator to generate words and sentences. + */ + readonly word: Word; + + /** + * Generator with all generator functions for convenient use. + */ + readonly zen: Zen; +} + +/** Default Faker instance. */ +declare const faker: Faker; + +/** Default Faker instance */ +export default faker; + +/** + * Generator to generate addresses and locations. + */ +export declare interface Address { + /** + * Residential location including street, city, state, country and postal code. + * @returns a random address + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.address()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Address":"53883 Villageborough, San Bernardino, Kentucky 56992","Street":"53883 Villageborough","City":"San Bernardino","State":"Kentucky","Zip":"56992","Country":"United States of America","Latitude":11.29359,"Longitude":-145.577493} + * ``` + */ + address(): Record; + + /** + * Part of a country with significant population, often a central hub for culture and commerce. + * @returns a random city + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.city()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Hialeah" + * ``` + */ + city(): string; + + /** + * Nation with its own government and defined territory. + * @returns a random country + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.country()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Togo" + * ``` + */ + country(): string; + + /** + * Shortened 2-letter form of a country's name. + * @returns a random country abbreviation + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.countryAbbreviation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "TG" + * ``` + */ + countryAbbreviation(): string; + + /** + * Geographic coordinate specifying north-south position on Earth's surface. + * @returns a random latitude + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.latitude()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 11.394086 + * ``` + */ + latitude(): number; + + /** + * Latitude number between the given range (default min=0, max=90). + * @returns a random latitude range + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.latitudeRange(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + latitudeRange(min: number, max: number): number; + + /** + * Geographic coordinate indicating east-west position on Earth's surface. + * @returns a random longitude + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.longitude()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 22.788172 + * ``` + */ + longitude(): number; + + /** + * Longitude number between the given range (default min=0, max=180). + * @returns a random longitude range + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.longitudeRange(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + longitudeRange(min: number, max: number): number; + + /** + * Governmental division within a country, often having its own laws and government. + * @returns a random state + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.state()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Massachusetts" + * ``` + */ + state(): string; + + /** + * Shortened 2-letter form of a country's state. + * @returns a random state abbreviation + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.stateAbbreviation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "AA" + * ``` + */ + stateAbbreviation(): string; + + /** + * Public road in a city or town, typically with houses and buildings on each side. + * @returns a random street + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.street()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "53883 Villageborough" + * ``` + */ + street(): string; + + /** + * Name given to a specific road or street. + * @returns a random street name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.streetName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Fall" + * ``` + */ + streetName(): string; + + /** + * Numerical identifier assigned to a street. + * @returns a random street number + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.streetNumber()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "25388" + * ``` + */ + streetNumber(): string; + + /** + * Directional or descriptive term preceding a street name, like 'East' or 'Main'. + * @returns a random street prefix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.streetPrefix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "West" + * ``` + */ + streetPrefix(): string; + + /** + * Designation at the end of a street name indicating type, like 'Avenue' or 'Street'. + * @returns a random street suffix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.streetSuffix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "ville" + * ``` + */ + streetSuffix(): string; + + /** + * Numerical code for postal address sorting, specific to a geographic area. + * @returns a random zip + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.address.zip()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "25388" + * ``` + */ + zip(): string; +} + +/** + * Generator to generate animals. + */ +export declare interface Animal { + /** + * Living creature with the ability to move, eat, and interact with its environment. + * @returns a random animal + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.animal.animal()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "crow" + * ``` + */ + animal(): string; + + /** + * Type of animal, such as mammals, birds, reptiles, etc.. + * @returns a random animal type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.animal.animalType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "amphibians" + * ``` + */ + animalType(): string; + + /** + * Distinct species of birds. + * @returns a random bird + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.animal.bird()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "lovebird" + * ``` + */ + bird(): string; + + /** + * Various breeds that define different cats. + * @returns a random cat + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.animal.cat()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Toyger" + * ``` + */ + cat(): string; + + /** + * Various breeds that define different dogs. + * @returns a random dog + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.animal.dog()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Staffordshire Bullterrier" + * ``` + */ + dog(): string; + + /** + * Animal name commonly found on a farm. + * @returns a random farm animal + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.animal.farmAnimal()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Cow" + * ``` + */ + farmAnimal(): string; + + /** + * Affectionate nickname given to a pet. + * @returns a random pet name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.animal.petName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Nacho" + * ``` + */ + petName(): string; +} + +/** + * Generator to generate application related entries. + */ +export declare interface App { + /** + * Person or group creating and developing an application. + * @returns a random app author + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.app.appAuthor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Wendell Luettgen" + * ``` + */ + appAuthor(): string; + + /** + * Software program designed for a specific purpose or task on a computer or mobile device. + * @returns a random app name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.app.appName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Hillbe" + * ``` + */ + appName(): string; + + /** + * Particular release of an application in Semantic Versioning format. + * @returns a random app version + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.app.appVersion()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "5.3.20" + * ``` + */ + appVersion(): string; +} + +/** + * Generator to generate beer related entries. + */ +export declare interface Beer { + /** + * Measures the alcohol content in beer. + * @returns a random beer alcohol + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.beer.beerAlcohol()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "6.5%" + * ``` + */ + beerAlcohol(): string; + + /** + * Scale indicating the concentration of extract in worts. + * @returns a random beer blg + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.beer.beerBlg()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "13.4°Blg" + * ``` + */ + beerBlg(): string; + + /** + * The flower used in brewing to add flavor, aroma, and bitterness to beer. + * @returns a random beer hop + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.beer.beerHop()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Nugget" + * ``` + */ + beerHop(): string; + + /** + * Scale measuring bitterness of beer from hops. + * @returns a random beer ibu + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.beer.beerIbu()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "80 IBU" + * ``` + */ + beerIbu(): string; + + /** + * Processed barley or other grains, provides sugars for fermentation and flavor to beer. + * @returns a random beer malt + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.beer.beerMalt()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Roasted barley" + * ``` + */ + beerMalt(): string; + + /** + * Specific brand or variety of beer. + * @returns a random beer name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.beer.beerName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "90 Minute IPA" + * ``` + */ + beerName(): string; + + /** + * Distinct characteristics and flavors of beer. + * @returns a random beer style + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.beer.beerStyle()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "English Brown Ale" + * ``` + */ + beerStyle(): string; + + /** + * Microorganism used in brewing to ferment sugars, producing alcohol and carbonation in beer. + * @returns a random beer yeast + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.beer.beerYeast()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "2035 - American Lager" + * ``` + */ + beerYeast(): string; +} + +/** + * Generator to generate book related entries. + */ +export declare interface Book { + /** + * Written or printed work consisting of pages bound together, covering various subjects or stories. + * @returns a random book + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.book.book()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Title":"The Brothers Karamazov","Author":"Albert Camus","Genre":"Urban"} + * ``` + */ + book(): Record; + + /** + * The individual who wrote or created the content of a book. + * @returns a random book author + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.book.bookAuthor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Edgar Allan Poe" + * ``` + */ + bookAuthor(): string; + + /** + * Category or type of book defined by its content, style, or form. + * @returns a random book genre + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.book.bookGenre()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Erotic" + * ``` + */ + bookGenre(): string; + + /** + * The specific name given to a book. + * @returns a random book title + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.book.bookTitle()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "The Brothers Karamazov" + * ``` + */ + bookTitle(): string; +} + +/** + * Generator to generate car related entries. + */ +export declare interface Car { + /** + * Wheeled motor vehicle used for transportation. + * @returns a random car + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.car.car()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Type":"Passenger car compact","Fuel":"CNG","Transmission":"Automatic","Brand":"Daewoo","Model":"Thunderbird","Year":1905} + * ``` + */ + car(): Record; + + /** + * Type of energy source a car uses. + * @returns a random car fuel type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.car.carFuelType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Ethanol" + * ``` + */ + carFuelType(): string; + + /** + * Company or brand that manufactures and designs cars. + * @returns a random car maker + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.car.carMaker()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Lancia" + * ``` + */ + carMaker(): string; + + /** + * Specific design or version of a car produced by a manufacturer. + * @returns a random car model + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.car.carModel()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Tucson 4wd" + * ``` + */ + carModel(): string; + + /** + * Mechanism a car uses to transmit power from the engine to the wheels. + * @returns a random car transmission type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.car.carTransmissionType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Manual" + * ``` + */ + carTransmissionType(): string; + + /** + * Classification of cars based on size, use, or body style. + * @returns a random car type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.car.carType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Passenger car compact" + * ``` + */ + carType(): string; +} + +/** + * Generator to generate celebrities. + */ +export declare interface Celebrity { + /** + * Famous person known for acting in films, television, or theater. + * @returns a random celebrity actor + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.celebrity.celebrityActor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Ben Affleck" + * ``` + */ + celebrityActor(): string; + + /** + * High-profile individual known for significant achievements in business or entrepreneurship. + * @returns a random celebrity business + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.celebrity.celebrityBusiness()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Larry Ellison" + * ``` + */ + celebrityBusiness(): string; + + /** + * Famous athlete known for achievements in a particular sport. + * @returns a random celebrity sport + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.celebrity.celebritySport()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Greg Lemond" + * ``` + */ + celebritySport(): string; +} + +/** + * Generator to generate colors. + */ +export declare interface Color { + /** + * Hue seen by the eye, returns the name of the color like red or blue. + * @returns a random color + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.color.color()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "MediumVioletRed" + * ``` + */ + color(): string; + + /** + * Six-digit code representing a color in the color model. + * @returns a random hex color + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.color.hexColor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "#bd38ac" + * ``` + */ + hexColor(): string; + + /** + * Attractive and appealing combinations of colors, returns an list of color hex codes. + * @returns a random nice colors + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.color.niceColors()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "MediumVioletRed" + * ``` + */ + niceColors(): string[]; + + /** + * Color defined by red, green, and blue light values. + * @returns a random rgb color + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.color.rgbColor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * [13,150,143] + * ``` + */ + rgbColor(): number[]; + + /** + * Colors displayed consistently on different web browsers and devices. + * @returns a random safe color + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.color.safeColor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "black" + * ``` + */ + safeColor(): string; +} + +/** + * Generator to generate company related entries. + */ +export declare interface Company { + /** + * Brief description or summary of a company's purpose, products, or services. + * @returns a random blurb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.company.blurb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Pride" + * ``` + */ + blurb(): string; + + /** + * Random bs company word. + * @returns a random bs + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.company.bs()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "24-7" + * ``` + */ + bs(): string; + + /** + * Trendy or overused term often used in business to sound impressive. + * @returns a random buzzword + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.company.buzzword()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Reverse-engineered" + * ``` + */ + buzzword(): string; + + /** + * Designated official name of a business or organization. + * @returns a random company + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.company.company()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Xatori" + * ``` + */ + company(): string; + + /** + * Suffix at the end of a company name, indicating business structure, like 'Inc.' or 'LLC'. + * @returns a random company suffix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.company.companySuffix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "LLC" + * ``` + */ + companySuffix(): string; + + /** + * Position or role in employment, involving specific tasks and responsibilities. + * @returns a random job + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.company.job()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Company":"Xatori","Title":"Representative","Descriptor":"Future","Level":"Tactics"} + * ``` + */ + job(): Record; + + /** + * Word used to describe the duties, requirements, and nature of a job. + * @returns a random job descriptor + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.company.jobDescriptor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Internal" + * ``` + */ + jobDescriptor(): string; + + /** + * Random job level. + * @returns a random job level + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.company.jobLevel()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Identity" + * ``` + */ + jobLevel(): string; + + /** + * Specific title for a position or role within a company or organization. + * @returns a random job title + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.company.jobTitle()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Representative" + * ``` + */ + jobTitle(): string; + + /** + * Catchphrase or motto used by a company to represent its brand or values. + * @returns a random slogan + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.company.slogan()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Pride. De-engineered!" + * ``` + */ + slogan(): string; +} + +/** + * Generator to generate emoji related entries. + */ +export declare interface Emoji { + /** + * Digital symbol expressing feelings or ideas in text messages and online chats. + * @returns a random emoji + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.emoji.emoji()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "🐮" + * ``` + */ + emoji(): string; + + /** + * Alternative name or keyword used to represent a specific emoji in text or code. + * @returns a random emoji alias + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.emoji.emojiAlias()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "slovakia" + * ``` + */ + emojiAlias(): string; + + /** + * Group or classification of emojis based on their common theme or use, like 'smileys' or 'animals'. + * @returns a random emoji category + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.emoji.emojiCategory()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Smileys & Emotion" + * ``` + */ + emojiCategory(): string; + + /** + * Brief explanation of the meaning or emotion conveyed by an emoji. + * @returns a random emoji description + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.emoji.emojiDescription()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "disguised face" + * ``` + */ + emojiDescription(): string; + + /** + * Label or keyword associated with an emoji to categorize or search for it easily. + * @returns a random emoji tag + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.emoji.emojiTag()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "lick" + * ``` + */ + emojiTag(): string; +} + +/** + * Generator to generate various error codes and messages. + */ +export declare interface Error { + /** + * A problem or issue encountered while accessing or managing a database. + * @returns a random database error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.error.databaseError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + databaseError(): string; + + /** + * Message displayed by a computer or software when a problem or mistake is encountered. + * @returns a random error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.error.error()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + error(): string; + + /** + * Various categories conveying details about encountered errors. + * @returns a random error object word + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.error.errorObjectWord()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + errorObjectWord(): string; + + /** + * Communication failure in the high-performance, open-source universal RPC framework. + * @returns a random grpc error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.error.gRPCError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + gRPCError(): string; + + /** + * Failure or issue occurring within a client software that sends requests to web servers. + * @returns a random http client error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.error.httpClientError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + httpClientError(): string; + + /** + * A problem with a web http request. + * @returns a random http error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.error.httpError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + httpError(): string; + + /** + * Failure or issue occurring within a server software that recieves requests from clients. + * @returns a random http server error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.error.httpServerError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + httpServerError(): string; + + /** + * Malfunction occuring during program execution, often causing abrupt termination or unexpected behavior. + * @returns a random runtime error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.error.runtimeError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + runtimeError(): string; + + /** + * Occurs when input data fails to meet required criteria or format specifications. + * @returns a random validation error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.error.validationError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + validationError(): string; +} + +/** + * Generator to generate file related entries. + */ +export declare interface File { + /** + * Suffix appended to a filename indicating its format or type. + * @returns a random file extension + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.file.fileExtension()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "max" + * ``` + */ + fileExtension(): string; + + /** + * Defines file format and nature for browsers and email clients using standardized identifiers. + * @returns a random file mime type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.file.fileMimeType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "text/html" + * ``` + */ + fileMimeType(): string; +} + +/** + * Generator to generate finance related entries. + */ +export declare interface Finance { + /** + * Unique identifier for securities, especially bonds, in the United States and Canada. + * @returns a random cusip + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.finance.cusip()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "S4BL2MVY6" + * ``` + */ + cusip(): string; + + /** + * International standard code for uniquely identifying securities worldwide. + * @returns a random isin + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.finance.isin()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "GHS4BL2MVY68" + * ``` + */ + isin(): string; +} + +/** + * Generator to generate food related entries. + */ +export declare interface Food { + /** + * First meal of the day, typically eaten in the morning. + * @returns a random breakfast + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.food.breakfast()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Ham omelet deluxe" + * ``` + */ + breakfast(): string; + + /** + * Sweet treat often enjoyed after a meal. + * @returns a random dessert + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.food.dessert()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Lindas bloodshot eyeballs" + * ``` + */ + dessert(): string; + + /** + * Evening meal, typically the day's main and most substantial meal. + * @returns a random dinner + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.food.dinner()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Asian broccoli salad" + * ``` + */ + dinner(): string; + + /** + * Liquid consumed for hydration, pleasure, or nutritional benefits. + * @returns a random drink + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.food.drink()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Water" + * ``` + */ + drink(): string; + + /** + * Edible plant part, typically sweet, enjoyed as a natural snack or dessert. + * @returns a random fruit + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.food.fruit()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Avocado" + * ``` + */ + fruit(): string; + + /** + * Midday meal, often lighter than dinner, eaten around noon. + * @returns a random lunch + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.food.lunch()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Tortellini skewers" + * ``` + */ + lunch(): string; + + /** + * Random snack. + * @returns a random snack + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.food.snack()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Hoisin marinated wing pieces" + * ``` + */ + snack(): string; + + /** + * Edible plant or part of a plant, often used in savory cooking or salads. + * @returns a random vegetable + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.food.vegetable()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Broccoli" + * ``` + */ + vegetable(): string; +} + +/** + * Generator to generate game related entries. + */ +export declare interface Game { + /** + * Small, cube-shaped objects used in games of chance for random outcomes. + * @returns a random dice + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.game.dice(13,[5,4,13])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * [5,3,6,2,5,1,1,4,1,1,1,3,1] + * ``` + */ + dice(numdice: number, sides: number[]): number[]; + + /** + * User-selected online username or alias used for identification in games. + * @returns a random gamertag + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.game.gamertag()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "BraveArmadillo" + * ``` + */ + gamertag(): string; +} + +/** + * Generator to generate hacker/IT words and phrases. + */ +export declare interface Hacker { + /** + * Abbreviations and acronyms commonly used in the hacking and cybersecurity community. + * @returns a random hacker abbreviation + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.hacker.hackerAbbreviation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "GB" + * ``` + */ + hackerAbbreviation(): string; + + /** + * Adjectives describing terms often associated with hackers and cybersecurity experts. + * @returns a random hacker adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.hacker.hackerAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "auxiliary" + * ``` + */ + hackerAdjective(): string; + + /** + * Noun representing an element, tool, or concept within the realm of hacking and cybersecurity. + * @returns a random hacker noun + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.hacker.hackerNoun()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "application" + * ``` + */ + hackerNoun(): string; + + /** + * Informal jargon and slang used in the hacking and cybersecurity community. + * @returns a random hacker phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.hacker.hackerPhrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Try to transpile the EXE sensor, maybe it will deconstruct the wireless interface!" + * ``` + */ + hackerPhrase(): string; + + /** + * Verbs associated with actions and activities in the field of hacking and cybersecurity. + * @returns a random hacker verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.hacker.hackerVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "read" + * ``` + */ + hackerVerb(): string; + + /** + * Verb describing actions and activities related to hacking, often involving computer systems and security. + * @returns a random hackering verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.hacker.hackeringVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "quantifying" + * ``` + */ + hackeringVerb(): string; +} + +/** + * Generator to generate hipster words, phrases and paragraphs. + */ +export declare interface Hipster { + /** + * Paragraph showcasing the use of trendy and unconventional vocabulary associated with hipster culture. + * @returns a random hipster paragraph + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.hipster.hipsterParagraph(13,13,17,"\u003cbr /\u003e")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Offal forage pinterest direct trade pug skateboard food truck flannel cold-pressed church-key keffiyeh wolf pop-up jean shorts before they sold out hoodie roof. Portland intelligentsia gastropub tumblr try-hard offal pork belly jean shorts freegan umami marfa mumblecore food truck gluten-free stumptown keytar locavore. Organic forage post-ironic YOLO crucifix occupy deep v skateboard put a bird on it selvage cornhole 8-bit aesthetic squid tacos waistcoat forage. Food truck whatever YOLO sustainable normcore yr brunch keytar humblebrag pickled humblebrag pour-over drinking bicycle rights ethical pinterest crucifix. Cardigan paleo disrupt food truck hella Godard humblebrag keytar cornhole sriracha occupy twee bicycle rights kickstarter umami pabst wayfarers. Flannel pour-over truffaut cardigan salvia gastropub vinegar wayfarers schlitz loko meh pop-up iPhone stumptown cardigan mustache hashtag. Tofu tumblr green juice shoreditch skateboard tofu seitan tote bag readymade actually master gastropub banjo banjo artisan banh mi gastropub. Salvia tousled blog kale chips +1 taxidermy sustainable wolf mustache readymade microdosing kombucha hoodie ugh blue bottle goth humblebrag. Wayfarers truffaut bespoke irony vegan offal knausgaard kombucha Wes Anderson dreamcatcher readymade 8-bit pug shoreditch whatever bushwick letterpress. Knausgaard +1 occupy gastropub cronut disrupt VHS tousled plaid bushwick ramps biodiesel knausgaard venmo authentic neutra scenester. Tacos loko 90's austin gastropub deep v YOLO PBR&B hashtag polaroid mustache blue bottle occupy marfa messenger bag sustainable venmo. Photo booth cronut banjo portland paleo migas Wes Anderson etsy blog food truck keytar iPhone butcher fashion axe fashion axe pabst jean shorts. Street iPhone whatever selfies cred tattooed vice kogi Thundercats tumblr roof photo booth you probably haven't heard of them +1 shoreditch whatever VHS.
Marfa keffiyeh trust fund meh quinoa street loko trust fund bitters pitchfork literally pop-up swag crucifix mustache etsy chartreuse. Crucifix skateboard authentic pop-up vinyl truffaut crucifix aesthetic pour-over artisan occupy tote bag vice hoodie truffaut cold-pressed semiotics. Hella seitan umami stumptown waistcoat hashtag ramps shoreditch whatever artisan pug taxidermy cornhole Godard narwhal synth art party. Tacos letterpress tofu letterpress pork belly chicharrones irony occupy pug sartorial slow-carb carry pork belly authentic kale chips fanny pack shabby chic. Chicharrones shabby chic lumbersexual helvetica mumblecore loko cold-pressed fashion axe forage distillery fingerstache franzen wayfarers ethical street shoreditch lo-fi. Pickled goth hella pop-up wolf banjo chartreuse you probably haven't heard of them twee selfies street meggings locavore you probably haven't heard of them irony cronut drinking. Kickstarter kombucha semiotics hashtag typewriter cornhole flexitarian ugh selfies next level waistcoat bicycle rights you probably haven't heard of them beard offal keytar letterpress. Post-ironic occupy locavore bespoke ugh yr gastropub vice tattooed fingerstache organic wayfarers narwhal gentrify try-hard sustainable pork belly. Vinyl jean shorts raw denim vinegar iPhone try-hard distillery meh fingerstache tattooed five dollar toast chia gluten-free schlitz pitchfork aesthetic sustainable. Messenger bag selvage vinegar try-hard tumblr squid kickstarter crucifix brooklyn put a bird on it plaid flexitarian gastropub hashtag meggings dreamcatcher tilde. Poutine disrupt loko food truck sriracha stumptown 90's Wes Anderson keffiyeh swag photo booth trust fund master tattooed ramps actually pour-over. Scenester goth gluten-free carry listicle Godard salvia XOXO everyday tousled raw denim normcore irony iPhone dreamcatcher taxidermy drinking. Umami green juice food truck helvetica slow-carb cronut vinegar typewriter ethical mustache hoodie sustainable cleanse typewriter echo cronut organic.
Typewriter ennui pork belly street swag sriracha ramps tilde sustainable tousled pug hashtag typewriter hashtag dreamcatcher cray literally. Master listicle salvia wolf banjo flannel cornhole tote bag try-hard flexitarian seitan pabst normcore austin polaroid XOXO brooklyn. Slow-carb salvia put a bird on it cardigan hella pickled polaroid tilde pabst fixie neutra tofu 8-bit freegan distillery microdosing craft beer. Viral five dollar toast sustainable Wes Anderson green juice etsy +1 squid cray pork belly jean shorts distillery bicycle rights banjo humblebrag ugh raw denim. Pabst asymmetrical lomo lumbersexual 90's chartreuse messenger bag try-hard bicycle rights literally bespoke five dollar toast quinoa intelligentsia jean shorts lumbersexual whatever. Cardigan slow-carb celiac meh tattooed biodiesel organic carry cornhole ennui tumblr humblebrag YOLO beard 8-bit tilde bicycle rights. Blue bottle PBR&B cleanse Wes Anderson marfa fanny pack blue bottle church-key chartreuse portland shoreditch crucifix iPhone direct trade everyday cliche 8-bit. Butcher mixtape church-key migas readymade shabby chic tacos Thundercats 8-bit forage sustainable salvia heirloom williamsburg trust fund forage austin. Keffiyeh post-ironic occupy knausgaard kitsch chillwave cornhole meggings single-origin coffee cronut intelligentsia VHS occupy poutine PBR&B brunch knausgaard. Keytar DIY knausgaard salvia poutine cray blue bottle biodiesel umami trust fund slow-carb distillery celiac biodiesel dreamcatcher park photo booth. Kinfolk brunch hella chia hammock ugh +1 farm-to-table XOXO loko green juice meggings intelligentsia cornhole brooklyn loko vegan. Cliche ennui pork belly migas biodiesel truffaut irony small batch synth goth artisan post-ironic 3 wolf moon church-key tote bag bicycle rights PBR&B. Cold-pressed occupy put a bird on it brunch cronut farm-to-table lumbersexual carry 90's artisan flannel 8-bit williamsburg leggings viral mustache selvage.
Loko yr distillery offal truffaut pour-over +1 Yuccie mumblecore ugh scenester try-hard iPhone kombucha hoodie franzen irony. Sustainable 90's Yuccie retro squid authentic loko fixie polaroid Thundercats +1 kitsch paleo selfies tousled messenger bag slow-carb. Fanny pack selvage plaid photo booth asymmetrical stumptown polaroid echo squid artisan bushwick neutra knausgaard pour-over pour-over ugh meh. Wes Anderson portland carry selvage schlitz authentic cronut +1 kogi ennui vegan bicycle rights organic vice lumbersexual shabby chic meggings. Leggings literally fingerstache brooklyn bicycle rights keffiyeh ennui Yuccie pop-up hammock mustache kombucha banjo vice 90's Wes Anderson celiac. Put a bird on it fanny pack neutra keytar wayfarers meh cold-pressed flexitarian mlkshk keffiyeh XOXO Yuccie chambray raw denim tote bag skateboard normcore. Synth photo booth chillwave flannel before they sold out tacos typewriter distillery 90's biodiesel vinyl YOLO try-hard lomo put a bird on it pour-over chicharrones. Vice next level narwhal XOXO portland vinyl Godard sustainable marfa master mustache seitan trust fund hella sartorial try-hard blue bottle. Locavore literally irony polaroid tofu selfies VHS church-key Yuccie tousled street health +1 whatever blue bottle chambray narwhal. Aesthetic offal cronut try-hard letterpress tote bag slow-carb gastropub pinterest cliche hoodie craft beer green juice gentrify mumblecore iPhone butcher. Marfa mlkshk goth direct trade aesthetic kinfolk franzen Godard fashion axe heirloom bicycle rights tousled art party master selfies master truffaut. XOXO ugh occupy wolf loko celiac helvetica street fingerstache plaid lumbersexual typewriter park messenger bag fashion axe freegan neutra. Disrupt helvetica pinterest meggings before they sold out sriracha VHS listicle trust fund street echo truffaut brunch loko pop-up vegan single-origin coffee.
Meditation mlkshk trust fund swag roof asymmetrical venmo hella waistcoat hashtag brunch mixtape celiac chartreuse intelligentsia occupy cardigan. Blue bottle plaid cray pinterest 90's wayfarers meggings everyday DIY swag flannel distillery roof skateboard venmo truffaut craft beer. Flexitarian skateboard marfa lomo Yuccie franzen pabst portland pork belly pour-over bespoke cold-pressed everyday organic venmo 90's banjo. Normcore kombucha biodiesel pop-up kogi sriracha 8-bit distillery dreamcatcher iPhone tofu migas chillwave viral photo booth seitan cred. Jean shorts +1 raw denim williamsburg offal cray church-key listicle venmo direct trade Yuccie readymade polaroid shoreditch twee next level cred. Cardigan salvia meggings vice butcher authentic butcher pinterest photo booth try-hard loko bushwick tilde tousled lumbersexual gastropub occupy. Freegan irony microdosing poutine retro wayfarers goth intelligentsia artisan pabst hammock before they sold out bitters brunch try-hard tacos polaroid. Migas slow-carb art party hammock art party slow-carb celiac mlkshk shabby chic tacos chicharrones scenester lo-fi pickled actually disrupt vice. Cray taxidermy crucifix artisan meditation quinoa street loko austin everyday DIY waistcoat sustainable lo-fi organic forage pitchfork. Retro etsy you probably haven't heard of them synth pork belly pabst flannel distillery Godard knausgaard loko actually iPhone Godard scenester DIY offal. Health meh twee williamsburg you probably haven't heard of them organic listicle swag bicycle rights austin YOLO ethical mixtape cray sustainable austin neutra. Narwhal tote bag cred art party cliche cardigan leggings paleo hashtag fingerstache leggings carry ugh twee distillery mixtape mumblecore. Disrupt hoodie paleo selfies cliche ennui health truffaut single-origin coffee pabst franzen cold-pressed gluten-free banh mi small batch meh YOLO.
Health knausgaard vinegar intelligentsia art party venmo listicle heirloom post-ironic truffaut church-key knausgaard tousled chartreuse gentrify 90's beard. Drinking goth squid cray Wes Anderson kogi +1 polaroid umami humblebrag marfa marfa portland venmo lo-fi knausgaard microdosing. Mumblecore lumbersexual normcore banjo shabby chic umami Wes Anderson salvia pabst leggings locavore fixie ethical mixtape waistcoat trust fund art party. Church-key paleo mustache knausgaard flannel dreamcatcher forage humblebrag cardigan small batch truffaut viral freegan church-key austin tattooed kitsch. 8-bit brunch roof Godard Wes Anderson direct trade blue bottle cray lomo kogi kitsch Wes Anderson vinegar slow-carb sartorial bushwick vice. Bespoke twee before they sold out freegan drinking cred ugh umami photo booth intelligentsia truffaut beard leggings locavore asymmetrical pabst aesthetic. Pickled kinfolk helvetica 8-bit flexitarian VHS brooklyn art party wolf asymmetrical swag kitsch hoodie dreamcatcher post-ironic scenester butcher. Celiac portland food truck franzen celiac put a bird on it pour-over echo single-origin coffee ennui hashtag freegan readymade scenester master photo booth deep v. Narwhal lomo gastropub +1 tumblr semiotics schlitz bespoke salvia ethical post-ironic VHS green juice green juice pinterest schlitz cornhole. Fingerstache fanny pack distillery pickled 8-bit fanny pack pitchfork polaroid bushwick artisan Godard ugh irony meggings migas meditation crucifix. Hashtag cold-pressed you probably haven't heard of them asymmetrical five dollar toast messenger bag cray +1 lomo readymade shabby chic organic lomo retro flexitarian venmo heirloom. Photo booth hammock fashion axe slow-carb deep v cleanse hella vinyl organic Godard helvetica typewriter cold-pressed cray selvage readymade pour-over. Pork belly disrupt XOXO gentrify fanny pack pabst cliche brooklyn fashion axe pug whatever irony raw denim blue bottle schlitz etsy organic.
Forage seitan typewriter VHS kogi pickled umami neutra chicharrones banh mi pabst carry chillwave mlkshk shabby chic pour-over mustache. Quinoa wayfarers park vice iPhone authentic celiac literally lo-fi whatever seitan banjo taxidermy iPhone flannel mumblecore VHS. Pug twee slow-carb celiac chicharrones keffiyeh neutra roof skateboard biodiesel mlkshk pour-over schlitz before they sold out beard hella chillwave. Heirloom paleo flexitarian stumptown leggings mustache messenger bag everyday roof pickled selfies taxidermy direct trade asymmetrical you probably haven't heard of them green juice bushwick. Waistcoat chia lomo tofu carry DIY franzen iPhone viral humblebrag vinegar forage dreamcatcher street aesthetic narwhal ramps. Bitters neutra cardigan cardigan 90's taxidermy retro swag VHS everyday meditation portland scenester tattooed salvia goth small batch. Neutra migas intelligentsia cred craft beer intelligentsia five dollar toast irony locavore etsy pug scenester pickled slow-carb +1 pabst scenester. Farm-to-table chartreuse occupy swag semiotics farm-to-table cred etsy readymade vice mumblecore organic put a bird on it street next level brooklyn pork belly. Trust fund pour-over park before they sold out meditation art party narwhal pork belly bicycle rights swag trust fund Yuccie loko ramps green juice intelligentsia etsy. Mustache tumblr chillwave cornhole single-origin coffee meh umami schlitz microdosing selvage synth 8-bit carry fanny pack VHS tacos sartorial. Asymmetrical organic austin put a bird on it direct trade park flexitarian cred deep v echo tote bag ramps pitchfork kombucha mixtape stumptown intelligentsia. Skateboard paleo hammock offal direct trade asymmetrical Godard tilde cornhole brunch biodiesel hashtag venmo blog sustainable shoreditch street. Shoreditch migas helvetica cornhole hoodie heirloom hashtag fashion axe mixtape 3 wolf moon cliche microdosing crucifix vinegar roof pickled you probably haven't heard of them.
Cliche carry kickstarter hella VHS asymmetrical cray park +1 sustainable crucifix actually direct trade meditation vinyl trust fund shabby chic. Lo-fi crucifix pickled fanny pack synth heirloom meditation synth food truck selfies flexitarian cleanse pickled banjo beard selvage selvage. Fingerstache vinyl asymmetrical Wes Anderson craft beer hella Wes Anderson pug ramps offal freegan mustache cred hammock deep v gentrify knausgaard. Hella viral vinegar food truck green juice tote bag try-hard banh mi direct trade readymade gastropub semiotics raw denim banh mi truffaut vinegar butcher. Waistcoat helvetica freegan goth salvia pop-up pabst viral cliche put a bird on it yr venmo celiac pop-up selvage sartorial helvetica. Selvage sriracha microdosing you probably haven't heard of them readymade polaroid art party pug +1 everyday truffaut messenger bag meggings tote bag tousled fashion axe tilde. Gluten-free paleo asymmetrical dreamcatcher vegan 90's etsy tousled kogi 90's occupy brooklyn asymmetrical XOXO humblebrag ennui Wes Anderson. Asymmetrical austin mixtape austin butcher post-ironic trust fund knausgaard beard raw denim narwhal tacos paleo pabst franzen ugh kinfolk. Wes Anderson master swag chillwave beard pour-over tote bag vice etsy cronut migas umami microdosing fanny pack YOLO tilde meggings. Cronut seitan aesthetic kogi narwhal ennui yr put a bird on it sustainable mumblecore readymade ugh irony paleo +1 hella hella. Raw denim direct trade forage migas readymade kickstarter irony chartreuse intelligentsia pop-up +1 etsy fixie pitchfork pickled semiotics church-key. Fanny pack quinoa occupy bicycle rights meh mustache whatever fanny pack cold-pressed seitan bitters ethical seitan master kitsch bicycle rights cronut. Biodiesel Yuccie hoodie Wes Anderson flexitarian vinyl cliche gastropub occupy letterpress polaroid artisan mixtape everyday semiotics umami church-key.
Waistcoat craft beer single-origin coffee forage freegan vinegar ethical portland brunch try-hard farm-to-table venmo semiotics banh mi hashtag brunch mustache. Trust fund cornhole carry portland brunch Wes Anderson tacos trust fund messenger bag beard sartorial VHS PBR&B swag tilde keffiyeh meh. Five dollar toast twee listicle quinoa umami quinoa kale chips cardigan loko XOXO vice ennui wayfarers pop-up locavore keffiyeh narwhal. Lo-fi tumblr meggings farm-to-table semiotics knausgaard skateboard art party seitan celiac austin cardigan YOLO gluten-free tousled banh mi irony. Normcore truffaut chambray locavore gentrify meh cred vice art party leggings blog gentrify heirloom chicharrones vinegar tacos trust fund. Vice DIY skateboard tattooed offal meditation occupy ramps wayfarers fanny pack farm-to-table craft beer sartorial fanny pack humblebrag meggings XOXO. Tote bag gastropub cardigan kickstarter DIY franzen pour-over vinegar street ennui gastropub neutra retro lomo banjo hashtag bespoke. Fanny pack flexitarian swag bespoke biodiesel pug lumbersexual food truck Wes Anderson farm-to-table keffiyeh blog cardigan jean shorts beard artisan meditation. Everyday shoreditch flexitarian master pour-over cornhole vinyl viral butcher bushwick hoodie pug kickstarter brooklyn marfa cold-pressed tousled. Umami roof master bitters brooklyn tattooed organic williamsburg irony narwhal literally pinterest jean shorts intelligentsia taxidermy brooklyn tumblr. DIY neutra umami pug brooklyn heirloom art party chambray leggings fashion axe disrupt YOLO selvage taxidermy gastropub venmo cold-pressed. Asymmetrical carry austin stumptown cardigan banjo kitsch 3 wolf moon chicharrones DIY kogi gastropub crucifix truffaut 8-bit flannel sriracha. Tilde scenester goth taxidermy kale chips shoreditch food truck venmo gluten-free +1 pop-up seitan echo salvia church-key lomo waistcoat.
Thundercats pabst listicle chartreuse tilde irony umami carry banjo organic pop-up fashion axe roof scenester intelligentsia cardigan carry. Marfa schlitz photo booth retro shabby chic PBR&B cold-pressed cred pop-up truffaut yr swag kombucha you probably haven't heard of them DIY health venmo. Organic williamsburg literally viral mumblecore farm-to-table church-key leggings hella photo booth viral knausgaard organic kombucha paleo venmo before they sold out. Plaid blog park XOXO deep v vegan distillery irony slow-carb blue bottle scenester iPhone tumblr listicle selfies mlkshk drinking. Lo-fi pug kogi leggings williamsburg distillery YOLO farm-to-table selvage street vinegar whatever VHS you probably haven't heard of them master helvetica viral. Pour-over everyday blue bottle cold-pressed green juice kinfolk sustainable art party synth shoreditch +1 asymmetrical mixtape mixtape kogi cardigan fanny pack. Meggings scenester butcher fanny pack pinterest humblebrag locavore chillwave tousled pitchfork migas listicle flannel loko shoreditch authentic goth. Kinfolk celiac skateboard franzen bicycle rights readymade helvetica selvage chillwave distillery pickled franzen pitchfork taxidermy cold-pressed whatever pug. Sustainable you probably haven't heard of them neutra occupy pop-up health twee lumbersexual umami leggings vegan scenester listicle listicle celiac franzen ennui. Crucifix synth narwhal mustache next level poutine brooklyn cred cliche tacos food truck tumblr wayfarers mixtape health skateboard health. Flexitarian listicle aesthetic pork belly blue bottle williamsburg kale chips taxidermy synth try-hard echo neutra waistcoat loko cliche portland blue bottle. Gluten-free kogi 8-bit ethical wolf VHS shoreditch forage chartreuse mlkshk bitters single-origin coffee hoodie schlitz meditation 3 wolf moon blog. Typewriter roof umami meditation fashion axe plaid cornhole cardigan gastropub mumblecore kale chips pabst irony cornhole street master craft beer.
Mlkshk ugh tumblr knausgaard YOLO drinking pabst selfies marfa polaroid farm-to-table kinfolk artisan freegan disrupt tousled butcher. Messenger bag truffaut pour-over umami 90's cleanse meh vegan helvetica cleanse readymade chicharrones locavore quinoa narwhal banh mi YOLO. Crucifix put a bird on it Yuccie hella vinyl synth knausgaard gluten-free chambray freegan normcore scenester vinegar lumbersexual vinyl next level street. Paleo organic pork belly hashtag shoreditch blog austin heirloom offal put a bird on it readymade dreamcatcher cleanse blog yr before they sold out asymmetrical. Hashtag meggings banjo tote bag PBR&B mustache etsy microdosing trust fund jean shorts beard tilde vinegar humblebrag ennui meggings fixie. Quinoa pug pork belly keffiyeh irony blue bottle typewriter photo booth banh mi hoodie pickled beard bushwick slow-carb kogi meggings literally. Normcore YOLO etsy pop-up kickstarter hashtag cardigan quinoa yr lo-fi craft beer pinterest pop-up wayfarers selvage blog shoreditch. Seitan pug hella biodiesel synth mixtape everyday wayfarers hella chicharrones banjo craft beer direct trade direct trade tilde intelligentsia loko. Skateboard twee gentrify you probably haven't heard of them fingerstache single-origin coffee meditation trust fund occupy vice waistcoat wolf whatever viral synth asymmetrical poutine. Squid vice intelligentsia tote bag roof quinoa butcher flannel listicle helvetica bespoke retro tacos mustache green juice echo occupy. Deep v before they sold out tote bag bicycle rights 90's slow-carb schlitz actually 90's gentrify letterpress shabby chic shabby chic iPhone lo-fi trust fund cleanse. Typewriter fixie try-hard meggings health flannel cliche kale chips 90's butcher tousled crucifix slow-carb blog actually wolf dreamcatcher. Flexitarian shabby chic asymmetrical synth Yuccie blue bottle 3 wolf moon pour-over etsy fingerstache vice tattooed celiac +1 normcore gastropub keytar.
+1 cred selvage cornhole taxidermy biodiesel marfa cronut brunch art party selfies helvetica before they sold out Yuccie tote bag synth you probably haven't heard of them. Pug humblebrag marfa ethical twee drinking messenger bag direct trade chillwave kale chips freegan flexitarian waistcoat brooklyn intelligentsia hoodie waistcoat. Wayfarers sartorial before they sold out kickstarter irony kogi messenger bag chia iPhone flexitarian stumptown tumblr hammock bicycle rights marfa skateboard brunch. Lomo ethical +1 kombucha vegan pour-over taxidermy small batch 8-bit disrupt normcore knausgaard twee locavore flexitarian hoodie art party. Five dollar toast offal mustache typewriter vice iPhone synth etsy vinegar cred next level aesthetic farm-to-table sustainable before they sold out cray truffaut. Street helvetica fixie synth vinegar poutine pabst twee lumbersexual intelligentsia roof food truck chia tilde jean shorts synth carry. Pabst gastropub swag pork belly direct trade paleo mustache flannel hella migas ramps semiotics brooklyn chia ennui next level Yuccie. Shoreditch synth pabst tattooed williamsburg church-key Godard skateboard chillwave trust fund street carry chicharrones viral Yuccie tacos hella. Biodiesel twee synth shabby chic microdosing jean shorts sustainable umami meggings pitchfork keytar fashion axe flexitarian celiac paleo banjo chia. Viral semiotics roof green juice pork belly single-origin coffee paleo artisan cold-pressed fashion axe wolf small batch craft beer cornhole church-key squid irony. Biodiesel polaroid jean shorts 8-bit hashtag craft beer sustainable PBR&B retro church-key everyday fashion axe seitan actually actually brooklyn chillwave. Aesthetic yr bitters blog offal cred next level chartreuse sartorial organic synth kale chips wayfarers pabst actually mustache tofu. Viral migas polaroid iPhone meditation street schlitz etsy fanny pack brooklyn viral vice chia pitchfork messenger bag master chartreuse.
Flexitarian trust fund flannel chillwave cardigan pickled cray biodiesel single-origin coffee gastropub authentic pop-up church-key echo celiac meh YOLO. Knausgaard crucifix iPhone hoodie hella knausgaard paleo cray roof messenger bag cliche yr cronut ramps wayfarers meggings artisan. Banh mi tumblr slow-carb next level PBR&B selfies chartreuse quinoa brunch trust fund etsy PBR&B truffaut shabby chic Yuccie whatever distillery. Small batch hella kale chips master ramps organic 8-bit raw denim knausgaard chartreuse banh mi meditation meh occupy mustache gastropub williamsburg. PBR&B sriracha skateboard art party bushwick ugh bitters actually vegan selvage photo booth vinyl sartorial hoodie flexitarian ennui keffiyeh. Fanny pack neutra drinking flannel hammock selfies food truck slow-carb slow-carb artisan loko kinfolk pickled health franzen art party tilde. Bitters swag cronut slow-carb meditation stumptown vinegar chillwave helvetica bicycle rights literally flexitarian lomo franzen skateboard master roof. Cliche vegan schlitz artisan brooklyn heirloom pabst drinking slow-carb tilde chambray master helvetica irony fingerstache semiotics hoodie. Hella Thundercats post-ironic pinterest mixtape irony messenger bag intelligentsia franzen meh fanny pack neutra deep v deep v asymmetrical synth actually. Health messenger bag umami whatever marfa try-hard waistcoat leggings offal bushwick beard chillwave letterpress helvetica kombucha pug heirloom. Fingerstache asymmetrical kitsch ethical ennui green juice waistcoat church-key cleanse butcher viral chia ethical bushwick kale chips listicle salvia. Portland five dollar toast disrupt asymmetrical neutra green juice waistcoat 3 wolf moon polaroid actually fixie cornhole banjo lo-fi distillery disrupt loko. Sriracha tofu try-hard green juice waistcoat selvage cold-pressed next level selfies raw denim quinoa distillery freegan chicharrones butcher skateboard pickled." + * ``` + */ + hipsterParagraph(paragraphcount: number, sentencecount: number, wordcount: number, paragraphseparator: string): string; + + /** + * Sentence showcasing the use of trendy and unconventional vocabulary associated with hipster culture. + * @returns a random hipster sentence + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.hipster.hipsterSentence(13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Offal forage pinterest direct trade pug skateboard food truck flannel cold-pressed church-key keffiyeh wolf pop-up." + * ``` + */ + hipsterSentence(wordcount: number): string; + + /** + * Trendy and unconventional vocabulary used by hipsters to express unique cultural preferences. + * @returns a random hipster word + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.hipster.hipsterWord()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "offal" + * ``` + */ + hipsterWord(): string; +} + +/** + * Generator to generate internet related entries. + */ +export declare interface Internet { + /** + * The specific identification string sent by the Google Chrome web browser when making requests on the internet. + * @returns a random chrome user agent + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.chromeUserAgent()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mozilla/5.0 (X11; Linux i686) AppleWebKit/5340 (KHTML, like Gecko) Chrome/40.0.816.0 Mobile Safari/5340" + * ``` + */ + chromeUserAgent(): string; + + /** + * Human-readable web address used to identify websites on the internet. + * @returns a random domain name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.domainName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "internalenhance.org" + * ``` + */ + domainName(): string; + + /** + * The part of a domain name that comes after the last dot, indicating its type or purpose. + * @returns a random domain suffix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.domainSuffix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "info" + * ``` + */ + domainSuffix(): string; + + /** + * The specific identification string sent by the Firefox web browser when making requests on the internet. + * @returns a random firefox user agent + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.firefoxUserAgent()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_9_1 rv:5.0) Gecko/1979-07-30 Firefox/37.0" + * ``` + */ + firefoxUserAgent(): string; + + /** + * Verb used in HTTP requests to specify the desired action to be performed on a resource. + * @returns a random http method + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.httpMethod()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "HEAD" + * ``` + */ + httpMethod(): string; + + /** + * Random http status code. + * @returns a random http status code + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.httpStatusCode()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 400 + * ``` + */ + httpStatusCode(): number; + + /** + * Three-digit number returned by a web server to indicate the outcome of an HTTP request. + * @returns a random http status code simple + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.httpStatusCodeSimple()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 200 + * ``` + */ + httpStatusCodeSimple(): number; + + /** + * Number indicating the version of the HTTP protocol used for communication between a client and a server. + * @returns a random http version + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.httpVersion()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "HTTP/1.0" + * ``` + */ + httpVersion(): string; + + /** + * Web address pointing to an image file that can be accessed and displayed online. + * @returns a random image url + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.imageUrl(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "https://picsum.photos/13/13" + * ``` + */ + imageUrl(width: number, height: number): string; + + /** + * Attribute used to define the name of an input element in web forms. + * @returns a random input name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.inputName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "last_name" + * ``` + */ + inputName(): string; + + /** + * Numerical label assigned to devices on a network for identification and communication. + * @returns a random ipv4 address + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.ipv4Address()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "234.106.177.171" + * ``` + */ + ipv4Address(): string; + + /** + * Numerical label assigned to devices on a network, providing a larger address space than IPv4 for internet communication. + * @returns a random ipv6 address + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.ipv6Address()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "3aea:ef6a:38b1:7cab:7f0:946c:a3a9:cb90" + * ``` + */ + ipv6Address(): string; + + /** + * Classification used in logging to indicate the severity or priority of a log entry. + * @returns a random log level + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.logLevel()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "error" + * ``` + */ + logLevel(): string; + + /** + * Unique identifier assigned to network interfaces, often used in Ethernet networks. + * @returns a random mac address + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.macAddress()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "87:2d:cd:bc:0d:f3" + * ``` + */ + macAddress(): string; + + /** + * The specific identification string sent by the Opera web browser when making requests on the internet. + * @returns a random opera user agent + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.operaUserAgent()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Opera/10.45 (X11; Linux i686; en-US) Presto/2.13.288 Version/13.00" + * ``` + */ + operaUserAgent(): string; + + /** + * Secret word or phrase used to authenticate access to a system or account. + * @returns a random password + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.password(true,false,true,true,false,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "-8r34!z294x7h" + * ``` + */ + password(lower: boolean, upper: boolean, numeric: boolean, special: boolean, space: boolean, length: number): string; + + /** + * The specific identification string sent by the Safari web browser when making requests on the internet. + * @returns a random safari user agent + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.safariUserAgent()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mozilla/5.0 (iPhone; CPU iPhone OS 7_3_2 like Mac OS X; en-US) AppleWebKit/534.34.8 (KHTML, like Gecko) Version/3.0.5 Mobile/8B114 Safari/6534.34.8" + * ``` + */ + safariUserAgent(): string; + + /** + * Web address that specifies the location of a resource on the internet. + * @returns a random url + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.url()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "http://www.forwardtransition.biz/enhance/benchmark" + * ``` + */ + url(): string; + + /** + * String sent by a web browser to identify itself when requesting web content. + * @returns a random user agent + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.userAgent()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mozilla/5.0 (X11; Linux i686) AppleWebKit/5311 (KHTML, like Gecko) Chrome/37.0.834.0 Mobile Safari/5311" + * ``` + */ + userAgent(): string; + + /** + * Unique identifier assigned to a user for accessing an account or system. + * @returns a random username + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.internet.username()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Abshire5538" + * ``` + */ + username(): string; +} + +/** + * Generator to generate language related entries. + */ +export declare interface Language { + /** + * System of communication using symbols, words, and grammar to convey meaning between individuals. + * @returns a random language + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.language.language()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Esperanto" + * ``` + */ + language(): string; + + /** + * Shortened form of a language's name. + * @returns a random language abbreviation + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.language.languageAbbreviation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "eo" + * ``` + */ + languageAbbreviation(): string; + + /** + * Set of guidelines and standards for identifying and representing languages in computing and internet protocols. + * @returns a random language bcp + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.language.languageBcp()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "he-IL" + * ``` + */ + languageBcp(): string; + + /** + * Formal system of instructions used to create software and perform computational tasks. + * @returns a random programming language + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.language.programmingLanguage()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Ceylon" + * ``` + */ + programmingLanguage(): string; +} + +/** + * Generator to generate minecraft related entries. + */ +export declare interface Minecraft { + /** + * Non-hostile creatures in Minecraft, often used for resources and farming. + * @returns a random minecraft animal + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftAnimal()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "chicken" + * ``` + */ + minecraftAnimal(): string; + + /** + * Component of an armor set in Minecraft, such as a helmet, chestplate, leggings, or boots. + * @returns a random minecraft armor part + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftArmorPart()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "leggings" + * ``` + */ + minecraftArmorPart(): string; + + /** + * Classification system for armor sets in Minecraft, indicating their effectiveness and protection level. + * @returns a random minecraft armor tier + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftArmorTier()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "leather" + * ``` + */ + minecraftArmorTier(): string; + + /** + * Distinctive environmental regions in the game, characterized by unique terrain, vegetation, and weather. + * @returns a random minecraft biome + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftBiome()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "plain" + * ``` + */ + minecraftBiome(): string; + + /** + * Items used to change the color of various in-game objects. + * @returns a random minecraft dye + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftDye()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "purple" + * ``` + */ + minecraftDye(): string; + + /** + * Consumable items in Minecraft that provide nourishment to the player character. + * @returns a random minecraft food + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftFood()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "pufferfish" + * ``` + */ + minecraftFood(): string; + + /** + * Powerful hostile creature in the game, often found in challenging dungeons or structures. + * @returns a random minecraft mob boss + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftMobBoss()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "ender dragon" + * ``` + */ + minecraftMobBoss(): string; + + /** + * Aggressive creatures in the game that actively attack players when encountered. + * @returns a random minecraft mob hostile + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftMobHostile()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "blaze" + * ``` + */ + minecraftMobHostile(): string; + + /** + * Creature in the game that only becomes hostile if provoked, typically defending itself when attacked. + * @returns a random minecraft mob neutral + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftMobNeutral()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "dolphin" + * ``` + */ + minecraftMobNeutral(): string; + + /** + * Non-aggressive creatures in the game that do not attack players. + * @returns a random minecraft mob passive + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftMobPassive()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "axolotl" + * ``` + */ + minecraftMobPassive(): string; + + /** + * Naturally occurring minerals found in the game Minecraft, used for crafting purposes. + * @returns a random minecraft ore + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftOre()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "iron" + * ``` + */ + minecraftOre(): string; + + /** + * Items in Minecraft designed for specific tasks, including mining, digging, and building. + * @returns a random minecraft tool + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftTool()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "pickaxe" + * ``` + */ + minecraftTool(): string; + + /** + * The profession or occupation assigned to a villager character in the game. + * @returns a random minecraft villager job + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftVillagerJob()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "carpenter" + * ``` + */ + minecraftVillagerJob(): string; + + /** + * Measure of a villager's experience and proficiency in their assigned job or profession. + * @returns a random minecraft villager level + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftVillagerLevel()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "novice" + * ``` + */ + minecraftVillagerLevel(): string; + + /** + * Designated area or structure in Minecraft where villagers perform their job-related tasks and trading. + * @returns a random minecraft villager station + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftVillagerStation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "lectern" + * ``` + */ + minecraftVillagerStation(): string; + + /** + * Tools and items used in Minecraft for combat and defeating hostile mobs. + * @returns a random minecraft weapon + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftWeapon()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "sword" + * ``` + */ + minecraftWeapon(): string; + + /** + * Atmospheric conditions in the game that include rain, thunderstorms, and clear skies, affecting gameplay and ambiance. + * @returns a random minecraft weather + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftWeather()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "clear" + * ``` + */ + minecraftWeather(): string; + + /** + * Natural resource in Minecraft, used for crafting various items and building structures. + * @returns a random minecraft wood + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.minecraft.minecraftWood()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "oak" + * ``` + */ + minecraftWood(): string; +} + +/** + * Generator to generate movie related entries. + */ +export declare interface Movie { + /** + * A story told through moving pictures and sound. + * @returns a random movie + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.movie.movie()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Name":"Sherlock Jr.","Genre":"Music"} + * ``` + */ + movie(): Record; + + /** + * Category that classifies movies based on common themes, styles, and storytelling approaches. + * @returns a random movie genre + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.movie.movieGenre()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Film-Noir" + * ``` + */ + movieGenre(): string; + + /** + * Title or name of a specific film used for identification and reference. + * @returns a random movie name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.movie.movieName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Sherlock Jr." + * ``` + */ + movieName(): string; +} + +/** + * Generator to generate numbers. + */ +export declare interface Number { + /** + * Data type that represents one of two possible values, typically true or false. + * @returns a random boolean + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.boolean()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * true + * ``` + */ + boolean(): boolean; + + /** + * Data type representing floating-point numbers with 32 bits of precision in computing. + * @returns a random float32 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.float32()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 1.9168120387159532e+38 + * ``` + */ + float32(): number; + + /** + * Float32 value between given range. + * @returns a random float32 range + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.float32Range(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + float32Range(min: number, max: number): number; + + /** + * Data type representing floating-point numbers with 64 bits of precision in computing. + * @returns a random float64 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.float64()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 1.012641406418422e+308 + * ``` + */ + float64(): number; + + /** + * Float64 value between given range. + * @returns a random float64 range + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.float64Range(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + float64Range(min: number, max: number): number; + + /** + * Hexadecimal representation of an 128-bit unsigned integer. + * @returns a random hexuint128 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.hexUint128()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa1b0c903d687691402ee58a2330f9c5" + * ``` + */ + hexUint128(): string; + + /** + * Hexadecimal representation of an 16-bit unsigned integer. + * @returns a random hexuint16 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.hexUint16()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa1b" + * ``` + */ + hexUint16(): string; + + /** + * Hexadecimal representation of an 256-bit unsigned integer. + * @returns a random hexuint256 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.hexUint256()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa1b0c903d687691402ee58a2330f9c54b727953d2379f94d23ea4cdad195b6a" + * ``` + */ + hexUint256(): string; + + /** + * Hexadecimal representation of an 32-bit unsigned integer. + * @returns a random hexuint32 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.hexUint32()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa1b0c90" + * ``` + */ + hexUint32(): string; + + /** + * Hexadecimal representation of an 64-bit unsigned integer. + * @returns a random hexuint64 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.hexUint64()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa1b0c903d687691" + * ``` + */ + hexUint64(): string; + + /** + * Hexadecimal representation of an 8-bit unsigned integer. + * @returns a random hexuint8 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.hexUint8()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa" + * ``` + */ + hexUint8(): string; + + /** + * Signed 16-bit integer, capable of representing values from 32,768 to 32,767. + * @returns a random int16 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.int16()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * -4595 + * ``` + */ + int16(): number; + + /** + * Signed 32-bit integer, capable of representing values from -2,147,483,648 to 2,147,483,647. + * @returns a random int32 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.int32()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * -15831539 + * ``` + */ + int32(): number; + + /** + * Signed 64-bit integer, capable of representing values from -9,223,372,036,854,775,808 to -9,223,372,036,854,775,807. + * @returns a random int64 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.int64()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 5195529898953699000 + * ``` + */ + int64(): number; + + /** + * Signed 8-bit integer, capable of representing values from -128 to 127. + * @returns a random int8 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.int8()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * -115 + * ``` + */ + int8(): number; + + /** + * Integer value between given range. + * @returns a random intrange + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.intRange(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + intRange(min: number, max: number): number; + + /** + * Mathematical concept used for counting, measuring, and expressing quantities or values. + * @returns a random number + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.number(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + number(min: number, max: number): number; + + /** + * Randomly selected value from a slice of int. + * @returns a random random int + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.randomInt([14,8,13])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 14 + * ``` + */ + randomInt(ints: number[]): number; + + /** + * Randomly selected value from a slice of uint. + * @returns a random random uint + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.randomUint([14,8,13])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 14 + * ``` + */ + randomUint(uints: number[]): number; + + /** + * Shuffles an array of ints. + * @returns a random shuffle ints + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.shuffleInts([14,8,13])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * [8,13,14] + * ``` + */ + shuffleInts(ints: number[]): number[]; + + /** + * Unsigned 16-bit integer, capable of representing values from 0 to 65,535. + * @returns a random uint16 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.uint16()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 15082 + * ``` + */ + uint16(): number; + + /** + * Unsigned 32-bit integer, capable of representing values from 0 to 4,294,967,295. + * @returns a random uint32 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.uint32()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 2131652109 + * ``` + */ + uint32(): number; + + /** + * Unsigned 64-bit integer, capable of representing values from 0 to 18,446,744,073,709,551,615. + * @returns a random uint64 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.uint64()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 5195529898953699000 + * ``` + */ + uint64(): number; + + /** + * Unsigned 8-bit integer, capable of representing values from 0 to 255. + * @returns a random uint8 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.uint8()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 234 + * ``` + */ + uint8(): number; + + /** + * Non-negative integer value between given range. + * @returns a random uintrange + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.number.uintRange(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + uintRange(min: number, max: number): number; +} + +/** + * Generator to generate payment related entries. + */ +export declare interface Payment { + /** + * A bank account number used for Automated Clearing House transactions and electronic transfers. + * @returns a random ach account number + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.achAccountNumber()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "805388385166" + * ``` + */ + achAccountNumber(): string; + + /** + * Unique nine-digit code used in the U.S. for identifying the bank and processing electronic transactions. + * @returns a random ach routing number + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.achRoutingNumber()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "605388385" + * ``` + */ + achRoutingNumber(): string; + + /** + * Cryptographic identifier used to receive, store, and send Bitcoin cryptocurrency in a peer-to-peer network. + * @returns a random bitcoin address + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.bitcoinAddress()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "1t1xAUWhqY1QsZFAlYm6Z75zxerJ" + * ``` + */ + bitcoinAddress(): string; + + /** + * Secret, secure code that allows the owner to access and control their Bitcoin holdings. + * @returns a random bitcoin private key + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.bitcoinPrivateKey()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "5KgZY1TaSmxpQcUsBAkWXFnidi9UsGRsoQq3dWe4oZz5zrG9VVC" + * ``` + */ + bitcoinPrivateKey(): string; + + /** + * Plastic card allowing users to make purchases on credit, with payment due at a later date. + * @returns a random credit card + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.creditCard()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Type":"Mastercard","Number":"2713883851665706","Exp":"04/32","Cvv":"489"} + * ``` + */ + creditCard(): Record; + + /** + * Three or four-digit security code on a credit card used for online and remote transactions. + * @returns a random credit card cvv + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.creditCardCVV()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "405" + * ``` + */ + creditCardCVV(): string; + + /** + * Date when a credit card becomes invalid and cannot be used for transactions. + * @returns a random credit card exp + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.creditCardExp()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "10/27" + * ``` + */ + creditCardExp(): string; + + /** + * Month of the date when a credit card becomes invalid and cannot be used for transactions. + * @returns a random credit card exp month + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.creditCardExpMonth()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "07" + * ``` + */ + creditCardExpMonth(): string; + + /** + * Year of the date when a credit card becomes invalid and cannot be used for transactions. + * @returns a random credit card exp year + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.creditCardExpYear()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "25" + * ``` + */ + creditCardExpYear(): string; + + /** + * Unique numerical identifier on a credit card used for making electronic payments and transactions. + * @returns a random credit card number + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.creditCardNumber(["none","how","these","keep","trip","congolese","choir","computer","still","far"],["unless","army","party","riches","theirs","instead","here","mine","whichever","that"],false)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0" + * ``` + */ + creditCardNumber(types: string[], bins: string[], gaps: boolean): string; + + /** + * Unique numerical identifier on a credit card used for making electronic payments and transactions. + * @returns a random credit card number formatted + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.creditCardNumberFormatted()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "4111-1111-1111-1111" + * ``` + */ + creditCardNumberFormatted(): string; + + /** + * Classification of credit cards based on the issuing company. + * @returns a random credit card type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.creditCardType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mastercard" + * ``` + */ + creditCardType(): string; + + /** + * Medium of exchange, often in the form of paper money or coins, used for trade and transactions. + * @returns a random currency + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.currency()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Short":"VEF","Long":"Venezuela Bolivar"} + * ``` + */ + currency(): Record; + + /** + * Complete name of a specific currency used for official identification in financial transactions. + * @returns a random currency long + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.currencyLong()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Venezuela Bolivar" + * ``` + */ + currencyLong(): string; + + /** + * Short 3-letter word used to represent a specific currency. + * @returns a random currency short + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.currencyShort()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "VEF" + * ``` + */ + currencyShort(): string; + + /** + * The amount of money or value assigned to a product, service, or asset in a transaction. + * @returns a random price + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.payment.price(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + price(min: number, max: number): number; +} + +/** + * Generator to generate people's personal information. + */ +export declare interface Person { + /** + * Electronic mail used for sending digital messages and communication over the internet. + * @returns a random email + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.email()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "josiahthiel@luettgen.biz" + * ``` + */ + email(): string; + + /** + * The name given to a person at birth. + * @returns a random first name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.firstName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Josiah" + * ``` + */ + firstName(): string; + + /** + * Classification based on social and cultural norms that identifies an individual. + * @returns a random gender + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.gender()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "male" + * ``` + */ + gender(): string; + + /** + * An activity pursued for leisure and pleasure. + * @returns a random hobby + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.hobby()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Candy making" + * ``` + */ + hobby(): string; + + /** + * The family name or surname of an individual. + * @returns a random last name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.lastName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Abshire" + * ``` + */ + lastName(): string; + + /** + * Name between a person's first name and last name. + * @returns a random middle name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.middleName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Sage" + * ``` + */ + middleName(): string; + + /** + * The given and family name of an individual. + * @returns a random name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.name()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Josiah Thiel" + * ``` + */ + name(): string; + + /** + * A title or honorific added before a person's name. + * @returns a random name prefix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.namePrefix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mr." + * ``` + */ + namePrefix(): string; + + /** + * A title or designation added after a person's name. + * @returns a random name suffix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.nameSuffix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Sr." + * ``` + */ + nameSuffix(): string; + + /** + * Personal data, like name and contact details, used for identification and communication. + * @returns a random person + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.person()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"FirstName":"Josiah","LastName":"Thiel","Gender":"male","SSN":"558821916","Image":"https://picsum.photos/367/273","Hobby":"Winemaking","Job":{"Company":"Headlight","Title":"Administrator","Descriptor":"Chief","Level":"Configuration"},"Address":{"Address":"6992 Inletstad, Las Vegas, Rhode Island 82271","Street":"6992 Inletstad","City":"Las Vegas","State":"Rhode Island","Zip":"82271","Country":"Sweden","Latitude":-75.921372,"Longitude":109.436476},"Contact":{"Phone":"4361943393","Email":"janisbarrows@hessel.net"},"CreditCard":{"Type":"Discover","Number":"4525298222125328","Exp":"01/29","Cvv":"282"}} + * ``` + */ + person(): Record; + + /** + * Numerical sequence used to contact individuals via telephone or mobile devices. + * @returns a random phone + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.phone()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "7053883851" + * ``` + */ + phone(): string; + + /** + * Formatted phone number of a person. + * @returns a random phone formatted + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.phoneFormatted()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "1-053-883-8516" + * ``` + */ + phoneFormatted(): string; + + /** + * An institution for formal education and learning. + * @returns a random school + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.school()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Valley View Private Middle School" + * ``` + */ + school(): string; + + /** + * Unique nine-digit identifier used for government and financial purposes in the United States. + * @returns a random ssn + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.ssn()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "853698829" + * ``` + */ + ssn(): string; + + /** + * Randomly split people into teams. + * @returns a random teams + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.person.teams(["none","how","these","keep","trip","congolese","choir","computer","still","far"],["unless","army","party","riches","theirs","instead","here","mine","whichever","that"])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"army":["congolese"],"theirs":["still"],"whichever":["keep"],"unless":["these"],"party":["far"],"riches":["choir"],"instead":["trip"],"here":["computer"],"mine":["how"],"that":["none"]} + * ``` + */ + teams(people: string[], teams: string[]): Record>; +} + +/** + * Generator to generate product related entries. + */ +export declare interface Product { + /** + * An item created for sale or use. + * @returns a random product + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.product.product()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Name":"Quartz Teal Scale","Description":"Bravo mirror hundreds his party nobody. Anything wit she from above Chinese those choir toilet as you of other enormously.","Categories":["mobile phones","food and groceries","furniture"],"Price":82.9,"Features":["durable"],"Color":"green","Material":"bronze","UPC":"084020104876"} + * ``` + */ + product(): Record; + + /** + * Classification grouping similar products based on shared characteristics or functions. + * @returns a random product category + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.product.productCategory()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "mobile phones" + * ``` + */ + productCategory(): string; + + /** + * Explanation detailing the features and characteristics of a product. + * @returns a random product description + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.product.productDescription()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Up brace lung anyway then bravo mirror hundreds his party. Person anything wit she from above Chinese those choir toilet as you." + * ``` + */ + productDescription(): string; + + /** + * Specific characteristic of a product that distinguishes it from others products. + * @returns a random product feature + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.product.productFeature()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "touchscreen" + * ``` + */ + productFeature(): string; + + /** + * The substance from which a product is made, influencing its appearance, durability, and properties. + * @returns a random product material + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.product.productMaterial()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "alloy" + * ``` + */ + productMaterial(): string; + + /** + * Distinctive title or label assigned to a product for identification and marketing. + * @returns a random product name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.product.productName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Stream Gold Robot" + * ``` + */ + productName(): string; + + /** + * Standardized barcode used for product identification and tracking in retail and commerce. + * @returns a random product upc + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.product.productUpc()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "092964558555" + * ``` + */ + productUpc(): string; +} + +/** + * Generator to generate strings. + */ +export declare interface String { + /** + * Numerical symbol used to represent numbers. + * @returns a random digit + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.string.digit()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0" + * ``` + */ + digit(): string; + + /** + * string of length N consisting of ASCII digits. + * @returns a random digitn + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.string.digitN(13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0053883851665" + * ``` + */ + digitN(count: number): string; + + /** + * Character or symbol from the American Standard Code for Information Interchange (ASCII) character set. + * @returns a random letter + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.string.letter()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "W" + * ``` + */ + letter(): string; + + /** + * ASCII string with length N. + * @returns a random lettern + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.string.letterN(13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "WCpXcQhgfZWYH" + * ``` + */ + letterN(count: number): string; + + /** + * Replace ? with random generated letters. + * @returns a random lexify + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.string.lexify("none")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "none" + * ``` + */ + lexify(str: string): string; + + /** + * Replace # with random numerical values. + * @returns a random numerify + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.string.numerify("none")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "none" + * ``` + */ + numerify(str: string): string; + + /** + * Return a random string from a string array. + * @returns a random random string + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.string.randomString(["none","how","these","keep","trip","congolese","choir","computer","still","far"])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "none" + * ``` + */ + randomString(strs: string[]): string[]; + + /** + * Shuffle an array of strings. + * @returns a random shuffle strings + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.string.shuffleStrings(["none","how","these","keep","trip","congolese","choir","computer","still","far"])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * ["these","congolese","far","choir","still","trip","computer","how","keep","none"] + * ``` + */ + shuffleStrings(strs: string[]): string[]; + + /** + * 128-bit identifier used to uniquely identify objects or entities in computer systems. + * @returns a random uuid + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.string.uuid()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "ea6ab1ab-f06c-4990-835d-e628b7e659e1" + * ``` + */ + uuid(): string; +} + +/** + * Generator to generate time and date. + */ +export declare interface Time { + /** + * Representation of a specific day, month, and year, often used for chronological reference. + * @returns a random date + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.date("RFC3339")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "1953-05-18T03:42:08Z" + * ``` + */ + date(format: string): string; + + /** + * Random date between two ranges. + * @returns a random daterange + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.dateRange("1970-01-01","2024-03-13","yyyy-MM-dd")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "1974-03-22" + * ``` + */ + dateRange(startdate: string, enddate: string, format: string): string; + + /** + * 24-hour period equivalent to one rotation of Earth on its axis. + * @returns a random day + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.day()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 22 + * ``` + */ + day(): number; + + /** + * Date that has occurred after the current moment in time. + * @returns a random futuretime + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.futureTime()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "2024-03-14T03:32:19.302105549+01:00" + * ``` + */ + futureTime(): string; + + /** + * Unit of time equal to 60 minutes. + * @returns a random hour + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.hour()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 21 + * ``` + */ + hour(): number; + + /** + * Unit of time equal to 60 seconds. + * @returns a random minute + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.minute()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 9 + * ``` + */ + minute(): number; + + /** + * Division of the year, typically 30 or 31 days long. + * @returns a random month + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.month()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 10 + * ``` + */ + month(): string; + + /** + * String Representation of a month name. + * @returns a random month string + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.monthString()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "October" + * ``` + */ + monthString(): string; + + /** + * Unit of time equal to One billionth (10^-9) of a second. + * @returns a random nanosecond + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.nanosecond()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 953698829 + * ``` + */ + nanosecond(): number; + + /** + * Date that has occurred before the current moment in time. + * @returns a random pasttime + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.pastTime()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "2024-03-13T07:32:19.303043826+01:00" + * ``` + */ + pastTime(): string; + + /** + * Unit of time equal to 1/60th of a minute. + * @returns a random second + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.second()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 9 + * ``` + */ + second(): number; + + /** + * Region where the same standard time is used, based on longitudinal divisions of the Earth. + * @returns a random timezone + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.timezone()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Tonga Standard Time" + * ``` + */ + timezone(): string; + + /** + * Abbreviated 3-letter word of a timezone. + * @returns a random timezone abbreviation + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.timezoneAbbreviation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "TST" + * ``` + */ + timezoneAbbreviation(): string; + + /** + * Full name of a timezone. + * @returns a random timezone full + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.timezoneFull()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "(UTC+13:00) Nuku'alofa" + * ``` + */ + timezoneFull(): string; + + /** + * The difference in hours from Coordinated Universal Time (UTC) for a specific region. + * @returns a random timezone offset + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.timezoneOffset()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + timezoneOffset(): number; + + /** + * Geographic area sharing the same standard time. + * @returns a random timezone region + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.timezoneRegion()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Asia/Manila" + * ``` + */ + timezoneRegion(): string; + + /** + * Day of the week excluding the weekend. + * @returns a random weekday + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.weekday()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Sunday" + * ``` + */ + weekday(): string; + + /** + * Period of 365 days, the time Earth takes to orbit the Sun. + * @returns a random year + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.time.year()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 1979 + * ``` + */ + year(): number; +} + +/** + * Generator to generate words and sentences. + */ +export declare interface Word { + /** + * Verb Indicating a physical or mental action. + * @returns a random action verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.actionVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "smell" + * ``` + */ + actionVerb(): string; + + /** + * Word describing or modifying a noun. + * @returns a random adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.adjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "brave" + * ``` + */ + adjective(): string; + + /** + * Word that modifies verbs, adjectives, or other adverbs. + * @returns a random adverb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.adverb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "quickly" + * ``` + */ + adverb(): string; + + /** + * Adverb that indicates the degree or intensity of an action or adjective. + * @returns a random adverb degree + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.adverbDegree()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "pretty" + * ``` + */ + adverbDegree(): string; + + /** + * Adverb that specifies how often an action occurs with a clear frequency. + * @returns a random adverb frequency definite + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.adverbFrequencyDefinite()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "annually" + * ``` + */ + adverbFrequencyDefinite(): string; + + /** + * Adverb that specifies how often an action occurs without specifying a particular frequency. + * @returns a random adverb frequency indefinite + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.adverbFrequencyIndefinite()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "rarely" + * ``` + */ + adverbFrequencyIndefinite(): string; + + /** + * Adverb that describes how an action is performed. + * @returns a random adverb manner + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.adverbManner()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "sleepily" + * ``` + */ + adverbManner(): string; + + /** + * Phrase that modifies a verb, adjective, or another adverb, providing additional information.. + * @returns a random adverb phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.adverbPhrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "too cheerfully" + * ``` + */ + adverbPhrase(): string; + + /** + * Adverb that indicates the location or direction of an action. + * @returns a random adverb place + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.adverbPlace()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "east" + * ``` + */ + adverbPlace(): string; + + /** + * Adverb that specifies the exact time an action occurs. + * @returns a random adverb time definite + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.adverbTimeDefinite()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "now" + * ``` + */ + adverbTimeDefinite(): string; + + /** + * Adverb that gives a general or unspecified time frame. + * @returns a random adverb time indefinite + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.adverbTimeIndefinite()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "late" + * ``` + */ + adverbTimeIndefinite(): string; + + /** + * Statement or remark expressing an opinion, observation, or reaction. + * @returns a random comment + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.comment()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "wow" + * ``` + */ + comment(): string; + + /** + * Word used to connect words or sentences. + * @returns a random connective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.connective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "for another" + * ``` + */ + connective(): string; + + /** + * Connective word used to indicate a cause-and-effect relationship between events or actions. + * @returns a random connective casual + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.connectiveCasual()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "accordingly" + * ``` + */ + connectiveCasual(): string; + + /** + * Connective word used to indicate a comparison between two or more things. + * @returns a random connective comparitive + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.connectiveComparitive()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "yet" + * ``` + */ + connectiveComparitive(): string; + + /** + * Connective word used to express dissatisfaction or complaints about a situation. + * @returns a random connective complaint + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.connectiveComplaint()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "for example" + * ``` + */ + connectiveComplaint(): string; + + /** + * Connective word used to provide examples or illustrations of a concept or idea. + * @returns a random connective examplify + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.connectiveExamplify()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "accordingly" + * ``` + */ + connectiveExamplify(): string; + + /** + * Connective word used to list or enumerate items or examples. + * @returns a random connective listing + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.connectiveListing()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "for another" + * ``` + */ + connectiveListing(): string; + + /** + * Connective word used to indicate a temporal relationship between events or actions. + * @returns a random connective time + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.connectiveTime()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "until then" + * ``` + */ + connectiveTime(): string; + + /** + * Adjective used to point out specific things. + * @returns a random demonstrative adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.demonstrativeAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "these" + * ``` + */ + demonstrativeAdjective(): string; + + /** + * Adjective that provides detailed characteristics about a noun. + * @returns a random descriptive adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.descriptiveAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "elated" + * ``` + */ + descriptiveAdjective(): string; + + /** + * Auxiliary verb that helps the main verb complete the sentence. + * @returns a random helping verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.helpingVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "are" + * ``` + */ + helpingVerb(): string; + + /** + * Adjective describing a non-specific noun. + * @returns a random indefinite adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.indefiniteAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "somebody" + * ``` + */ + indefiniteAdjective(): string; + + /** + * Word expressing emotion. + * @returns a random interjection + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.interjection()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "wow" + * ``` + */ + interjection(): string; + + /** + * Adjective used to ask questions. + * @returns a random interrogative adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.interrogativeAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "what" + * ``` + */ + interrogativeAdjective(): string; + + /** + * Verb that does not require a direct object to complete its meaning. + * @returns a random intransitive verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.intransitiveVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "skip" + * ``` + */ + intransitiveVerb(): string; + + /** + * Verb that Connects the subject of a sentence to a subject complement. + * @returns a random linking verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.linkingVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "had" + * ``` + */ + linkingVerb(): string; + + /** + * Paragraph of the Lorem Ipsum placeholder text used in design and publishing. + * @returns a random lorem ipsum paragraph + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.loremIpsumParagraph(13,13,17,"\u003cbr /\u003e")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Accusamus et voluptatum voluptatem nisi nostrum atque molestias reprehenderit alias reiciendis ut eos ut ad ea magni. Recusandae id fuga ut rerum quia sit doloremque vero dolores temporibus non ipsum ipsam quis et fugiat. Necessitatibus voluptas et laborum et placeat eaque sit fuga ut dolore asperiores itaque nisi voluptas et autem. Quia doloremque laborum dolorem corporis excepturi dolor commodi dolorem totam inventore cum aut autem odit consequuntur temporibus. Maxime consequatur quo perferendis error alias minus reiciendis voluptates possimus voluptas aut possimus doloribus corporis commodi natus. Est adipisci doloremque ut quia impedit eius expedita adipisci sed facere velit odit ut tempore fuga veritatis. A debitis unde sunt non voluptatibus dolorum sapiente nemo ratione et voluptas tempore eum possimus culpa nobis. Officiis ut voluptatem voluptas aut culpa ullam numquam deleniti non tenetur accusamus ullam illum voluptatem beatae voluptas. Unde cupiditate incidunt ut id deserunt unde perspiciatis molestias incidunt fugit natus porro nemo odio dolorum voluptate. Voluptatum delectus eius non animi quia illo esse vel omnis aut dolorem nihil numquam labore porro non. In cupiditate eos ea numquam ipsum voluptatem ipsa ratione vitae voluptate consequatur fugiat sunt itaque ullam repellat. Officia nobis omnis soluta sed ut dolores quis ullam dolores delectus aperiam quaerat est ut aliquid mollitia. Repudiandae tempore ipsa eius qui magnam nisi cumque aut voluptas qui officia et aut voluptatibus vel eveniet.
Ut nesciunt sit non ducimus distinctio voluptatibus dolores blanditiis officia accusamus esse dolorem unde at error numquam. Eveniet aliquid laborum libero illo esse et distinctio est tempore omnis illum pariatur maiores consequuntur libero quia. Dignissimos nihil et sint et aliquid est omnis doloremque labore corrupti cumque consequatur vero quos sequi voluptates. Sapiente optio enim totam dolorum unde sint nesciunt eligendi quia sint ad officiis enim numquam cum totam. Nisi eum sit error repellat ut et odit repellendus est nemo assumenda officiis dolor enim et commodi. Error corrupti ut eligendi eum vitae necessitatibus dolorum tenetur id quidem omnis sint facere aspernatur omnis magni. Nihil vero architecto ratione rerum a tempore quasi sint eius error sed rerum saepe praesentium veritatis et. Voluptates iste praesentium tenetur omnis nisi dolor vel et dolore quisquam neque voluptate ullam amet consectetur voluptatem. Voluptates unde minus praesentium et ut rerum omnis officiis quidem illum eum et nihil nobis ullam aut. Enim beatae placeat facere maxime esse laboriosam consequatur voluptas quisquam voluptas suscipit est provident excepturi vero in. Quaerat alias facere aliquid ad aut voluptatum ipsam aspernatur cupiditate in commodi id magni nulla nostrum aut. Eveniet dolorem doloribus in aliquam dicta qui est et excepturi explicabo rem omnis nobis praesentium dolores voluptas. Quibusdam omnis ratione blanditiis dicta autem rerum quo eum assumenda voluptatem sed aut eaque ea et magni.
Minima nobis natus deleniti eos sint nesciunt fuga quisquam sed a vero quia aliquid praesentium in eaque. Id et molestiae voluptatem et et facere quae molestiae non voluptatum perferendis sit non sequi culpa iusto. Perferendis a quis enim officia dolorem necessitatibus vitae cum qui ipsa libero natus provident minima id facere. Voluptates blanditiis voluptate id consequatur omnis adipisci exercitationem occaecati cupiditate rerum velit autem autem voluptate non et. Nihil minima excepturi molestiae corrupti sapiente aut neque numquam nesciunt nesciunt laborum tenetur et libero rerum voluptatem. Non quo numquam porro aperiam impedit in est qui ut sint labore voluptate non sunt impedit optio. Exercitationem facilis sit saepe laudantium sint eligendi accusamus illum cupiditate voluptas velit ut sint consequatur facere a. Ut aut eaque qui excepturi sed aut minus voluptatem incidunt ut eos vero maiores molestias perspiciatis sit. Incidunt cupiditate atque libero in sit sunt ipsa aliquam laborum nihil consequatur eaque sit amet quia vel. Ratione dolores reprehenderit reprehenderit beatae saepe vel quas aliquid est omnis aliquid omnis tempora omnis debitis ut. Sint quisquam blanditiis distinctio voluptatem maiores ut tempore nihil officiis rerum eos rerum sit nulla neque incidunt. Amet possimus unde quia assumenda a nulla illo laborum veniam sapiente voluptatibus dolorem provident ad maxime sed. Corrupti repellendus quae impedit necessitatibus animi sit voluptatem est numquam aspernatur eveniet molestiae omnis officiis distinctio non.
Illo odio est et non atque repellendus laboriosam quos itaque corrupti non quia ratione quis impedit fugiat. Dignissimos modi nam officia eligendi eum voluptatem aspernatur dignissimos tempora non fugiat eligendi doloribus exercitationem inventore iure. Omnis vel exercitationem aperiam perspiciatis maxime quae et sed enim qui nisi ea iste corporis voluptate dolorem. Fugiat quia voluptate molestiae ipsum sapiente illum rem quo sed est quam suscipit cupiditate facere sed temporibus. Omnis earum nemo tenetur assumenda eaque enim sint aut sit nobis rem voluptate nihil a sint et. Aut omnis voluptatem rerum nisi non exercitationem in quod non non occaecati ipsam quisquam dolor nam velit. Quia minus dolores atque voluptas impedit et commodi consequatur quis amet aperiam sit officiis hic ipsum esse. Libero autem repudiandae provident sit et rem consectetur et minima sed officiis corporis eum et quia sit. Praesentium cumque qui vitae ipsa nulla natus iusto sint reprehenderit optio et cum sunt consequatur nesciunt laborum. Ad sit quasi voluptatem ullam laborum culpa aperiam voluptas laudantium eum eos a voluptas inventore odit cupiditate. Dolorum cupiditate voluptatem ut dolorem et deleniti est enim reiciendis laborum qui voluptatum nesciunt dicta adipisci esse. Culpa dolor culpa quia odio eum itaque sequi a voluptatem sunt velit explicabo sed voluptas rem consequatur. Qui est eos sed magnam in quo aliquid quo eum ex voluptatem totam quod mollitia corporis quia.
Eligendi dolorum ipsum dolorum non tenetur quae sed officia alias ad voluptatem ullam quidem ducimus similique minus. Modi facere ipsam reprehenderit rerum et est neque accusamus cupiditate adipisci accusantium sed doloribus itaque velit eveniet. Tempora aliquid unde est atque ea nulla laudantium illo alias similique consequatur ex ut impedit reprehenderit sed. Earum et enim consequatur perspiciatis necessitatibus eos aliquam ipsam voluptate voluptatibus laudantium delectus harum consectetur reprehenderit et. Dolorum alias sed debitis corporis molestias aut iusto ullam maxime nostrum consequuntur consectetur porro qui sit voluptatem. Nobis soluta facere consequatur et sequi et exercitationem at eligendi harum quo blanditiis harum sed deleniti qui. Id adipisci et temporibus hic quia beatae accusantium eum id ex totam ullam impedit soluta ut voluptas. Temporibus fugiat libero fugit velit nesciunt dolor unde hic tempore fugit molestiae culpa eum est est veniam. Reiciendis quia et quis consequatur alias dolor laudantium temporibus quod aut illum quas id quas perspiciatis odit. Inventore vitae vel maiores et iste ab repellendus iusto voluptates officiis nihil dolor ducimus illo autem aliquam. Deserunt eos iste quae non sint et ipsa ea exercitationem sed nobis vel iure laborum excepturi reprehenderit. Enim dignissimos porro reprehenderit sed hic laudantium porro aut consequuntur quia sequi necessitatibus omnis quo nemo eum. Perferendis est excepturi omnis quia quis deserunt vel accusamus ab quas natus commodi quo eos corrupti numquam.
Alias soluta accusantium sint ut voluptate ipsum ut excepturi pariatur in voluptatibus eveniet labore quis consequatur dolores. Aperiam ex quia omnis placeat veritatis id explicabo nam assumenda ea libero consequatur necessitatibus provident libero ipsam. Et mollitia cumque sapiente sed nam reiciendis cupiditate qui cupiditate consequatur et odit aut omnis est sunt. Ducimus qui aperiam voluptatem molestias reiciendis et quisquam hic asperiores enim harum quia perspiciatis dolorum laborum aut. Quaerat aut qui architecto non optio esse placeat soluta ab qui id quia eius ratione amet vel. Quia molestias error aliquid explicabo consequuntur dolor iure tempora non sed perspiciatis eos delectus iure nam voluptas. Magnam saepe repellat qui sed qui accusantium ut numquam cum est cumque molestiae earum cupiditate velit voluptatibus. Dolor omnis saepe assumenda qui autem adipisci rerum nihil omnis quia perspiciatis voluptates natus eaque quisquam in. Magnam recusandae ut et aperiam incidunt id omnis facilis magnam expedita beatae omnis fugit natus qui sunt. Dolore nulla perspiciatis vitae officiis iste quos qui unde quam id magni aut officiis sunt illo beatae. Id dolorum velit culpa totam voluptatem occaecati delectus reprehenderit modi blanditiis vitae voluptatum consectetur autem omnis et. Fuga aut et corporis rerum unde qui porro inventore quia voluptatem quia voluptates ab nisi nihil dicta. Molestiae cum quia eum et adipisci ipsa perferendis enim sunt unde aut quisquam harum perspiciatis sed illum.
Nesciunt velit velit voluptatem autem maiores adipisci ut quod fugiat adipisci molestiae et rerum assumenda aliquid ad. Qui odio enim eligendi aut deleniti inventore doloribus cum aut libero ad et magni quo maxime ea. Voluptatem rerum autem sed reprehenderit est nisi aut id magni neque iusto sit maxime autem sint rem. Dolores voluptates ut voluptatem soluta est repellat soluta maiores maxime nostrum nam in incidunt voluptates sit voluptatibus. Dolorem possimus consequatur consequatur ullam minima repellat assumenda rerum eum omnis incidunt similique aut et repellat occaecati. Maiores beatae minus sed molestiae et quia ipsa expedita voluptas molestiae recusandae laudantium sint quo laudantium fugit. Quia pariatur fugiat ut vel repellendus impedit voluptas id voluptatem nisi et numquam molestias culpa voluptas qui. Assumenda possimus alias ut doloribus aut ut dolor sunt facilis tempora omnis magnam enim et aut velit. Et nihil fuga et ex voluptatum suscipit dolorem sed voluptates ab cum voluptas nostrum omnis fugiat ut. Aut magni architecto ut quia et est iure velit facere impedit temporibus voluptatem placeat consequatur magni iusto. Iusto suscipit porro omnis omnis dolor totam exercitationem doloribus quia explicabo non assumenda omnis libero inventore et. Sint quaerat eligendi quo quis dicta cumque illum sed sed quis ducimus officia voluptate consectetur voluptatibus repellat. Quo sit eum consequuntur voluptate est placeat minus voluptates beatae quia et harum ratione blanditiis quis sunt.
Veniam at aliquam et nisi sit accusantium laborum ratione odit omnis nesciunt nobis neque eligendi et quasi. Ut a impedit sint enim vero qui quas dicta iste animi pariatur dolor autem adipisci est ex. Exercitationem reprehenderit fugiat rem quia tempore consequatur a sint perferendis autem suscipit odio quod et ad voluptatem. Dolorem eos dolores aut nihil enim eveniet id officia sed ad accusantium maxime veritatis ex eaque ipsa. Blanditiis voluptatem et beatae modi rerum similique exercitationem excepturi et a voluptatem ea nemo natus laboriosam tempore. Enim voluptas autem quaerat et distinctio modi recusandae accusantium molestiae exercitationem animi consequatur debitis nemo repellat ullam. Et recusandae praesentium quibusdam deserunt mollitia magnam qui adipisci illo cumque rerum ut earum molestiae molestiae nulla. Et odio sunt porro voluptatem mollitia doloribus a veritatis quidem ad minus recusandae rerum ad et dolores. Deserunt praesentium illo ipsam iste incidunt dolor molestiae sed dolor veniam quia aliquam rerum eum explicabo harum. Ad aut omnis laboriosam quis optio quaerat dolor repellat officia dolorum assumenda sit neque voluptas voluptas maxime. Quam ea architecto expedita molestiae repellendus voluptas ullam architecto fugit quia quae atque ad at incidunt alias. Deserunt est et aperiam sit quis consequatur voluptas soluta odio totam consectetur eligendi culpa reiciendis aut voluptas. Dolor est laborum alias nobis ut eos labore dicta dolorem qui sed non et placeat perferendis sit.
Error qui perspiciatis tenetur consequatur eius molestiae sunt assumenda asperiores molestiae non iure ut ab assumenda quas. Rerum velit dolor consequatur impedit architecto repudiandae iure et molestias occaecati ex expedita omnis dolor veritatis cupiditate. Deleniti eius et provident est ratione sequi in rerum ipsum nemo deleniti ex sit eius et assumenda. Fugiat autem esse dolor adipisci qui commodi consequatur esse labore eos assumenda quis deserunt libero ipsam id. Id velit dolores velit numquam temporibus quod et a vel quia suscipit architecto facere saepe ullam aut. Voluptatibus delectus aut tempore commodi dolore provident perspiciatis officiis eius quasi et delectus atque quae recusandae et. Assumenda illum non eaque commodi quisquam dolores aliquid eum dolor sed odio dignissimos quaerat impedit rem perferendis. Sit autem sunt saepe aperiam voluptatibus qui corporis dolores itaque est in est odio perferendis illum recusandae. Quo rerum quos praesentium ab cupiditate ut doloremque ut voluptas nobis illo non ducimus illo ipsa qui. Voluptas dolorem aut et delectus ut quis quia ducimus dolor et unde sunt eius accusamus est explicabo. Cum porro perferendis nihil in et quo ducimus molestiae voluptatem accusantium molestiae corrupti quia ut animi ipsa. Nam tempora exercitationem eum ut quasi et temporibus expedita eaque deserunt aut et voluptatem consequatur delectus odit. Itaque est eveniet provident laborum recusandae velit dolorem perspiciatis id dolorem qui ipsa qui consequatur qui totam.
Ullam delectus deserunt quasi explicabo ab quo laborum est et dolorum voluptas voluptate vel commodi animi nobis. Molestiae rem quam aut quas temporibus ipsa cupiditate quaerat excepturi nemo sit et dolorem nam occaecati maxime. Eum autem occaecati est itaque fuga veritatis qui quidem dolor eligendi recusandae totam atque voluptas tempora suscipit. Voluptas ut optio commodi perferendis ducimus iste vero ipsum vel quaerat enim tempore et nesciunt eos ea. Provident exercitationem architecto esse qui accusantium sapiente nobis corrupti laborum aliquam voluptatibus ut sit repellendus totam eos. Earum fugit nemo ut et et vitae mollitia tempore et dicta corporis quod pariatur iusto magni iusto. Voluptatem sunt et rem et minus similique tenetur qui distinctio recusandae perspiciatis nesciunt amet pariatur officia eligendi. Aliquam dolor quia in eum sunt magni nemo aut non quis magnam eum nam qui voluptas modi. Maiores a voluptatem dicta harum rerum corporis expedita ipsam voluptates laboriosam esse iure et ut labore vitae. Mollitia sed necessitatibus voluptate alias reprehenderit et temporibus excepturi optio nulla illum voluptatum reprehenderit minima dolores accusamus. Dolor laboriosam tempore molestiae quod ut dolorem doloribus voluptatem dolore voluptatum qui repellat corrupti natus modi natus. Cumque commodi voluptatem repudiandae ullam nisi ut qui voluptatem cupiditate eum corporis consectetur iste exercitationem ut dignissimos. Accusamus deleniti nostrum aut odit facilis pariatur odit tempora in dolorem vero eius qui maiores architecto aut.
Voluptas sapiente ullam recusandae suscipit at ut ducimus voluptates explicabo odit voluptas dolor iste nostrum ea asperiores. Fuga natus placeat iste esse est beatae cumque voluptas eligendi eveniet ipsa incidunt ipsum quae doloribus voluptas. Qui qui et non qui dignissimos voluptas accusamus id rem aut ut culpa fugit quia velit quia. Libero ut et aut nisi quasi porro autem nesciunt eum consequatur iusto et et et numquam aut. Iusto ut qui quam voluptatibus et qui iusto ratione sunt ipsam voluptate occaecati odit quos mollitia reiciendis. Provident ea rerum id provident consequuntur non in id quos sed ducimus libero cum vero omnis quia. Ut itaque aperiam et voluptas minima omnis ducimus sit alias qui enim asperiores rerum asperiores sed eos. Facilis ex magnam et sapiente asperiores eligendi sit dignissimos qui voluptatem omnis ad ea in dolores voluptatum. Voluptas cumque numquam ipsa facilis saepe libero culpa aliquam qui enim sequi vel dolorum est architecto neque. Est quaerat accusantium aperiam molestiae culpa est provident nostrum optio sint distinctio dolorem sint libero neque quia. Provident ut illum vitae pariatur ducimus commodi et excepturi distinctio sint quidem aut aut aliquam tenetur dolorum. Autem doloribus ut sunt alias earum nemo dignissimos nisi reprehenderit et et veritatis repudiandae architecto suscipit rerum. At labore et ea aliquid omnis eveniet aut debitis cupiditate veniam totam quam corporis nostrum sint fugiat.
Autem harum voluptatibus sunt laboriosam quas asperiores quis voluptatem est saepe debitis voluptas iste sequi explicabo voluptatem. Consequuntur impedit vel debitis rem dolorem consectetur sed occaecati aut ab inventore aut est culpa quia optio. Molestiae similique explicabo atque provident id odit possimus quae molestiae omnis repudiandae quod voluptatem beatae placeat animi. Porro et id aliquam nam ut vero facilis eos minima quia soluta architecto non officia in voluptas. Sequi eius suscipit in qui totam ut assumenda iusto expedita architecto omnis dignissimos sint dolor aliquam vel. Ut quidem nesciunt in rerum exercitationem provident dolores corrupti in aperiam corporis optio est non et aut. Doloribus voluptate fugit facilis molestiae nisi animi iusto laborum et vero aspernatur quibusdam omnis tempore placeat placeat. Pariatur quam nesciunt impedit ut fugiat deserunt cumque adipisci iste aperiam possimus non laudantium repellendus odit dolor. Dolor eaque dolorem repellat nihil rerum optio veritatis facere voluptate ipsam qui voluptas debitis rerum quas dignissimos. Enim provident officia sunt eos in ut aperiam ut quam assumenda est excepturi sit in facilis nulla. Deleniti fuga modi illo est ea error est vitae quia consequuntur labore quod adipisci doloribus ut aliquam. Illum temporibus officia quidem perferendis eos ab ullam nulla impedit dignissimos minus quod dicta ab autem velit. Consequatur et ullam tempore doloremque enim adipisci optio quia aut consequatur esse ad voluptate autem nihil ut.
Inventore aliquid saepe doloribus voluptas voluptas saepe minus dolores numquam sed eligendi dicta cupiditate aut nemo non. Sunt et voluptas tempore voluptatem exercitationem vel dolores debitis minus pariatur eligendi dolorem et fugit dolorum labore. Laboriosam quas architecto dicta modi est quam rerum quidem et distinctio dolorem porro quis consequatur sit qui. Velit quis ea aut ipsam odit nemo voluptas ex omnis ratione sit quia eaque quas omnis illum. Est ea sint modi et at sint similique nesciunt amet vitae amet praesentium debitis itaque sapiente nam. Fugiat ut enim nihil sit sint provident fugiat iusto aut esse nihil autem placeat at eos odit. Dolor harum optio eaque ut impedit saepe iure quos aut commodi suscipit consequatur at et aliquam quia. Eos et dolores quis id placeat id odit perferendis quae perferendis veritatis ullam provident voluptatum dicta ullam. Numquam debitis odio sit ut occaecati vitae dicta est qui delectus esse voluptas molestias praesentium quidem est. Autem laborum quibusdam exercitationem ipsa beatae sed sed est temporibus delectus ipsum vitae assumenda dolores eligendi tenetur. Libero eaque et consectetur quam odio voluptate qui sit temporibus doloremque quam in enim ea voluptas qui. Mollitia ut perferendis quia eos quaerat dignissimos facere suscipit id nesciunt qui suscipit accusantium aliquam cum sunt. Assumenda est mollitia odio animi voluptates libero iusto aut omnis reiciendis non praesentium natus ipsa occaecati numquam." + * ``` + */ + loremIpsumParagraph(paragraphcount: number, sentencecount: number, wordcount: number, paragraphseparator: string): string; + + /** + * Sentence of the Lorem Ipsum placeholder text used in design and publishing. + * @returns a random lorem ipsum sentence + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.loremIpsumSentence(13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Accusamus et voluptatum voluptatem nisi nostrum atque molestias reprehenderit alias reiciendis ut eos." + * ``` + */ + loremIpsumSentence(wordcount: number): string; + + /** + * Word of the Lorem Ipsum placeholder text used in design and publishing. + * @returns a random lorem ipsum word + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.loremIpsumWord()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "accusamus" + * ``` + */ + loremIpsumWord(): string; + + /** + * Person, place, thing, or idea, named or referred to in a sentence. + * @returns a random noun + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.noun()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "hand" + * ``` + */ + noun(): string; + + /** + * Ideas, qualities, or states that cannot be perceived with the five senses. + * @returns a random noun abstract + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounAbstract()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "philosophy" + * ``` + */ + nounAbstract(): string; + + /** + * Group of animals, like a 'pack' of wolves or a 'flock' of birds. + * @returns a random noun collective animal + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounCollectiveAnimal()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "school" + * ``` + */ + nounCollectiveAnimal(): string; + + /** + * Group of people or things regarded as a unit. + * @returns a random noun collective people + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounCollectivePeople()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "bevy" + * ``` + */ + nounCollectivePeople(): string; + + /** + * Group of objects or items, such as a 'bundle' of sticks or a 'cluster' of grapes. + * @returns a random noun collective thing + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounCollectiveThing()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "wad" + * ``` + */ + nounCollectiveThing(): string; + + /** + * General name for people, places, or things, not specific or unique. + * @returns a random noun common + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounCommon()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "company" + * ``` + */ + nounCommon(): string; + + /** + * Names for physical entities experienced through senses like sight, touch, smell, or taste. + * @returns a random noun concrete + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounConcrete()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "train" + * ``` + */ + nounConcrete(): string; + + /** + * Items that can be counted individually. + * @returns a random noun countable + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounCountable()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "weekend" + * ``` + */ + nounCountable(): string; + + /** + * Word that introduces a noun and identifies it as a noun. + * @returns a random noun determiner + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounDeterminer()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "this" + * ``` + */ + nounDeterminer(): string; + + /** + * Phrase with a noun as its head, functions within sentence like a noun. + * @returns a random noun phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounPhrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "a brave fuel" + * ``` + */ + nounPhrase(): string; + + /** + * Specific name for a particular person, place, or organization. + * @returns a random noun proper + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounProper()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Rowan Atkinson" + * ``` + */ + nounProper(): string; + + /** + * Items that can't be counted individually. + * @returns a random noun uncountable + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.nounUncountable()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "butter" + * ``` + */ + nounUncountable(): string; + + /** + * Distinct section of writing covering a single theme, composed of multiple sentences. + * @returns a random paragraph + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.paragraph(13,13,17,"\u003cbr /\u003e")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Quickly up brace lung anyway then bravo mirror hundreds his party nobody person anything wit she from. Above Chinese those choir toilet as you of other enormously enough indeed your muster bevy snow grumpy. Idea whatever one Lilliputian hers towards hers knock party Beninese eventually beyond unexpectedly regularly badly dizzying next. Huh you literature kindness might band first where substantial you pleasure at i.e. whom his very when. All permission whose agree this live cane does these e.g. differs some other ball up where back. Shorts where you whomever us whomever daily hard awfully product whichever generously our to ourselves since frequently. Boxers Turkishish healthily alas secondly this most abroad week brush behalf your his of the us weakly. Ours wisp yourselves give bunch down account closely why lately as fortnightly that whom over clean those. Together an for so wow should it today these that rightfully plate perfectly with still sometimes highly. Fear e.g. bevy their though practically with point company inspect how someone each any class anybody slide. First way regularly whom Hindu softly obesity neither strange those luxury was yay as your just daily. To hourly earlier this yet moreover had day ourselves as example bless pretty whatever me ahead heap. Raise above whose outside everybody Turkishish than couple she could outside troupe only alternatively occasionally neither horror.
Her string innocence behind other your theirs lead of his firstly so whomever hers far on either. I.e. infrequently highly opposite for cackle those either they a next each over another which which cleverness. Stemmed in few before this ourselves between alive covey sheaf significant always jump he weekly everyone their. Ouch afterwards cost out part herself our the finally hastily all across their some someone closely pipe. Everyone range those in how fuel near ingeniously interrupt whose amused neither whereas your here talent switch. Patiently our neatly Iranian my in that i.e. himself could wow magic yellow anyone each those occasion. Conclude ship somebody off room am these a our a secondly lastly pray anyway wait these this. Of now from whenever stupidly heavy pod yearly us we before farm of eventually whoever could any. Of recline hourly without should phew since whom determination often which inside who improvised fatally hurt heavily. Does him on horror early along whomever rather you is freedom as case couple full patience daily. Whose ask learn you in is could these neither some you additionally those herself lean bale powerfully. Bahrainean herself honestly part his well because were eye itself under so which us Buddhist bread comb. This no sit out between sheaf why whoa busy where huh significant daily the seldom to close.
Ship as these i.e. down what me he child bevy your with though hers completely therefore both. Case rather between posse any danger there this Muscovite her onto how disturbed now other warmly envy. Ever they monthly nobody disregard but murder she troop firstly her myself several daily sing vilify that. Herself every child rather downstairs the oops had exaltation tweak so itself jump oops finally extremely lastly. Number outside usually behind nevertheless often empty nevertheless as instance generally float i.e. that the those egg. Positively besides that to whereas wade silly all enable through completely yesterday daily finally rather usually our. This himself country leap for into i.e. yours me end alas then for next must hers eventually. Yourselves which inquire of been everybody pack did yourselves enormously though destroy battery bevy tennis yours perfectly. Elephant close any to fiercely light elegance what i.e. hers myself here whoa party scheme wisp a. Hey daily timing slide out Amazonian till does who first its driver scream program was hourly pod. Down without upon which this would straightaway normally ourselves next our last any whatever down still bow. Party write which sore contradict under person car recline has disregard still hey whom its for every. Into any those data rarely to dig them next now back yikes as upon upon whoever another.
Cap should exaltation result embarrass trend wear tomorrow today did about no everything i.e. solemnly whatever without. Any that what from you cheese open to somebody a herself here Salvadorean congregation where least rarely. On to to well ball speed problem than far insufficient should everyone coffee whose lastly foot till. Width hmm regularly many accordingly should these suitcase what these whichever ours we one these straight life. Yay each it everyone suspiciously quarterly Kyrgyz somebody anyone in gas towards oops however happiness plenty yours. Of once nightly play Portuguese each snarl upon just himself since daily seriously riches over they child. Unusual meanwhile might our were wisdom weekly Christian over way whoever myself bowl why most neither anyway. It respect had beautifully Barbadian in totally staff that fact phew over earlier nevertheless heap its they. Cruel till that consequently many mustering instead today quarterly why another say with freeze talk first ever. Wit have till frequently under hence too of must who whom spread just remote but cook daily. Are loneliness hence several slowly company which him yay must how heat when none of himself suit. Extremely outrageous where several from still whom next however foolish religion climb provided ours bridge these is. Any preen out what quite advantage that muster everything dream including whose myself beyond Burkinese hourly yourselves.
Theirs from who gee in youth table you but oops party think their task too of should. Whose company Italian these eek daily hey your patrol Sri-Lankan camp weekly mine have those Guyanese later. Phew research therefore pack gladly these must little class terrible tweak are for without theirs this nobody. Who one shall nobody sheaf then daily whomever anyone whose straightaway whose yet before for long thing. Bathe secondly instance what aha you your meanwhile these why her someone normally can her line choir. Its gain exemplified have almost now to aha itself alive spite herself what bunch today lastly train. Care afterwards weekly on rise meanwhile themselves first quite lively monthly throw such anxiously courageously way words. Whose here whomever wisp it oops anybody party far group why had Portuguese set terribly sneeze each. A fall batch even would but tomorrow every is my where Burkinese weekly yikes therefore the mine. Upon at nightly utterly over why dream orchard a me previously without cruel next hedge something extremely. Yourselves nobody Tibetan whichever nevertheless rarely her that painfully thing trade out have why nervously religion kneel. Roll tomorrow what this cloud rarely myself this swim even specify place being book her write its. Whoa so lastly e.g. is those dynasty Sudanese delightful it shall her in appetite that elegance laughter.
Me huh Thatcherite from your we after splendid he those pain whom before confusing my next near. Student these roughly am awful troop peace quarterly quarterly select horror at yourselves but Darwinian it a. Bravo whose face here her consequently she hey delay address therefore your seldom that might where generally. Upon her both forest are practically brilliance besides it hers upon circumstances usually its fascinate desk regularly. Scream before inside ourselves straightaway gorgeous which any might generosity cry next this does there then black. Generally we mine before this upon hastily that fire publicity however finally outside whomever do enough reel. Ingeniously within this be nearly whereas in though hers conclude collection as was yet themselves depending to. Can that relent problem swiftly our there Iraqi whose yourself frail positively grease brother then hard yours. But we might hers thought nervous being hmm these your these can soup over offend farm were. Where helpless when toothbrush eventually Thai which regularly I many sometimes soon next therefore to by win. On the then throughout though of party several us that always part pronunciation example several fortnightly anybody. Dream mob accept unlock fuel example to extremely galaxy Slovak traffic he Russian team another die she. Who of beauty eager her lips on swim has guilt as for which in practically under theirs.
Angrily eventually where forgive this myself yourself been why nevertheless there under body water whose due as. Oops bevy husband idea fight inside theirs of week angrily wow width seriously according these horror it. Sheep growth lady earlier fascinate behind wait selfishly game those when bus away finally accident fondly out. Appetite in nothing smoothly pod regiment between e.g. nightly pod brace that of win should hey may. Cast anyone so even him sheaf of vision today whenever along sadly when gee they patrol any. You myself shout life every now ahead both those softly instance Polish will teach how there whichever. Group it regularly government part pollution milk alas friendship first nice whomever according constantly usually everything move. Child love hand for usually had myself yours harm width these who sit am smell eat next. Along had that with catalog whose sometimes between crew straightaway everybody in upon kindly our wiggle him. Oops ever at panic brain eek in candy cash all to shout gallop under soup others this. Box alternatively her protect herself to him equipment nightly forest yourself moreover crawl these as to with. Mine indoors where according whoever revolt ours one could Viennese archipelago is Kyrgyz fortnightly open crowd you. Of some weekly cackle door her it never what you of tonight wisp himself always nightly a.
Water ourselves to upon Afghan regularly yesterday has panther others those me been here any pause themselves. Out weary theirs themselves extremely themselves rather yesterday myself rarely then first e.g. ours you rarely absolutely. Quarterly what juice posse then what highly place but am couple without I occasionally win you monthly. Alternatively remain it gown it already yourselves gee where woman change there along certain an here for. Horde as lately ingeniously decidedly that it easily none it next those mortally before hedge frankly who. Sari quite Himalayan bouquet whoa clap selfish somewhat me life when together his energetic instead sew where. Its solitude group walk downstairs yours next close that brilliance where fiction from secondly finally busy weekly. Later troupe sternly early until tough due secondly importance this here hatred deeply quarterly e.g. lean have. Without mustering ourselves what fancy nothing I ours yay pod ourselves now Ecuadorian those heavy brilliance bathe. About woman retard how absolutely about man besides that despite might double them daily sharply whose gee. These exemplified of abroad these (space) down hers lot the which some others annoyance of ours provided. Fascinate quizzical host equally rush normally patiently awkwardly wad ourselves less some anything at in in any. Week few alternatively huh our due usually was any will batch secondly whom normally sedge reassure he.
Socks should shiny never play hand scold archipelago lastly everything should be disregard as normally of these. Brace outside shake this it grasp this but by anywhere project that its is now their oil. Secondly that ourselves cautiously therefore these never alas both monthly everybody pod selfishly had ourselves theirs that. This finally fear scarcely his outside each truthfully is of aha ever to nevertheless himself such are. What whereas when then it bag behind bikini straightaway tomorrow today a tomorrow enough Indonesian for next. Swimming but words usually flour finally fortnightly full grammar any all his yourself since has whose these. Then group Peruvian yet which about Turkmen ours of slavery say whom scream whirl a group though. Whatever whichever selfishly provided there foolishly Plutonian young shower quarterly yourselves enthusiastic place elegantly harm each yourselves. Were how might company their may totally where muster depending Malagasy herself innocence research us whoa muster. Her whose safely many where you consequently finally you in does whoever utterly in after these even. Bravely plant besides beneath frequently my to anyone hmm there panic anything weep any taste example whichever. Problem fleet anyone spoon sunglasses this sneeze would grow woman onto it park was moreover couple what. Eek nightly conclude this chest they hers in you be here electricity case she sometimes yay abroad.
From rudely however anything consequently how anger annually remove stand as solemnly almost I toothbrush should throw. First however yourself after belong might firstly finally off what for any then has whose she onto. Yellow been therefore upon honestly grapes fantastic idea nevertheless jewelry elegance ugly themselves hang me group bush. Down that group to vision hers it publicity loss then next they aloof naughty Afghan tomorrow that. Would heavy anyone his witty am aha that mine here bad you ourselves wrong crawl whole herself. I.e. to couch badly say these courageously in eye somebody the other you freedom dynasty insufficient nightly. Therefore one awkwardly basket move for whoever leap comb tonight nothing perfect block go it into but. Myself slippers even painfully indoors crawl constantly lastly tweak stay i.e. her whom what us how were. Yourselves huge whichever indeed up their horde year auspicious group somebody does child monthly tomorrow of something. Without board being battery double constantly enlist slavery few it ourselves year highlight for spin you must. Repeatedly hourly place motor by off inside there anybody Turkmen block dig till each now monthly cast. Tough may she abundant tonight yours taxi you shall patrol lastly no am over therefore towards those. Today there still yesterday plant usually sing ouch crew full kiss were throughout monthly frantically alas we.
Hmm road yay heat Belgian next cry move sit either tonight does collection now Icelandic table here. Soup never your air what besides summation frantically purse were does indoors daily one this quarterly regularly. Any outside hardly however knock enough frock define straightaway be other next yell horde so whichever crew. Ever bridge away only entertain on it troupe instead whale out than sparse since we occasion Canadian. Repeatedly software speed consequently stagger yourself many shower infrequently mouth number which you that previously which any. Previously cravat disregard eventually well secondly onto by had them band previously when genetics these of preen. Those them of it butter fact in his regularly across annually himself sail which smoke herself frankly. Where repelling delay hiccup army whenever time upon it intimidate hey of before successfully throughout from crack. Than yourselves tensely gee outstanding where battle yourself are shower on so bouquet grasp child peace here. Those brilliance his there he ever that upstairs group regularly it number were whoa nightly party dolphin. Smell does comb pose set her ours inside ride occasionally who must hedge firstly album therefore repel. Furthermore those thing lazy how without page its double of how us everybody half of been their. Would of quarterly still justice magazine gallop bathe indoors buy it hall mob besides those nearly my.
I faithful slavery those everyone next its ours of because first this anyone smoke did all has. At include one class government it under of may smell today by then toast additionally which whose. Where seldom someone being sigh respect including someone fragile assistance leap themselves whose moment dream all on. Scarcely numerous to conclude beneath tomorrow had itself himself ourselves lately above as as group straightaway pod. Down mine from nap frequently could his where me throw lastly confusion recline problem oops socks ski. Everyone today your contrast those several rather east but turn whose dishonesty these gown body may dream. Out accordingly usually hers slide inside its any you whole so whose album furniture yours to inside. Swing whoever fade staff library what myself practically hourly your down limp sedge himself in nightly today. How anyway that just credenza my kiss been company how some phew your monthly instance it game. Belief had leggings the place place tomorrow explode recently group that though moreover shall them hers my. Those indeed yet off why everyone whom college throw hey phew army Indian yet courageous her clump. Behind did another tomorrow according conclude door before bookcase cut due provided now a enormously either throughout. Convert army daily quarterly quarterly Hitlerian far team us me so Balinese few enough will moreover theirs.
Does dive chest elsewhere what her what that bevy wisp a some whomever spelling one from some. Me on string were that nobody move till relaxation clump been regularly you either ourselves several clothing. How there itchy including metal inadequately strongly bundle that to heap almost whose to though alone where. Stand Parisian his speed besides bowl violence yours maintain pharmacist in Plutonian include fortnightly this up yikes. Indeed Plutonian it what watch while class station limp yesterday solitude there which mine encouraging your you. These move yourselves peep host this the then energetic daily many violin one down that is i.e.. Being hatred accordingly this team that sister relieved where either stealthily journey collection those upon scream alas. Constantly you an point zebra lately her by for it collection behind eventually he alas mustering however. Whom quit mustering party room case these you those usually earlier that nightly muster pause example quarterly. Then there trip flock whale how sit whereas perfectly us lots in his been patience tomorrow Himalayan. Stack Swazi even moreover then over this how almost frankly daily had somewhat he lately homeless just. Somali whose finally that formerly murder there while though bunch for this punctually soap practically money lastly. After still over did auspicious nightly pair hungrily fascinate these which the those whose what hey you." + * ``` + */ + paragraph(paragraphcount: number, sentencecount: number, wordcount: number, paragraphseparator: string): string; + + /** + * A small group of words standing together. + * @returns a random phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.phrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "many thanks" + * ``` + */ + phrase(): string; + + /** + * Adjective indicating ownership or possession. + * @returns a random possessive adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.possessiveAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "his" + * ``` + */ + possessiveAdjective(): string; + + /** + * Words used to express the relationship of a noun or pronoun to other words in a sentence. + * @returns a random preposition + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.preposition()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "out" + * ``` + */ + preposition(): string; + + /** + * Preposition that can be formed by combining two or more prepositions. + * @returns a random preposition compound + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.prepositionCompound()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "apart from" + * ``` + */ + prepositionCompound(): string; + + /** + * Two-word combination preposition, indicating a complex relation. + * @returns a random preposition double + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.prepositionDouble()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "outside of" + * ``` + */ + prepositionDouble(): string; + + /** + * Phrase starting with a preposition, showing relation between elements in a sentence.. + * @returns a random preposition phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.prepositionPhrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "of a fuel" + * ``` + */ + prepositionPhrase(): string; + + /** + * Single-word preposition showing relationships between 2 parts of a sentence. + * @returns a random preposition simple + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.prepositionSimple()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "of" + * ``` + */ + prepositionSimple(): string; + + /** + * Word used in place of a noun to avoid repetition. + * @returns a random pronoun + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.pronoun()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "these" + * ``` + */ + pronoun(): string; + + /** + * Pronoun that points out specific people or things. + * @returns a random pronoun demonstrative + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.pronounDemonstrative()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "these" + * ``` + */ + pronounDemonstrative(): string; + + /** + * Pronoun that does not refer to a specific person or thing. + * @returns a random pronoun indefinite + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.pronounIndefinite()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "anyone" + * ``` + */ + pronounIndefinite(): string; + + /** + * Pronoun used to ask questions. + * @returns a random pronoun interrogative + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.pronounInterrogative()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "who" + * ``` + */ + pronounInterrogative(): string; + + /** + * Pronoun used as the object of a verb or preposition. + * @returns a random pronoun object + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.pronounObject()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "you" + * ``` + */ + pronounObject(): string; + + /** + * Pronoun referring to a specific persons or things. + * @returns a random pronoun personal + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.pronounPersonal()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "you" + * ``` + */ + pronounPersonal(): string; + + /** + * Pronoun indicating ownership or belonging. + * @returns a random pronoun possessive + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.pronounPossessive()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "mine" + * ``` + */ + pronounPossessive(): string; + + /** + * Pronoun referring back to the subject of the sentence. + * @returns a random pronoun reflective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.pronounReflective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "herself" + * ``` + */ + pronounReflective(): string; + + /** + * Pronoun that introduces a clause, referring back to a noun or pronoun. + * @returns a random pronoun relative + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.pronounRelative()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "that" + * ``` + */ + pronounRelative(): string; + + /** + * Adjective derived from a proper noun, often used to describe nationality or origin. + * @returns a random proper adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.properAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Confucian" + * ``` + */ + properAdjective(): string; + + /** + * Adjective that indicates the quantity or amount of something. + * @returns a random quantitative adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.quantitativeAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "several" + * ``` + */ + quantitativeAdjective(): string; + + /** + * Statement formulated to inquire or seek clarification. + * @returns a random question + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.question()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Forage pinterest direct trade pug skateboard food truck flannel cold-pressed?" + * ``` + */ + question(): string; + + /** + * Direct repetition of someone else's words. + * @returns a random quote + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.quote()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "\"Forage pinterest direct trade pug skateboard food truck flannel cold-pressed.\" - Lukas Ledner" + * ``` + */ + quote(): string; + + /** + * Set of words expressing a statement, question, exclamation, or command. + * @returns a random sentence + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.sentence(13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Quickly up brace lung anyway then bravo mirror hundreds his party nobody person." + * ``` + */ + sentence(wordcount: number): string; + + /** + * Group of words that expresses a complete thought. + * @returns a random simple sentence + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.simpleSentence()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "A brave fuel enormously beautifully stack easy day less badly in a bunch." + * ``` + */ + simpleSentence(): string; + + /** + * Verb that requires a direct object to complete its meaning. + * @returns a random transitive verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.transitiveVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "bother" + * ``` + */ + transitiveVerb(): string; + + /** + * Word expressing an action, event or state. + * @returns a random verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.verb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "dig" + * ``` + */ + verb(): string; + + /** + * Phrase that Consists of a verb and its modifiers, expressing an action or state. + * @returns a random verb phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.verbPhrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "cheerfully cry enormously beautifully with easy day less badly" + * ``` + */ + verbPhrase(): string; + + /** + * Basic unit of language representing a concept or thing, consisting of letters and having meaning. + * @returns a random word + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.word.word()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "quickly" + * ``` + */ + word(): string; +} + +/** + * Generator with all generator functions for convenient use. + */ +export declare interface Zen { + /** + * A bank account number used for Automated Clearing House transactions and electronic transfers. + * @returns a random ach account number + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.achAccountNumber()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "805388385166" + * ``` + */ + achAccountNumber(): string; + + /** + * Unique nine-digit code used in the U.S. for identifying the bank and processing electronic transactions. + * @returns a random ach routing number + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.achRoutingNumber()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "605388385" + * ``` + */ + achRoutingNumber(): string; + + /** + * Verb Indicating a physical or mental action. + * @returns a random action verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.actionVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "smell" + * ``` + */ + actionVerb(): string; + + /** + * Residential location including street, city, state, country and postal code. + * @returns a random address + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.address()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Address":"53883 Villageborough, San Bernardino, Kentucky 56992","Street":"53883 Villageborough","City":"San Bernardino","State":"Kentucky","Zip":"56992","Country":"United States of America","Latitude":11.29359,"Longitude":-145.577493} + * ``` + */ + address(): Record; + + /** + * Word describing or modifying a noun. + * @returns a random adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.adjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "brave" + * ``` + */ + adjective(): string; + + /** + * Word that modifies verbs, adjectives, or other adverbs. + * @returns a random adverb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.adverb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "quickly" + * ``` + */ + adverb(): string; + + /** + * Adverb that indicates the degree or intensity of an action or adjective. + * @returns a random adverb degree + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.adverbDegree()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "pretty" + * ``` + */ + adverbDegree(): string; + + /** + * Adverb that specifies how often an action occurs with a clear frequency. + * @returns a random adverb frequency definite + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.adverbFrequencyDefinite()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "annually" + * ``` + */ + adverbFrequencyDefinite(): string; + + /** + * Adverb that specifies how often an action occurs without specifying a particular frequency. + * @returns a random adverb frequency indefinite + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.adverbFrequencyIndefinite()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "rarely" + * ``` + */ + adverbFrequencyIndefinite(): string; + + /** + * Adverb that describes how an action is performed. + * @returns a random adverb manner + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.adverbManner()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "sleepily" + * ``` + */ + adverbManner(): string; + + /** + * Phrase that modifies a verb, adjective, or another adverb, providing additional information.. + * @returns a random adverb phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.adverbPhrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "too cheerfully" + * ``` + */ + adverbPhrase(): string; + + /** + * Adverb that indicates the location or direction of an action. + * @returns a random adverb place + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.adverbPlace()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "east" + * ``` + */ + adverbPlace(): string; + + /** + * Adverb that specifies the exact time an action occurs. + * @returns a random adverb time definite + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.adverbTimeDefinite()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "now" + * ``` + */ + adverbTimeDefinite(): string; + + /** + * Adverb that gives a general or unspecified time frame. + * @returns a random adverb time indefinite + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.adverbTimeIndefinite()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "late" + * ``` + */ + adverbTimeIndefinite(): string; + + /** + * Living creature with the ability to move, eat, and interact with its environment. + * @returns a random animal + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.animal()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "crow" + * ``` + */ + animal(): string; + + /** + * Type of animal, such as mammals, birds, reptiles, etc.. + * @returns a random animal type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.animalType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "amphibians" + * ``` + */ + animalType(): string; + + /** + * Person or group creating and developing an application. + * @returns a random app author + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.appAuthor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Wendell Luettgen" + * ``` + */ + appAuthor(): string; + + /** + * Software program designed for a specific purpose or task on a computer or mobile device. + * @returns a random app name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.appName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Hillbe" + * ``` + */ + appName(): string; + + /** + * Particular release of an application in Semantic Versioning format. + * @returns a random app version + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.appVersion()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "5.3.20" + * ``` + */ + appVersion(): string; + + /** + * Measures the alcohol content in beer. + * @returns a random beer alcohol + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.beerAlcohol()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "6.5%" + * ``` + */ + beerAlcohol(): string; + + /** + * Scale indicating the concentration of extract in worts. + * @returns a random beer blg + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.beerBlg()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "13.4°Blg" + * ``` + */ + beerBlg(): string; + + /** + * The flower used in brewing to add flavor, aroma, and bitterness to beer. + * @returns a random beer hop + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.beerHop()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Nugget" + * ``` + */ + beerHop(): string; + + /** + * Scale measuring bitterness of beer from hops. + * @returns a random beer ibu + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.beerIbu()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "80 IBU" + * ``` + */ + beerIbu(): string; + + /** + * Processed barley or other grains, provides sugars for fermentation and flavor to beer. + * @returns a random beer malt + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.beerMalt()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Roasted barley" + * ``` + */ + beerMalt(): string; + + /** + * Specific brand or variety of beer. + * @returns a random beer name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.beerName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "90 Minute IPA" + * ``` + */ + beerName(): string; + + /** + * Distinct characteristics and flavors of beer. + * @returns a random beer style + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.beerStyle()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "English Brown Ale" + * ``` + */ + beerStyle(): string; + + /** + * Microorganism used in brewing to ferment sugars, producing alcohol and carbonation in beer. + * @returns a random beer yeast + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.beerYeast()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "2035 - American Lager" + * ``` + */ + beerYeast(): string; + + /** + * Distinct species of birds. + * @returns a random bird + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.bird()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "lovebird" + * ``` + */ + bird(): string; + + /** + * Cryptographic identifier used to receive, store, and send Bitcoin cryptocurrency in a peer-to-peer network. + * @returns a random bitcoin address + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.bitcoinAddress()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "1t1xAUWhqY1QsZFAlYm6Z75zxerJ" + * ``` + */ + bitcoinAddress(): string; + + /** + * Secret, secure code that allows the owner to access and control their Bitcoin holdings. + * @returns a random bitcoin private key + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.bitcoinPrivateKey()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "5KgZY1TaSmxpQcUsBAkWXFnidi9UsGRsoQq3dWe4oZz5zrG9VVC" + * ``` + */ + bitcoinPrivateKey(): string; + + /** + * Brief description or summary of a company's purpose, products, or services. + * @returns a random blurb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.blurb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Pride" + * ``` + */ + blurb(): string; + + /** + * Written or printed work consisting of pages bound together, covering various subjects or stories. + * @returns a random book + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.book()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Title":"The Brothers Karamazov","Author":"Albert Camus","Genre":"Urban"} + * ``` + */ + book(): Record; + + /** + * The individual who wrote or created the content of a book. + * @returns a random book author + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.bookAuthor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Edgar Allan Poe" + * ``` + */ + bookAuthor(): string; + + /** + * Category or type of book defined by its content, style, or form. + * @returns a random book genre + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.bookGenre()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Erotic" + * ``` + */ + bookGenre(): string; + + /** + * The specific name given to a book. + * @returns a random book title + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.bookTitle()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "The Brothers Karamazov" + * ``` + */ + bookTitle(): string; + + /** + * Data type that represents one of two possible values, typically true or false. + * @returns a random boolean + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.boolean()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * true + * ``` + */ + boolean(): boolean; + + /** + * First meal of the day, typically eaten in the morning. + * @returns a random breakfast + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.breakfast()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Ham omelet deluxe" + * ``` + */ + breakfast(): string; + + /** + * Random bs company word. + * @returns a random bs + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.bs()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "24-7" + * ``` + */ + bs(): string; + + /** + * Trendy or overused term often used in business to sound impressive. + * @returns a random buzzword + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.buzzword()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Reverse-engineered" + * ``` + */ + buzzword(): string; + + /** + * Wheeled motor vehicle used for transportation. + * @returns a random car + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.car()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Type":"Passenger car compact","Fuel":"CNG","Transmission":"Automatic","Brand":"Daewoo","Model":"Thunderbird","Year":1905} + * ``` + */ + car(): Record; + + /** + * Type of energy source a car uses. + * @returns a random car fuel type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.carFuelType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Ethanol" + * ``` + */ + carFuelType(): string; + + /** + * Company or brand that manufactures and designs cars. + * @returns a random car maker + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.carMaker()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Lancia" + * ``` + */ + carMaker(): string; + + /** + * Specific design or version of a car produced by a manufacturer. + * @returns a random car model + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.carModel()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Tucson 4wd" + * ``` + */ + carModel(): string; + + /** + * Mechanism a car uses to transmit power from the engine to the wheels. + * @returns a random car transmission type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.carTransmissionType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Manual" + * ``` + */ + carTransmissionType(): string; + + /** + * Classification of cars based on size, use, or body style. + * @returns a random car type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.carType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Passenger car compact" + * ``` + */ + carType(): string; + + /** + * Various breeds that define different cats. + * @returns a random cat + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.cat()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Toyger" + * ``` + */ + cat(): string; + + /** + * Famous person known for acting in films, television, or theater. + * @returns a random celebrity actor + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.celebrityActor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Ben Affleck" + * ``` + */ + celebrityActor(): string; + + /** + * High-profile individual known for significant achievements in business or entrepreneurship. + * @returns a random celebrity business + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.celebrityBusiness()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Larry Ellison" + * ``` + */ + celebrityBusiness(): string; + + /** + * Famous athlete known for achievements in a particular sport. + * @returns a random celebrity sport + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.celebritySport()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Greg Lemond" + * ``` + */ + celebritySport(): string; + + /** + * The specific identification string sent by the Google Chrome web browser when making requests on the internet. + * @returns a random chrome user agent + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.chromeUserAgent()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mozilla/5.0 (X11; Linux i686) AppleWebKit/5340 (KHTML, like Gecko) Chrome/40.0.816.0 Mobile Safari/5340" + * ``` + */ + chromeUserAgent(): string; + + /** + * Part of a country with significant population, often a central hub for culture and commerce. + * @returns a random city + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.city()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Hialeah" + * ``` + */ + city(): string; + + /** + * Hue seen by the eye, returns the name of the color like red or blue. + * @returns a random color + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.color()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "MediumVioletRed" + * ``` + */ + color(): string; + + /** + * Statement or remark expressing an opinion, observation, or reaction. + * @returns a random comment + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.comment()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "wow" + * ``` + */ + comment(): string; + + /** + * Designated official name of a business or organization. + * @returns a random company + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.company()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Xatori" + * ``` + */ + company(): string; + + /** + * Suffix at the end of a company name, indicating business structure, like 'Inc.' or 'LLC'. + * @returns a random company suffix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.companySuffix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "LLC" + * ``` + */ + companySuffix(): string; + + /** + * Word used to connect words or sentences. + * @returns a random connective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.connective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "for another" + * ``` + */ + connective(): string; + + /** + * Connective word used to indicate a cause-and-effect relationship between events or actions. + * @returns a random connective casual + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.connectiveCasual()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "accordingly" + * ``` + */ + connectiveCasual(): string; + + /** + * Connective word used to indicate a comparison between two or more things. + * @returns a random connective comparitive + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.connectiveComparitive()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "yet" + * ``` + */ + connectiveComparitive(): string; + + /** + * Connective word used to express dissatisfaction or complaints about a situation. + * @returns a random connective complaint + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.connectiveComplaint()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "for example" + * ``` + */ + connectiveComplaint(): string; + + /** + * Connective word used to provide examples or illustrations of a concept or idea. + * @returns a random connective examplify + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.connectiveExamplify()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "accordingly" + * ``` + */ + connectiveExamplify(): string; + + /** + * Connective word used to list or enumerate items or examples. + * @returns a random connective listing + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.connectiveListing()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "for another" + * ``` + */ + connectiveListing(): string; + + /** + * Connective word used to indicate a temporal relationship between events or actions. + * @returns a random connective time + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.connectiveTime()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "until then" + * ``` + */ + connectiveTime(): string; + + /** + * Nation with its own government and defined territory. + * @returns a random country + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.country()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Togo" + * ``` + */ + country(): string; + + /** + * Shortened 2-letter form of a country's name. + * @returns a random country abbreviation + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.countryAbbreviation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "TG" + * ``` + */ + countryAbbreviation(): string; + + /** + * Plastic card allowing users to make purchases on credit, with payment due at a later date. + * @returns a random credit card + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.creditCard()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Type":"Mastercard","Number":"2713883851665706","Exp":"04/32","Cvv":"489"} + * ``` + */ + creditCard(): Record; + + /** + * Three or four-digit security code on a credit card used for online and remote transactions. + * @returns a random credit card cvv + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.creditCardCVV()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "405" + * ``` + */ + creditCardCVV(): string; + + /** + * Date when a credit card becomes invalid and cannot be used for transactions. + * @returns a random credit card exp + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.creditCardExp()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "10/27" + * ``` + */ + creditCardExp(): string; + + /** + * Month of the date when a credit card becomes invalid and cannot be used for transactions. + * @returns a random credit card exp month + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.creditCardExpMonth()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "07" + * ``` + */ + creditCardExpMonth(): string; + + /** + * Year of the date when a credit card becomes invalid and cannot be used for transactions. + * @returns a random credit card exp year + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.creditCardExpYear()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "25" + * ``` + */ + creditCardExpYear(): string; + + /** + * Unique numerical identifier on a credit card used for making electronic payments and transactions. + * @returns a random credit card number + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.creditCardNumber(["none","how","these","keep","trip","congolese","choir","computer","still","far"],["unless","army","party","riches","theirs","instead","here","mine","whichever","that"],false)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0" + * ``` + */ + creditCardNumber(types: string[], bins: string[], gaps: boolean): string; + + /** + * Unique numerical identifier on a credit card used for making electronic payments and transactions. + * @returns a random credit card number formatted + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.creditCardNumberFormatted()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "4111-1111-1111-1111" + * ``` + */ + creditCardNumberFormatted(): string; + + /** + * Classification of credit cards based on the issuing company. + * @returns a random credit card type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.creditCardType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mastercard" + * ``` + */ + creditCardType(): string; + + /** + * Medium of exchange, often in the form of paper money or coins, used for trade and transactions. + * @returns a random currency + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.currency()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Short":"VEF","Long":"Venezuela Bolivar"} + * ``` + */ + currency(): Record; + + /** + * Complete name of a specific currency used for official identification in financial transactions. + * @returns a random currency long + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.currencyLong()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Venezuela Bolivar" + * ``` + */ + currencyLong(): string; + + /** + * Short 3-letter word used to represent a specific currency. + * @returns a random currency short + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.currencyShort()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "VEF" + * ``` + */ + currencyShort(): string; + + /** + * Unique identifier for securities, especially bonds, in the United States and Canada. + * @returns a random cusip + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.cusip()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "S4BL2MVY6" + * ``` + */ + cusip(): string; + + /** + * A problem or issue encountered while accessing or managing a database. + * @returns a random database error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.databaseError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + databaseError(): string; + + /** + * Representation of a specific day, month, and year, often used for chronological reference. + * @returns a random date + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.date("RFC3339")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "1939-12-01T03:42:03Z" + * ``` + */ + date(format: string): string; + + /** + * Random date between two ranges. + * @returns a random daterange + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.dateRange("1970-01-01","2024-03-13","yyyy-MM-dd")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "2005-03-22" + * ``` + */ + dateRange(startdate: string, enddate: string, format: string): string; + + /** + * 24-hour period equivalent to one rotation of Earth on its axis. + * @returns a random day + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.day()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 22 + * ``` + */ + day(): number; + + /** + * Adjective used to point out specific things. + * @returns a random demonstrative adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.demonstrativeAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "these" + * ``` + */ + demonstrativeAdjective(): string; + + /** + * Adjective that provides detailed characteristics about a noun. + * @returns a random descriptive adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.descriptiveAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "elated" + * ``` + */ + descriptiveAdjective(): string; + + /** + * Sweet treat often enjoyed after a meal. + * @returns a random dessert + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.dessert()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Lindas bloodshot eyeballs" + * ``` + */ + dessert(): string; + + /** + * Small, cube-shaped objects used in games of chance for random outcomes. + * @returns a random dice + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.dice(13,[5,4,13])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * [5,3,6,2,5,1,1,4,1,1,1,3,1] + * ``` + */ + dice(numdice: number, sides: number[]): number[]; + + /** + * Numerical symbol used to represent numbers. + * @returns a random digit + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.digit()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0" + * ``` + */ + digit(): string; + + /** + * string of length N consisting of ASCII digits. + * @returns a random digitn + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.digitN(13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0053883851665" + * ``` + */ + digitN(count: number): string; + + /** + * Evening meal, typically the day's main and most substantial meal. + * @returns a random dinner + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.dinner()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Asian broccoli salad" + * ``` + */ + dinner(): string; + + /** + * Various breeds that define different dogs. + * @returns a random dog + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.dog()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Staffordshire Bullterrier" + * ``` + */ + dog(): string; + + /** + * Human-readable web address used to identify websites on the internet. + * @returns a random domain name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.domainName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "internalenhance.org" + * ``` + */ + domainName(): string; + + /** + * The part of a domain name that comes after the last dot, indicating its type or purpose. + * @returns a random domain suffix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.domainSuffix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "info" + * ``` + */ + domainSuffix(): string; + + /** + * Liquid consumed for hydration, pleasure, or nutritional benefits. + * @returns a random drink + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.drink()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Water" + * ``` + */ + drink(): string; + + /** + * Electronic mail used for sending digital messages and communication over the internet. + * @returns a random email + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.email()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "josiahthiel@luettgen.biz" + * ``` + */ + email(): string; + + /** + * Digital symbol expressing feelings or ideas in text messages and online chats. + * @returns a random emoji + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.emoji()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "🐮" + * ``` + */ + emoji(): string; + + /** + * Alternative name or keyword used to represent a specific emoji in text or code. + * @returns a random emoji alias + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.emojiAlias()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "slovakia" + * ``` + */ + emojiAlias(): string; + + /** + * Group or classification of emojis based on their common theme or use, like 'smileys' or 'animals'. + * @returns a random emoji category + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.emojiCategory()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Smileys & Emotion" + * ``` + */ + emojiCategory(): string; + + /** + * Brief explanation of the meaning or emotion conveyed by an emoji. + * @returns a random emoji description + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.emojiDescription()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "disguised face" + * ``` + */ + emojiDescription(): string; + + /** + * Label or keyword associated with an emoji to categorize or search for it easily. + * @returns a random emoji tag + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.emojiTag()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "lick" + * ``` + */ + emojiTag(): string; + + /** + * Message displayed by a computer or software when a problem or mistake is encountered. + * @returns a random error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.error()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + error(): string; + + /** + * Various categories conveying details about encountered errors. + * @returns a random error object word + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.errorObjectWord()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + errorObjectWord(): string; + + /** + * Animal name commonly found on a farm. + * @returns a random farm animal + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.farmAnimal()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Cow" + * ``` + */ + farmAnimal(): string; + + /** + * Suffix appended to a filename indicating its format or type. + * @returns a random file extension + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.fileExtension()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "max" + * ``` + */ + fileExtension(): string; + + /** + * Defines file format and nature for browsers and email clients using standardized identifiers. + * @returns a random file mime type + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.fileMimeType()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "text/html" + * ``` + */ + fileMimeType(): string; + + /** + * The specific identification string sent by the Firefox web browser when making requests on the internet. + * @returns a random firefox user agent + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.firefoxUserAgent()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_9_1 rv:5.0) Gecko/1979-07-30 Firefox/37.0" + * ``` + */ + firefoxUserAgent(): string; + + /** + * The name given to a person at birth. + * @returns a random first name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.firstName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Josiah" + * ``` + */ + firstName(): string; + + /** + * Data type representing floating-point numbers with 32 bits of precision in computing. + * @returns a random float32 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.float32()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 1.9168120387159532e+38 + * ``` + */ + float32(): number; + + /** + * Float32 value between given range. + * @returns a random float32 range + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.float32Range(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + float32Range(min: number, max: number): number; + + /** + * Data type representing floating-point numbers with 64 bits of precision in computing. + * @returns a random float64 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.float64()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 1.012641406418422e+308 + * ``` + */ + float64(): number; + + /** + * Float64 value between given range. + * @returns a random float64 range + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.float64Range(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + float64Range(min: number, max: number): number; + + /** + * Edible plant part, typically sweet, enjoyed as a natural snack or dessert. + * @returns a random fruit + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.fruit()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Avocado" + * ``` + */ + fruit(): string; + + /** + * Date that has occurred after the current moment in time. + * @returns a random futuretime + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.futureTime()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "2024-03-14T03:32:19.316905081+01:00" + * ``` + */ + futureTime(): string; + + /** + * Communication failure in the high-performance, open-source universal RPC framework. + * @returns a random grpc error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.gRPCError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + gRPCError(): string; + + /** + * User-selected online username or alias used for identification in games. + * @returns a random gamertag + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.gamertag()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "BraveArmadillo" + * ``` + */ + gamertag(): string; + + /** + * Classification based on social and cultural norms that identifies an individual. + * @returns a random gender + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.gender()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "male" + * ``` + */ + gender(): string; + + /** + * Abbreviations and acronyms commonly used in the hacking and cybersecurity community. + * @returns a random hacker abbreviation + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hackerAbbreviation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "GB" + * ``` + */ + hackerAbbreviation(): string; + + /** + * Adjectives describing terms often associated with hackers and cybersecurity experts. + * @returns a random hacker adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hackerAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "auxiliary" + * ``` + */ + hackerAdjective(): string; + + /** + * Noun representing an element, tool, or concept within the realm of hacking and cybersecurity. + * @returns a random hacker noun + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hackerNoun()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "application" + * ``` + */ + hackerNoun(): string; + + /** + * Informal jargon and slang used in the hacking and cybersecurity community. + * @returns a random hacker phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hackerPhrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Try to transpile the EXE sensor, maybe it will deconstruct the wireless interface!" + * ``` + */ + hackerPhrase(): string; + + /** + * Verbs associated with actions and activities in the field of hacking and cybersecurity. + * @returns a random hacker verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hackerVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "read" + * ``` + */ + hackerVerb(): string; + + /** + * Verb describing actions and activities related to hacking, often involving computer systems and security. + * @returns a random hackering verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hackeringVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "quantifying" + * ``` + */ + hackeringVerb(): string; + + /** + * Auxiliary verb that helps the main verb complete the sentence. + * @returns a random helping verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.helpingVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "are" + * ``` + */ + helpingVerb(): string; + + /** + * Six-digit code representing a color in the color model. + * @returns a random hex color + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hexColor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "#bd38ac" + * ``` + */ + hexColor(): string; + + /** + * Hexadecimal representation of an 128-bit unsigned integer. + * @returns a random hexuint128 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hexUint128()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa1b0c903d687691402ee58a2330f9c5" + * ``` + */ + hexUint128(): string; + + /** + * Hexadecimal representation of an 16-bit unsigned integer. + * @returns a random hexuint16 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hexUint16()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa1b" + * ``` + */ + hexUint16(): string; + + /** + * Hexadecimal representation of an 256-bit unsigned integer. + * @returns a random hexuint256 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hexUint256()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa1b0c903d687691402ee58a2330f9c54b727953d2379f94d23ea4cdad195b6a" + * ``` + */ + hexUint256(): string; + + /** + * Hexadecimal representation of an 32-bit unsigned integer. + * @returns a random hexuint32 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hexUint32()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa1b0c90" + * ``` + */ + hexUint32(): string; + + /** + * Hexadecimal representation of an 64-bit unsigned integer. + * @returns a random hexuint64 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hexUint64()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa1b0c903d687691" + * ``` + */ + hexUint64(): string; + + /** + * Hexadecimal representation of an 8-bit unsigned integer. + * @returns a random hexuint8 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hexUint8()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "0xaa" + * ``` + */ + hexUint8(): string; + + /** + * Paragraph showcasing the use of trendy and unconventional vocabulary associated with hipster culture. + * @returns a random hipster paragraph + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hipsterParagraph(13,13,17,"\u003cbr /\u003e")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Offal forage pinterest direct trade pug skateboard food truck flannel cold-pressed church-key keffiyeh wolf pop-up jean shorts before they sold out hoodie roof. Portland intelligentsia gastropub tumblr try-hard offal pork belly jean shorts freegan umami marfa mumblecore food truck gluten-free stumptown keytar locavore. Organic forage post-ironic YOLO crucifix occupy deep v skateboard put a bird on it selvage cornhole 8-bit aesthetic squid tacos waistcoat forage. Food truck whatever YOLO sustainable normcore yr brunch keytar humblebrag pickled humblebrag pour-over drinking bicycle rights ethical pinterest crucifix. Cardigan paleo disrupt food truck hella Godard humblebrag keytar cornhole sriracha occupy twee bicycle rights kickstarter umami pabst wayfarers. Flannel pour-over truffaut cardigan salvia gastropub vinegar wayfarers schlitz loko meh pop-up iPhone stumptown cardigan mustache hashtag. Tofu tumblr green juice shoreditch skateboard tofu seitan tote bag readymade actually master gastropub banjo banjo artisan banh mi gastropub. Salvia tousled blog kale chips +1 taxidermy sustainable wolf mustache readymade microdosing kombucha hoodie ugh blue bottle goth humblebrag. Wayfarers truffaut bespoke irony vegan offal knausgaard kombucha Wes Anderson dreamcatcher readymade 8-bit pug shoreditch whatever bushwick letterpress. Knausgaard +1 occupy gastropub cronut disrupt VHS tousled plaid bushwick ramps biodiesel knausgaard venmo authentic neutra scenester. Tacos loko 90's austin gastropub deep v YOLO PBR&B hashtag polaroid mustache blue bottle occupy marfa messenger bag sustainable venmo. Photo booth cronut banjo portland paleo migas Wes Anderson etsy blog food truck keytar iPhone butcher fashion axe fashion axe pabst jean shorts. Street iPhone whatever selfies cred tattooed vice kogi Thundercats tumblr roof photo booth you probably haven't heard of them +1 shoreditch whatever VHS.
Marfa keffiyeh trust fund meh quinoa street loko trust fund bitters pitchfork literally pop-up swag crucifix mustache etsy chartreuse. Crucifix skateboard authentic pop-up vinyl truffaut crucifix aesthetic pour-over artisan occupy tote bag vice hoodie truffaut cold-pressed semiotics. Hella seitan umami stumptown waistcoat hashtag ramps shoreditch whatever artisan pug taxidermy cornhole Godard narwhal synth art party. Tacos letterpress tofu letterpress pork belly chicharrones irony occupy pug sartorial slow-carb carry pork belly authentic kale chips fanny pack shabby chic. Chicharrones shabby chic lumbersexual helvetica mumblecore loko cold-pressed fashion axe forage distillery fingerstache franzen wayfarers ethical street shoreditch lo-fi. Pickled goth hella pop-up wolf banjo chartreuse you probably haven't heard of them twee selfies street meggings locavore you probably haven't heard of them irony cronut drinking. Kickstarter kombucha semiotics hashtag typewriter cornhole flexitarian ugh selfies next level waistcoat bicycle rights you probably haven't heard of them beard offal keytar letterpress. Post-ironic occupy locavore bespoke ugh yr gastropub vice tattooed fingerstache organic wayfarers narwhal gentrify try-hard sustainable pork belly. Vinyl jean shorts raw denim vinegar iPhone try-hard distillery meh fingerstache tattooed five dollar toast chia gluten-free schlitz pitchfork aesthetic sustainable. Messenger bag selvage vinegar try-hard tumblr squid kickstarter crucifix brooklyn put a bird on it plaid flexitarian gastropub hashtag meggings dreamcatcher tilde. Poutine disrupt loko food truck sriracha stumptown 90's Wes Anderson keffiyeh swag photo booth trust fund master tattooed ramps actually pour-over. Scenester goth gluten-free carry listicle Godard salvia XOXO everyday tousled raw denim normcore irony iPhone dreamcatcher taxidermy drinking. Umami green juice food truck helvetica slow-carb cronut vinegar typewriter ethical mustache hoodie sustainable cleanse typewriter echo cronut organic.
Typewriter ennui pork belly street swag sriracha ramps tilde sustainable tousled pug hashtag typewriter hashtag dreamcatcher cray literally. Master listicle salvia wolf banjo flannel cornhole tote bag try-hard flexitarian seitan pabst normcore austin polaroid XOXO brooklyn. Slow-carb salvia put a bird on it cardigan hella pickled polaroid tilde pabst fixie neutra tofu 8-bit freegan distillery microdosing craft beer. Viral five dollar toast sustainable Wes Anderson green juice etsy +1 squid cray pork belly jean shorts distillery bicycle rights banjo humblebrag ugh raw denim. Pabst asymmetrical lomo lumbersexual 90's chartreuse messenger bag try-hard bicycle rights literally bespoke five dollar toast quinoa intelligentsia jean shorts lumbersexual whatever. Cardigan slow-carb celiac meh tattooed biodiesel organic carry cornhole ennui tumblr humblebrag YOLO beard 8-bit tilde bicycle rights. Blue bottle PBR&B cleanse Wes Anderson marfa fanny pack blue bottle church-key chartreuse portland shoreditch crucifix iPhone direct trade everyday cliche 8-bit. Butcher mixtape church-key migas readymade shabby chic tacos Thundercats 8-bit forage sustainable salvia heirloom williamsburg trust fund forage austin. Keffiyeh post-ironic occupy knausgaard kitsch chillwave cornhole meggings single-origin coffee cronut intelligentsia VHS occupy poutine PBR&B brunch knausgaard. Keytar DIY knausgaard salvia poutine cray blue bottle biodiesel umami trust fund slow-carb distillery celiac biodiesel dreamcatcher park photo booth. Kinfolk brunch hella chia hammock ugh +1 farm-to-table XOXO loko green juice meggings intelligentsia cornhole brooklyn loko vegan. Cliche ennui pork belly migas biodiesel truffaut irony small batch synth goth artisan post-ironic 3 wolf moon church-key tote bag bicycle rights PBR&B. Cold-pressed occupy put a bird on it brunch cronut farm-to-table lumbersexual carry 90's artisan flannel 8-bit williamsburg leggings viral mustache selvage.
Loko yr distillery offal truffaut pour-over +1 Yuccie mumblecore ugh scenester try-hard iPhone kombucha hoodie franzen irony. Sustainable 90's Yuccie retro squid authentic loko fixie polaroid Thundercats +1 kitsch paleo selfies tousled messenger bag slow-carb. Fanny pack selvage plaid photo booth asymmetrical stumptown polaroid echo squid artisan bushwick neutra knausgaard pour-over pour-over ugh meh. Wes Anderson portland carry selvage schlitz authentic cronut +1 kogi ennui vegan bicycle rights organic vice lumbersexual shabby chic meggings. Leggings literally fingerstache brooklyn bicycle rights keffiyeh ennui Yuccie pop-up hammock mustache kombucha banjo vice 90's Wes Anderson celiac. Put a bird on it fanny pack neutra keytar wayfarers meh cold-pressed flexitarian mlkshk keffiyeh XOXO Yuccie chambray raw denim tote bag skateboard normcore. Synth photo booth chillwave flannel before they sold out tacos typewriter distillery 90's biodiesel vinyl YOLO try-hard lomo put a bird on it pour-over chicharrones. Vice next level narwhal XOXO portland vinyl Godard sustainable marfa master mustache seitan trust fund hella sartorial try-hard blue bottle. Locavore literally irony polaroid tofu selfies VHS church-key Yuccie tousled street health +1 whatever blue bottle chambray narwhal. Aesthetic offal cronut try-hard letterpress tote bag slow-carb gastropub pinterest cliche hoodie craft beer green juice gentrify mumblecore iPhone butcher. Marfa mlkshk goth direct trade aesthetic kinfolk franzen Godard fashion axe heirloom bicycle rights tousled art party master selfies master truffaut. XOXO ugh occupy wolf loko celiac helvetica street fingerstache plaid lumbersexual typewriter park messenger bag fashion axe freegan neutra. Disrupt helvetica pinterest meggings before they sold out sriracha VHS listicle trust fund street echo truffaut brunch loko pop-up vegan single-origin coffee.
Meditation mlkshk trust fund swag roof asymmetrical venmo hella waistcoat hashtag brunch mixtape celiac chartreuse intelligentsia occupy cardigan. Blue bottle plaid cray pinterest 90's wayfarers meggings everyday DIY swag flannel distillery roof skateboard venmo truffaut craft beer. Flexitarian skateboard marfa lomo Yuccie franzen pabst portland pork belly pour-over bespoke cold-pressed everyday organic venmo 90's banjo. Normcore kombucha biodiesel pop-up kogi sriracha 8-bit distillery dreamcatcher iPhone tofu migas chillwave viral photo booth seitan cred. Jean shorts +1 raw denim williamsburg offal cray church-key listicle venmo direct trade Yuccie readymade polaroid shoreditch twee next level cred. Cardigan salvia meggings vice butcher authentic butcher pinterest photo booth try-hard loko bushwick tilde tousled lumbersexual gastropub occupy. Freegan irony microdosing poutine retro wayfarers goth intelligentsia artisan pabst hammock before they sold out bitters brunch try-hard tacos polaroid. Migas slow-carb art party hammock art party slow-carb celiac mlkshk shabby chic tacos chicharrones scenester lo-fi pickled actually disrupt vice. Cray taxidermy crucifix artisan meditation quinoa street loko austin everyday DIY waistcoat sustainable lo-fi organic forage pitchfork. Retro etsy you probably haven't heard of them synth pork belly pabst flannel distillery Godard knausgaard loko actually iPhone Godard scenester DIY offal. Health meh twee williamsburg you probably haven't heard of them organic listicle swag bicycle rights austin YOLO ethical mixtape cray sustainable austin neutra. Narwhal tote bag cred art party cliche cardigan leggings paleo hashtag fingerstache leggings carry ugh twee distillery mixtape mumblecore. Disrupt hoodie paleo selfies cliche ennui health truffaut single-origin coffee pabst franzen cold-pressed gluten-free banh mi small batch meh YOLO.
Health knausgaard vinegar intelligentsia art party venmo listicle heirloom post-ironic truffaut church-key knausgaard tousled chartreuse gentrify 90's beard. Drinking goth squid cray Wes Anderson kogi +1 polaroid umami humblebrag marfa marfa portland venmo lo-fi knausgaard microdosing. Mumblecore lumbersexual normcore banjo shabby chic umami Wes Anderson salvia pabst leggings locavore fixie ethical mixtape waistcoat trust fund art party. Church-key paleo mustache knausgaard flannel dreamcatcher forage humblebrag cardigan small batch truffaut viral freegan church-key austin tattooed kitsch. 8-bit brunch roof Godard Wes Anderson direct trade blue bottle cray lomo kogi kitsch Wes Anderson vinegar slow-carb sartorial bushwick vice. Bespoke twee before they sold out freegan drinking cred ugh umami photo booth intelligentsia truffaut beard leggings locavore asymmetrical pabst aesthetic. Pickled kinfolk helvetica 8-bit flexitarian VHS brooklyn art party wolf asymmetrical swag kitsch hoodie dreamcatcher post-ironic scenester butcher. Celiac portland food truck franzen celiac put a bird on it pour-over echo single-origin coffee ennui hashtag freegan readymade scenester master photo booth deep v. Narwhal lomo gastropub +1 tumblr semiotics schlitz bespoke salvia ethical post-ironic VHS green juice green juice pinterest schlitz cornhole. Fingerstache fanny pack distillery pickled 8-bit fanny pack pitchfork polaroid bushwick artisan Godard ugh irony meggings migas meditation crucifix. Hashtag cold-pressed you probably haven't heard of them asymmetrical five dollar toast messenger bag cray +1 lomo readymade shabby chic organic lomo retro flexitarian venmo heirloom. Photo booth hammock fashion axe slow-carb deep v cleanse hella vinyl organic Godard helvetica typewriter cold-pressed cray selvage readymade pour-over. Pork belly disrupt XOXO gentrify fanny pack pabst cliche brooklyn fashion axe pug whatever irony raw denim blue bottle schlitz etsy organic.
Forage seitan typewriter VHS kogi pickled umami neutra chicharrones banh mi pabst carry chillwave mlkshk shabby chic pour-over mustache. Quinoa wayfarers park vice iPhone authentic celiac literally lo-fi whatever seitan banjo taxidermy iPhone flannel mumblecore VHS. Pug twee slow-carb celiac chicharrones keffiyeh neutra roof skateboard biodiesel mlkshk pour-over schlitz before they sold out beard hella chillwave. Heirloom paleo flexitarian stumptown leggings mustache messenger bag everyday roof pickled selfies taxidermy direct trade asymmetrical you probably haven't heard of them green juice bushwick. Waistcoat chia lomo tofu carry DIY franzen iPhone viral humblebrag vinegar forage dreamcatcher street aesthetic narwhal ramps. Bitters neutra cardigan cardigan 90's taxidermy retro swag VHS everyday meditation portland scenester tattooed salvia goth small batch. Neutra migas intelligentsia cred craft beer intelligentsia five dollar toast irony locavore etsy pug scenester pickled slow-carb +1 pabst scenester. Farm-to-table chartreuse occupy swag semiotics farm-to-table cred etsy readymade vice mumblecore organic put a bird on it street next level brooklyn pork belly. Trust fund pour-over park before they sold out meditation art party narwhal pork belly bicycle rights swag trust fund Yuccie loko ramps green juice intelligentsia etsy. Mustache tumblr chillwave cornhole single-origin coffee meh umami schlitz microdosing selvage synth 8-bit carry fanny pack VHS tacos sartorial. Asymmetrical organic austin put a bird on it direct trade park flexitarian cred deep v echo tote bag ramps pitchfork kombucha mixtape stumptown intelligentsia. Skateboard paleo hammock offal direct trade asymmetrical Godard tilde cornhole brunch biodiesel hashtag venmo blog sustainable shoreditch street. Shoreditch migas helvetica cornhole hoodie heirloom hashtag fashion axe mixtape 3 wolf moon cliche microdosing crucifix vinegar roof pickled you probably haven't heard of them.
Cliche carry kickstarter hella VHS asymmetrical cray park +1 sustainable crucifix actually direct trade meditation vinyl trust fund shabby chic. Lo-fi crucifix pickled fanny pack synth heirloom meditation synth food truck selfies flexitarian cleanse pickled banjo beard selvage selvage. Fingerstache vinyl asymmetrical Wes Anderson craft beer hella Wes Anderson pug ramps offal freegan mustache cred hammock deep v gentrify knausgaard. Hella viral vinegar food truck green juice tote bag try-hard banh mi direct trade readymade gastropub semiotics raw denim banh mi truffaut vinegar butcher. Waistcoat helvetica freegan goth salvia pop-up pabst viral cliche put a bird on it yr venmo celiac pop-up selvage sartorial helvetica. Selvage sriracha microdosing you probably haven't heard of them readymade polaroid art party pug +1 everyday truffaut messenger bag meggings tote bag tousled fashion axe tilde. Gluten-free paleo asymmetrical dreamcatcher vegan 90's etsy tousled kogi 90's occupy brooklyn asymmetrical XOXO humblebrag ennui Wes Anderson. Asymmetrical austin mixtape austin butcher post-ironic trust fund knausgaard beard raw denim narwhal tacos paleo pabst franzen ugh kinfolk. Wes Anderson master swag chillwave beard pour-over tote bag vice etsy cronut migas umami microdosing fanny pack YOLO tilde meggings. Cronut seitan aesthetic kogi narwhal ennui yr put a bird on it sustainable mumblecore readymade ugh irony paleo +1 hella hella. Raw denim direct trade forage migas readymade kickstarter irony chartreuse intelligentsia pop-up +1 etsy fixie pitchfork pickled semiotics church-key. Fanny pack quinoa occupy bicycle rights meh mustache whatever fanny pack cold-pressed seitan bitters ethical seitan master kitsch bicycle rights cronut. Biodiesel Yuccie hoodie Wes Anderson flexitarian vinyl cliche gastropub occupy letterpress polaroid artisan mixtape everyday semiotics umami church-key.
Waistcoat craft beer single-origin coffee forage freegan vinegar ethical portland brunch try-hard farm-to-table venmo semiotics banh mi hashtag brunch mustache. Trust fund cornhole carry portland brunch Wes Anderson tacos trust fund messenger bag beard sartorial VHS PBR&B swag tilde keffiyeh meh. Five dollar toast twee listicle quinoa umami quinoa kale chips cardigan loko XOXO vice ennui wayfarers pop-up locavore keffiyeh narwhal. Lo-fi tumblr meggings farm-to-table semiotics knausgaard skateboard art party seitan celiac austin cardigan YOLO gluten-free tousled banh mi irony. Normcore truffaut chambray locavore gentrify meh cred vice art party leggings blog gentrify heirloom chicharrones vinegar tacos trust fund. Vice DIY skateboard tattooed offal meditation occupy ramps wayfarers fanny pack farm-to-table craft beer sartorial fanny pack humblebrag meggings XOXO. Tote bag gastropub cardigan kickstarter DIY franzen pour-over vinegar street ennui gastropub neutra retro lomo banjo hashtag bespoke. Fanny pack flexitarian swag bespoke biodiesel pug lumbersexual food truck Wes Anderson farm-to-table keffiyeh blog cardigan jean shorts beard artisan meditation. Everyday shoreditch flexitarian master pour-over cornhole vinyl viral butcher bushwick hoodie pug kickstarter brooklyn marfa cold-pressed tousled. Umami roof master bitters brooklyn tattooed organic williamsburg irony narwhal literally pinterest jean shorts intelligentsia taxidermy brooklyn tumblr. DIY neutra umami pug brooklyn heirloom art party chambray leggings fashion axe disrupt YOLO selvage taxidermy gastropub venmo cold-pressed. Asymmetrical carry austin stumptown cardigan banjo kitsch 3 wolf moon chicharrones DIY kogi gastropub crucifix truffaut 8-bit flannel sriracha. Tilde scenester goth taxidermy kale chips shoreditch food truck venmo gluten-free +1 pop-up seitan echo salvia church-key lomo waistcoat.
Thundercats pabst listicle chartreuse tilde irony umami carry banjo organic pop-up fashion axe roof scenester intelligentsia cardigan carry. Marfa schlitz photo booth retro shabby chic PBR&B cold-pressed cred pop-up truffaut yr swag kombucha you probably haven't heard of them DIY health venmo. Organic williamsburg literally viral mumblecore farm-to-table church-key leggings hella photo booth viral knausgaard organic kombucha paleo venmo before they sold out. Plaid blog park XOXO deep v vegan distillery irony slow-carb blue bottle scenester iPhone tumblr listicle selfies mlkshk drinking. Lo-fi pug kogi leggings williamsburg distillery YOLO farm-to-table selvage street vinegar whatever VHS you probably haven't heard of them master helvetica viral. Pour-over everyday blue bottle cold-pressed green juice kinfolk sustainable art party synth shoreditch +1 asymmetrical mixtape mixtape kogi cardigan fanny pack. Meggings scenester butcher fanny pack pinterest humblebrag locavore chillwave tousled pitchfork migas listicle flannel loko shoreditch authentic goth. Kinfolk celiac skateboard franzen bicycle rights readymade helvetica selvage chillwave distillery pickled franzen pitchfork taxidermy cold-pressed whatever pug. Sustainable you probably haven't heard of them neutra occupy pop-up health twee lumbersexual umami leggings vegan scenester listicle listicle celiac franzen ennui. Crucifix synth narwhal mustache next level poutine brooklyn cred cliche tacos food truck tumblr wayfarers mixtape health skateboard health. Flexitarian listicle aesthetic pork belly blue bottle williamsburg kale chips taxidermy synth try-hard echo neutra waistcoat loko cliche portland blue bottle. Gluten-free kogi 8-bit ethical wolf VHS shoreditch forage chartreuse mlkshk bitters single-origin coffee hoodie schlitz meditation 3 wolf moon blog. Typewriter roof umami meditation fashion axe plaid cornhole cardigan gastropub mumblecore kale chips pabst irony cornhole street master craft beer.
Mlkshk ugh tumblr knausgaard YOLO drinking pabst selfies marfa polaroid farm-to-table kinfolk artisan freegan disrupt tousled butcher. Messenger bag truffaut pour-over umami 90's cleanse meh vegan helvetica cleanse readymade chicharrones locavore quinoa narwhal banh mi YOLO. Crucifix put a bird on it Yuccie hella vinyl synth knausgaard gluten-free chambray freegan normcore scenester vinegar lumbersexual vinyl next level street. Paleo organic pork belly hashtag shoreditch blog austin heirloom offal put a bird on it readymade dreamcatcher cleanse blog yr before they sold out asymmetrical. Hashtag meggings banjo tote bag PBR&B mustache etsy microdosing trust fund jean shorts beard tilde vinegar humblebrag ennui meggings fixie. Quinoa pug pork belly keffiyeh irony blue bottle typewriter photo booth banh mi hoodie pickled beard bushwick slow-carb kogi meggings literally. Normcore YOLO etsy pop-up kickstarter hashtag cardigan quinoa yr lo-fi craft beer pinterest pop-up wayfarers selvage blog shoreditch. Seitan pug hella biodiesel synth mixtape everyday wayfarers hella chicharrones banjo craft beer direct trade direct trade tilde intelligentsia loko. Skateboard twee gentrify you probably haven't heard of them fingerstache single-origin coffee meditation trust fund occupy vice waistcoat wolf whatever viral synth asymmetrical poutine. Squid vice intelligentsia tote bag roof quinoa butcher flannel listicle helvetica bespoke retro tacos mustache green juice echo occupy. Deep v before they sold out tote bag bicycle rights 90's slow-carb schlitz actually 90's gentrify letterpress shabby chic shabby chic iPhone lo-fi trust fund cleanse. Typewriter fixie try-hard meggings health flannel cliche kale chips 90's butcher tousled crucifix slow-carb blog actually wolf dreamcatcher. Flexitarian shabby chic asymmetrical synth Yuccie blue bottle 3 wolf moon pour-over etsy fingerstache vice tattooed celiac +1 normcore gastropub keytar.
+1 cred selvage cornhole taxidermy biodiesel marfa cronut brunch art party selfies helvetica before they sold out Yuccie tote bag synth you probably haven't heard of them. Pug humblebrag marfa ethical twee drinking messenger bag direct trade chillwave kale chips freegan flexitarian waistcoat brooklyn intelligentsia hoodie waistcoat. Wayfarers sartorial before they sold out kickstarter irony kogi messenger bag chia iPhone flexitarian stumptown tumblr hammock bicycle rights marfa skateboard brunch. Lomo ethical +1 kombucha vegan pour-over taxidermy small batch 8-bit disrupt normcore knausgaard twee locavore flexitarian hoodie art party. Five dollar toast offal mustache typewriter vice iPhone synth etsy vinegar cred next level aesthetic farm-to-table sustainable before they sold out cray truffaut. Street helvetica fixie synth vinegar poutine pabst twee lumbersexual intelligentsia roof food truck chia tilde jean shorts synth carry. Pabst gastropub swag pork belly direct trade paleo mustache flannel hella migas ramps semiotics brooklyn chia ennui next level Yuccie. Shoreditch synth pabst tattooed williamsburg church-key Godard skateboard chillwave trust fund street carry chicharrones viral Yuccie tacos hella. Biodiesel twee synth shabby chic microdosing jean shorts sustainable umami meggings pitchfork keytar fashion axe flexitarian celiac paleo banjo chia. Viral semiotics roof green juice pork belly single-origin coffee paleo artisan cold-pressed fashion axe wolf small batch craft beer cornhole church-key squid irony. Biodiesel polaroid jean shorts 8-bit hashtag craft beer sustainable PBR&B retro church-key everyday fashion axe seitan actually actually brooklyn chillwave. Aesthetic yr bitters blog offal cred next level chartreuse sartorial organic synth kale chips wayfarers pabst actually mustache tofu. Viral migas polaroid iPhone meditation street schlitz etsy fanny pack brooklyn viral vice chia pitchfork messenger bag master chartreuse.
Flexitarian trust fund flannel chillwave cardigan pickled cray biodiesel single-origin coffee gastropub authentic pop-up church-key echo celiac meh YOLO. Knausgaard crucifix iPhone hoodie hella knausgaard paleo cray roof messenger bag cliche yr cronut ramps wayfarers meggings artisan. Banh mi tumblr slow-carb next level PBR&B selfies chartreuse quinoa brunch trust fund etsy PBR&B truffaut shabby chic Yuccie whatever distillery. Small batch hella kale chips master ramps organic 8-bit raw denim knausgaard chartreuse banh mi meditation meh occupy mustache gastropub williamsburg. PBR&B sriracha skateboard art party bushwick ugh bitters actually vegan selvage photo booth vinyl sartorial hoodie flexitarian ennui keffiyeh. Fanny pack neutra drinking flannel hammock selfies food truck slow-carb slow-carb artisan loko kinfolk pickled health franzen art party tilde. Bitters swag cronut slow-carb meditation stumptown vinegar chillwave helvetica bicycle rights literally flexitarian lomo franzen skateboard master roof. Cliche vegan schlitz artisan brooklyn heirloom pabst drinking slow-carb tilde chambray master helvetica irony fingerstache semiotics hoodie. Hella Thundercats post-ironic pinterest mixtape irony messenger bag intelligentsia franzen meh fanny pack neutra deep v deep v asymmetrical synth actually. Health messenger bag umami whatever marfa try-hard waistcoat leggings offal bushwick beard chillwave letterpress helvetica kombucha pug heirloom. Fingerstache asymmetrical kitsch ethical ennui green juice waistcoat church-key cleanse butcher viral chia ethical bushwick kale chips listicle salvia. Portland five dollar toast disrupt asymmetrical neutra green juice waistcoat 3 wolf moon polaroid actually fixie cornhole banjo lo-fi distillery disrupt loko. Sriracha tofu try-hard green juice waistcoat selvage cold-pressed next level selfies raw denim quinoa distillery freegan chicharrones butcher skateboard pickled." + * ``` + */ + hipsterParagraph(paragraphcount: number, sentencecount: number, wordcount: number, paragraphseparator: string): string; + + /** + * Sentence showcasing the use of trendy and unconventional vocabulary associated with hipster culture. + * @returns a random hipster sentence + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hipsterSentence(13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Offal forage pinterest direct trade pug skateboard food truck flannel cold-pressed church-key keffiyeh wolf pop-up." + * ``` + */ + hipsterSentence(wordcount: number): string; + + /** + * Trendy and unconventional vocabulary used by hipsters to express unique cultural preferences. + * @returns a random hipster word + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hipsterWord()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "offal" + * ``` + */ + hipsterWord(): string; + + /** + * An activity pursued for leisure and pleasure. + * @returns a random hobby + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hobby()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Candy making" + * ``` + */ + hobby(): string; + + /** + * Unit of time equal to 60 minutes. + * @returns a random hour + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.hour()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 21 + * ``` + */ + hour(): number; + + /** + * Failure or issue occurring within a client software that sends requests to web servers. + * @returns a random http client error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.httpClientError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + httpClientError(): string; + + /** + * A problem with a web http request. + * @returns a random http error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.httpError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + httpError(): string; + + /** + * Verb used in HTTP requests to specify the desired action to be performed on a resource. + * @returns a random http method + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.httpMethod()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "HEAD" + * ``` + */ + httpMethod(): string; + + /** + * Failure or issue occurring within a server software that recieves requests from clients. + * @returns a random http server error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.httpServerError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + httpServerError(): string; + + /** + * Random http status code. + * @returns a random http status code + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.httpStatusCode()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 400 + * ``` + */ + httpStatusCode(): number; + + /** + * Three-digit number returned by a web server to indicate the outcome of an HTTP request. + * @returns a random http status code simple + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.httpStatusCodeSimple()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 200 + * ``` + */ + httpStatusCodeSimple(): number; + + /** + * Number indicating the version of the HTTP protocol used for communication between a client and a server. + * @returns a random http version + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.httpVersion()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "HTTP/1.0" + * ``` + */ + httpVersion(): string; + + /** + * Web address pointing to an image file that can be accessed and displayed online. + * @returns a random image url + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.imageUrl(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "https://picsum.photos/13/13" + * ``` + */ + imageUrl(width: number, height: number): string; + + /** + * Adjective describing a non-specific noun. + * @returns a random indefinite adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.indefiniteAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "somebody" + * ``` + */ + indefiniteAdjective(): string; + + /** + * Attribute used to define the name of an input element in web forms. + * @returns a random input name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.inputName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "last_name" + * ``` + */ + inputName(): string; + + /** + * Signed 16-bit integer, capable of representing values from 32,768 to 32,767. + * @returns a random int16 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.int16()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * -4595 + * ``` + */ + int16(): number; + + /** + * Signed 32-bit integer, capable of representing values from -2,147,483,648 to 2,147,483,647. + * @returns a random int32 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.int32()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * -15831539 + * ``` + */ + int32(): number; + + /** + * Signed 64-bit integer, capable of representing values from -9,223,372,036,854,775,808 to -9,223,372,036,854,775,807. + * @returns a random int64 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.int64()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 5195529898953699000 + * ``` + */ + int64(): number; + + /** + * Signed 8-bit integer, capable of representing values from -128 to 127. + * @returns a random int8 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.int8()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * -115 + * ``` + */ + int8(): number; + + /** + * Integer value between given range. + * @returns a random intrange + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.intRange(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + intRange(min: number, max: number): number; + + /** + * Word expressing emotion. + * @returns a random interjection + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.interjection()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "wow" + * ``` + */ + interjection(): string; + + /** + * Adjective used to ask questions. + * @returns a random interrogative adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.interrogativeAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "what" + * ``` + */ + interrogativeAdjective(): string; + + /** + * Verb that does not require a direct object to complete its meaning. + * @returns a random intransitive verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.intransitiveVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "skip" + * ``` + */ + intransitiveVerb(): string; + + /** + * Numerical label assigned to devices on a network for identification and communication. + * @returns a random ipv4 address + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.ipv4Address()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "234.106.177.171" + * ``` + */ + ipv4Address(): string; + + /** + * Numerical label assigned to devices on a network, providing a larger address space than IPv4 for internet communication. + * @returns a random ipv6 address + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.ipv6Address()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "3aea:ef6a:38b1:7cab:7f0:946c:a3a9:cb90" + * ``` + */ + ipv6Address(): string; + + /** + * International standard code for uniquely identifying securities worldwide. + * @returns a random isin + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.isin()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "HKS4BL2MVY62" + * ``` + */ + isin(): string; + + /** + * Position or role in employment, involving specific tasks and responsibilities. + * @returns a random job + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.job()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Company":"Xatori","Title":"Representative","Descriptor":"Future","Level":"Tactics"} + * ``` + */ + job(): Record; + + /** + * Word used to describe the duties, requirements, and nature of a job. + * @returns a random job descriptor + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.jobDescriptor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Internal" + * ``` + */ + jobDescriptor(): string; + + /** + * Random job level. + * @returns a random job level + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.jobLevel()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Identity" + * ``` + */ + jobLevel(): string; + + /** + * Specific title for a position or role within a company or organization. + * @returns a random job title + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.jobTitle()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Representative" + * ``` + */ + jobTitle(): string; + + /** + * System of communication using symbols, words, and grammar to convey meaning between individuals. + * @returns a random language + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.language()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Esperanto" + * ``` + */ + language(): string; + + /** + * Shortened form of a language's name. + * @returns a random language abbreviation + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.languageAbbreviation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "eo" + * ``` + */ + languageAbbreviation(): string; + + /** + * Set of guidelines and standards for identifying and representing languages in computing and internet protocols. + * @returns a random language bcp + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.languageBcp()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "he-IL" + * ``` + */ + languageBcp(): string; + + /** + * The family name or surname of an individual. + * @returns a random last name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.lastName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Abshire" + * ``` + */ + lastName(): string; + + /** + * Geographic coordinate specifying north-south position on Earth's surface. + * @returns a random latitude + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.latitude()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 11.394086 + * ``` + */ + latitude(): number; + + /** + * Latitude number between the given range (default min=0, max=90). + * @returns a random latitude range + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.latitudeRange(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + latitudeRange(min: number, max: number): number; + + /** + * Character or symbol from the American Standard Code for Information Interchange (ASCII) character set. + * @returns a random letter + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.letter()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "W" + * ``` + */ + letter(): string; + + /** + * ASCII string with length N. + * @returns a random lettern + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.letterN(13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "WCpXcQhgfZWYH" + * ``` + */ + letterN(count: number): string; + + /** + * Replace ? with random generated letters. + * @returns a random lexify + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.lexify("none")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "none" + * ``` + */ + lexify(str: string): string; + + /** + * Verb that Connects the subject of a sentence to a subject complement. + * @returns a random linking verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.linkingVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "had" + * ``` + */ + linkingVerb(): string; + + /** + * Classification used in logging to indicate the severity or priority of a log entry. + * @returns a random log level + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.logLevel()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "error" + * ``` + */ + logLevel(): string; + + /** + * Geographic coordinate indicating east-west position on Earth's surface. + * @returns a random longitude + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.longitude()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 22.788172 + * ``` + */ + longitude(): number; + + /** + * Longitude number between the given range (default min=0, max=180). + * @returns a random longitude range + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.longitudeRange(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + longitudeRange(min: number, max: number): number; + + /** + * Paragraph of the Lorem Ipsum placeholder text used in design and publishing. + * @returns a random lorem ipsum paragraph + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.loremIpsumParagraph(13,13,17,"\u003cbr /\u003e")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Accusamus et voluptatum voluptatem nisi nostrum atque molestias reprehenderit alias reiciendis ut eos ut ad ea magni. Recusandae id fuga ut rerum quia sit doloremque vero dolores temporibus non ipsum ipsam quis et fugiat. Necessitatibus voluptas et laborum et placeat eaque sit fuga ut dolore asperiores itaque nisi voluptas et autem. Quia doloremque laborum dolorem corporis excepturi dolor commodi dolorem totam inventore cum aut autem odit consequuntur temporibus. Maxime consequatur quo perferendis error alias minus reiciendis voluptates possimus voluptas aut possimus doloribus corporis commodi natus. Est adipisci doloremque ut quia impedit eius expedita adipisci sed facere velit odit ut tempore fuga veritatis. A debitis unde sunt non voluptatibus dolorum sapiente nemo ratione et voluptas tempore eum possimus culpa nobis. Officiis ut voluptatem voluptas aut culpa ullam numquam deleniti non tenetur accusamus ullam illum voluptatem beatae voluptas. Unde cupiditate incidunt ut id deserunt unde perspiciatis molestias incidunt fugit natus porro nemo odio dolorum voluptate. Voluptatum delectus eius non animi quia illo esse vel omnis aut dolorem nihil numquam labore porro non. In cupiditate eos ea numquam ipsum voluptatem ipsa ratione vitae voluptate consequatur fugiat sunt itaque ullam repellat. Officia nobis omnis soluta sed ut dolores quis ullam dolores delectus aperiam quaerat est ut aliquid mollitia. Repudiandae tempore ipsa eius qui magnam nisi cumque aut voluptas qui officia et aut voluptatibus vel eveniet.
Ut nesciunt sit non ducimus distinctio voluptatibus dolores blanditiis officia accusamus esse dolorem unde at error numquam. Eveniet aliquid laborum libero illo esse et distinctio est tempore omnis illum pariatur maiores consequuntur libero quia. Dignissimos nihil et sint et aliquid est omnis doloremque labore corrupti cumque consequatur vero quos sequi voluptates. Sapiente optio enim totam dolorum unde sint nesciunt eligendi quia sint ad officiis enim numquam cum totam. Nisi eum sit error repellat ut et odit repellendus est nemo assumenda officiis dolor enim et commodi. Error corrupti ut eligendi eum vitae necessitatibus dolorum tenetur id quidem omnis sint facere aspernatur omnis magni. Nihil vero architecto ratione rerum a tempore quasi sint eius error sed rerum saepe praesentium veritatis et. Voluptates iste praesentium tenetur omnis nisi dolor vel et dolore quisquam neque voluptate ullam amet consectetur voluptatem. Voluptates unde minus praesentium et ut rerum omnis officiis quidem illum eum et nihil nobis ullam aut. Enim beatae placeat facere maxime esse laboriosam consequatur voluptas quisquam voluptas suscipit est provident excepturi vero in. Quaerat alias facere aliquid ad aut voluptatum ipsam aspernatur cupiditate in commodi id magni nulla nostrum aut. Eveniet dolorem doloribus in aliquam dicta qui est et excepturi explicabo rem omnis nobis praesentium dolores voluptas. Quibusdam omnis ratione blanditiis dicta autem rerum quo eum assumenda voluptatem sed aut eaque ea et magni.
Minima nobis natus deleniti eos sint nesciunt fuga quisquam sed a vero quia aliquid praesentium in eaque. Id et molestiae voluptatem et et facere quae molestiae non voluptatum perferendis sit non sequi culpa iusto. Perferendis a quis enim officia dolorem necessitatibus vitae cum qui ipsa libero natus provident minima id facere. Voluptates blanditiis voluptate id consequatur omnis adipisci exercitationem occaecati cupiditate rerum velit autem autem voluptate non et. Nihil minima excepturi molestiae corrupti sapiente aut neque numquam nesciunt nesciunt laborum tenetur et libero rerum voluptatem. Non quo numquam porro aperiam impedit in est qui ut sint labore voluptate non sunt impedit optio. Exercitationem facilis sit saepe laudantium sint eligendi accusamus illum cupiditate voluptas velit ut sint consequatur facere a. Ut aut eaque qui excepturi sed aut minus voluptatem incidunt ut eos vero maiores molestias perspiciatis sit. Incidunt cupiditate atque libero in sit sunt ipsa aliquam laborum nihil consequatur eaque sit amet quia vel. Ratione dolores reprehenderit reprehenderit beatae saepe vel quas aliquid est omnis aliquid omnis tempora omnis debitis ut. Sint quisquam blanditiis distinctio voluptatem maiores ut tempore nihil officiis rerum eos rerum sit nulla neque incidunt. Amet possimus unde quia assumenda a nulla illo laborum veniam sapiente voluptatibus dolorem provident ad maxime sed. Corrupti repellendus quae impedit necessitatibus animi sit voluptatem est numquam aspernatur eveniet molestiae omnis officiis distinctio non.
Illo odio est et non atque repellendus laboriosam quos itaque corrupti non quia ratione quis impedit fugiat. Dignissimos modi nam officia eligendi eum voluptatem aspernatur dignissimos tempora non fugiat eligendi doloribus exercitationem inventore iure. Omnis vel exercitationem aperiam perspiciatis maxime quae et sed enim qui nisi ea iste corporis voluptate dolorem. Fugiat quia voluptate molestiae ipsum sapiente illum rem quo sed est quam suscipit cupiditate facere sed temporibus. Omnis earum nemo tenetur assumenda eaque enim sint aut sit nobis rem voluptate nihil a sint et. Aut omnis voluptatem rerum nisi non exercitationem in quod non non occaecati ipsam quisquam dolor nam velit. Quia minus dolores atque voluptas impedit et commodi consequatur quis amet aperiam sit officiis hic ipsum esse. Libero autem repudiandae provident sit et rem consectetur et minima sed officiis corporis eum et quia sit. Praesentium cumque qui vitae ipsa nulla natus iusto sint reprehenderit optio et cum sunt consequatur nesciunt laborum. Ad sit quasi voluptatem ullam laborum culpa aperiam voluptas laudantium eum eos a voluptas inventore odit cupiditate. Dolorum cupiditate voluptatem ut dolorem et deleniti est enim reiciendis laborum qui voluptatum nesciunt dicta adipisci esse. Culpa dolor culpa quia odio eum itaque sequi a voluptatem sunt velit explicabo sed voluptas rem consequatur. Qui est eos sed magnam in quo aliquid quo eum ex voluptatem totam quod mollitia corporis quia.
Eligendi dolorum ipsum dolorum non tenetur quae sed officia alias ad voluptatem ullam quidem ducimus similique minus. Modi facere ipsam reprehenderit rerum et est neque accusamus cupiditate adipisci accusantium sed doloribus itaque velit eveniet. Tempora aliquid unde est atque ea nulla laudantium illo alias similique consequatur ex ut impedit reprehenderit sed. Earum et enim consequatur perspiciatis necessitatibus eos aliquam ipsam voluptate voluptatibus laudantium delectus harum consectetur reprehenderit et. Dolorum alias sed debitis corporis molestias aut iusto ullam maxime nostrum consequuntur consectetur porro qui sit voluptatem. Nobis soluta facere consequatur et sequi et exercitationem at eligendi harum quo blanditiis harum sed deleniti qui. Id adipisci et temporibus hic quia beatae accusantium eum id ex totam ullam impedit soluta ut voluptas. Temporibus fugiat libero fugit velit nesciunt dolor unde hic tempore fugit molestiae culpa eum est est veniam. Reiciendis quia et quis consequatur alias dolor laudantium temporibus quod aut illum quas id quas perspiciatis odit. Inventore vitae vel maiores et iste ab repellendus iusto voluptates officiis nihil dolor ducimus illo autem aliquam. Deserunt eos iste quae non sint et ipsa ea exercitationem sed nobis vel iure laborum excepturi reprehenderit. Enim dignissimos porro reprehenderit sed hic laudantium porro aut consequuntur quia sequi necessitatibus omnis quo nemo eum. Perferendis est excepturi omnis quia quis deserunt vel accusamus ab quas natus commodi quo eos corrupti numquam.
Alias soluta accusantium sint ut voluptate ipsum ut excepturi pariatur in voluptatibus eveniet labore quis consequatur dolores. Aperiam ex quia omnis placeat veritatis id explicabo nam assumenda ea libero consequatur necessitatibus provident libero ipsam. Et mollitia cumque sapiente sed nam reiciendis cupiditate qui cupiditate consequatur et odit aut omnis est sunt. Ducimus qui aperiam voluptatem molestias reiciendis et quisquam hic asperiores enim harum quia perspiciatis dolorum laborum aut. Quaerat aut qui architecto non optio esse placeat soluta ab qui id quia eius ratione amet vel. Quia molestias error aliquid explicabo consequuntur dolor iure tempora non sed perspiciatis eos delectus iure nam voluptas. Magnam saepe repellat qui sed qui accusantium ut numquam cum est cumque molestiae earum cupiditate velit voluptatibus. Dolor omnis saepe assumenda qui autem adipisci rerum nihil omnis quia perspiciatis voluptates natus eaque quisquam in. Magnam recusandae ut et aperiam incidunt id omnis facilis magnam expedita beatae omnis fugit natus qui sunt. Dolore nulla perspiciatis vitae officiis iste quos qui unde quam id magni aut officiis sunt illo beatae. Id dolorum velit culpa totam voluptatem occaecati delectus reprehenderit modi blanditiis vitae voluptatum consectetur autem omnis et. Fuga aut et corporis rerum unde qui porro inventore quia voluptatem quia voluptates ab nisi nihil dicta. Molestiae cum quia eum et adipisci ipsa perferendis enim sunt unde aut quisquam harum perspiciatis sed illum.
Nesciunt velit velit voluptatem autem maiores adipisci ut quod fugiat adipisci molestiae et rerum assumenda aliquid ad. Qui odio enim eligendi aut deleniti inventore doloribus cum aut libero ad et magni quo maxime ea. Voluptatem rerum autem sed reprehenderit est nisi aut id magni neque iusto sit maxime autem sint rem. Dolores voluptates ut voluptatem soluta est repellat soluta maiores maxime nostrum nam in incidunt voluptates sit voluptatibus. Dolorem possimus consequatur consequatur ullam minima repellat assumenda rerum eum omnis incidunt similique aut et repellat occaecati. Maiores beatae minus sed molestiae et quia ipsa expedita voluptas molestiae recusandae laudantium sint quo laudantium fugit. Quia pariatur fugiat ut vel repellendus impedit voluptas id voluptatem nisi et numquam molestias culpa voluptas qui. Assumenda possimus alias ut doloribus aut ut dolor sunt facilis tempora omnis magnam enim et aut velit. Et nihil fuga et ex voluptatum suscipit dolorem sed voluptates ab cum voluptas nostrum omnis fugiat ut. Aut magni architecto ut quia et est iure velit facere impedit temporibus voluptatem placeat consequatur magni iusto. Iusto suscipit porro omnis omnis dolor totam exercitationem doloribus quia explicabo non assumenda omnis libero inventore et. Sint quaerat eligendi quo quis dicta cumque illum sed sed quis ducimus officia voluptate consectetur voluptatibus repellat. Quo sit eum consequuntur voluptate est placeat minus voluptates beatae quia et harum ratione blanditiis quis sunt.
Veniam at aliquam et nisi sit accusantium laborum ratione odit omnis nesciunt nobis neque eligendi et quasi. Ut a impedit sint enim vero qui quas dicta iste animi pariatur dolor autem adipisci est ex. Exercitationem reprehenderit fugiat rem quia tempore consequatur a sint perferendis autem suscipit odio quod et ad voluptatem. Dolorem eos dolores aut nihil enim eveniet id officia sed ad accusantium maxime veritatis ex eaque ipsa. Blanditiis voluptatem et beatae modi rerum similique exercitationem excepturi et a voluptatem ea nemo natus laboriosam tempore. Enim voluptas autem quaerat et distinctio modi recusandae accusantium molestiae exercitationem animi consequatur debitis nemo repellat ullam. Et recusandae praesentium quibusdam deserunt mollitia magnam qui adipisci illo cumque rerum ut earum molestiae molestiae nulla. Et odio sunt porro voluptatem mollitia doloribus a veritatis quidem ad minus recusandae rerum ad et dolores. Deserunt praesentium illo ipsam iste incidunt dolor molestiae sed dolor veniam quia aliquam rerum eum explicabo harum. Ad aut omnis laboriosam quis optio quaerat dolor repellat officia dolorum assumenda sit neque voluptas voluptas maxime. Quam ea architecto expedita molestiae repellendus voluptas ullam architecto fugit quia quae atque ad at incidunt alias. Deserunt est et aperiam sit quis consequatur voluptas soluta odio totam consectetur eligendi culpa reiciendis aut voluptas. Dolor est laborum alias nobis ut eos labore dicta dolorem qui sed non et placeat perferendis sit.
Error qui perspiciatis tenetur consequatur eius molestiae sunt assumenda asperiores molestiae non iure ut ab assumenda quas. Rerum velit dolor consequatur impedit architecto repudiandae iure et molestias occaecati ex expedita omnis dolor veritatis cupiditate. Deleniti eius et provident est ratione sequi in rerum ipsum nemo deleniti ex sit eius et assumenda. Fugiat autem esse dolor adipisci qui commodi consequatur esse labore eos assumenda quis deserunt libero ipsam id. Id velit dolores velit numquam temporibus quod et a vel quia suscipit architecto facere saepe ullam aut. Voluptatibus delectus aut tempore commodi dolore provident perspiciatis officiis eius quasi et delectus atque quae recusandae et. Assumenda illum non eaque commodi quisquam dolores aliquid eum dolor sed odio dignissimos quaerat impedit rem perferendis. Sit autem sunt saepe aperiam voluptatibus qui corporis dolores itaque est in est odio perferendis illum recusandae. Quo rerum quos praesentium ab cupiditate ut doloremque ut voluptas nobis illo non ducimus illo ipsa qui. Voluptas dolorem aut et delectus ut quis quia ducimus dolor et unde sunt eius accusamus est explicabo. Cum porro perferendis nihil in et quo ducimus molestiae voluptatem accusantium molestiae corrupti quia ut animi ipsa. Nam tempora exercitationem eum ut quasi et temporibus expedita eaque deserunt aut et voluptatem consequatur delectus odit. Itaque est eveniet provident laborum recusandae velit dolorem perspiciatis id dolorem qui ipsa qui consequatur qui totam.
Ullam delectus deserunt quasi explicabo ab quo laborum est et dolorum voluptas voluptate vel commodi animi nobis. Molestiae rem quam aut quas temporibus ipsa cupiditate quaerat excepturi nemo sit et dolorem nam occaecati maxime. Eum autem occaecati est itaque fuga veritatis qui quidem dolor eligendi recusandae totam atque voluptas tempora suscipit. Voluptas ut optio commodi perferendis ducimus iste vero ipsum vel quaerat enim tempore et nesciunt eos ea. Provident exercitationem architecto esse qui accusantium sapiente nobis corrupti laborum aliquam voluptatibus ut sit repellendus totam eos. Earum fugit nemo ut et et vitae mollitia tempore et dicta corporis quod pariatur iusto magni iusto. Voluptatem sunt et rem et minus similique tenetur qui distinctio recusandae perspiciatis nesciunt amet pariatur officia eligendi. Aliquam dolor quia in eum sunt magni nemo aut non quis magnam eum nam qui voluptas modi. Maiores a voluptatem dicta harum rerum corporis expedita ipsam voluptates laboriosam esse iure et ut labore vitae. Mollitia sed necessitatibus voluptate alias reprehenderit et temporibus excepturi optio nulla illum voluptatum reprehenderit minima dolores accusamus. Dolor laboriosam tempore molestiae quod ut dolorem doloribus voluptatem dolore voluptatum qui repellat corrupti natus modi natus. Cumque commodi voluptatem repudiandae ullam nisi ut qui voluptatem cupiditate eum corporis consectetur iste exercitationem ut dignissimos. Accusamus deleniti nostrum aut odit facilis pariatur odit tempora in dolorem vero eius qui maiores architecto aut.
Voluptas sapiente ullam recusandae suscipit at ut ducimus voluptates explicabo odit voluptas dolor iste nostrum ea asperiores. Fuga natus placeat iste esse est beatae cumque voluptas eligendi eveniet ipsa incidunt ipsum quae doloribus voluptas. Qui qui et non qui dignissimos voluptas accusamus id rem aut ut culpa fugit quia velit quia. Libero ut et aut nisi quasi porro autem nesciunt eum consequatur iusto et et et numquam aut. Iusto ut qui quam voluptatibus et qui iusto ratione sunt ipsam voluptate occaecati odit quos mollitia reiciendis. Provident ea rerum id provident consequuntur non in id quos sed ducimus libero cum vero omnis quia. Ut itaque aperiam et voluptas minima omnis ducimus sit alias qui enim asperiores rerum asperiores sed eos. Facilis ex magnam et sapiente asperiores eligendi sit dignissimos qui voluptatem omnis ad ea in dolores voluptatum. Voluptas cumque numquam ipsa facilis saepe libero culpa aliquam qui enim sequi vel dolorum est architecto neque. Est quaerat accusantium aperiam molestiae culpa est provident nostrum optio sint distinctio dolorem sint libero neque quia. Provident ut illum vitae pariatur ducimus commodi et excepturi distinctio sint quidem aut aut aliquam tenetur dolorum. Autem doloribus ut sunt alias earum nemo dignissimos nisi reprehenderit et et veritatis repudiandae architecto suscipit rerum. At labore et ea aliquid omnis eveniet aut debitis cupiditate veniam totam quam corporis nostrum sint fugiat.
Autem harum voluptatibus sunt laboriosam quas asperiores quis voluptatem est saepe debitis voluptas iste sequi explicabo voluptatem. Consequuntur impedit vel debitis rem dolorem consectetur sed occaecati aut ab inventore aut est culpa quia optio. Molestiae similique explicabo atque provident id odit possimus quae molestiae omnis repudiandae quod voluptatem beatae placeat animi. Porro et id aliquam nam ut vero facilis eos minima quia soluta architecto non officia in voluptas. Sequi eius suscipit in qui totam ut assumenda iusto expedita architecto omnis dignissimos sint dolor aliquam vel. Ut quidem nesciunt in rerum exercitationem provident dolores corrupti in aperiam corporis optio est non et aut. Doloribus voluptate fugit facilis molestiae nisi animi iusto laborum et vero aspernatur quibusdam omnis tempore placeat placeat. Pariatur quam nesciunt impedit ut fugiat deserunt cumque adipisci iste aperiam possimus non laudantium repellendus odit dolor. Dolor eaque dolorem repellat nihil rerum optio veritatis facere voluptate ipsam qui voluptas debitis rerum quas dignissimos. Enim provident officia sunt eos in ut aperiam ut quam assumenda est excepturi sit in facilis nulla. Deleniti fuga modi illo est ea error est vitae quia consequuntur labore quod adipisci doloribus ut aliquam. Illum temporibus officia quidem perferendis eos ab ullam nulla impedit dignissimos minus quod dicta ab autem velit. Consequatur et ullam tempore doloremque enim adipisci optio quia aut consequatur esse ad voluptate autem nihil ut.
Inventore aliquid saepe doloribus voluptas voluptas saepe minus dolores numquam sed eligendi dicta cupiditate aut nemo non. Sunt et voluptas tempore voluptatem exercitationem vel dolores debitis minus pariatur eligendi dolorem et fugit dolorum labore. Laboriosam quas architecto dicta modi est quam rerum quidem et distinctio dolorem porro quis consequatur sit qui. Velit quis ea aut ipsam odit nemo voluptas ex omnis ratione sit quia eaque quas omnis illum. Est ea sint modi et at sint similique nesciunt amet vitae amet praesentium debitis itaque sapiente nam. Fugiat ut enim nihil sit sint provident fugiat iusto aut esse nihil autem placeat at eos odit. Dolor harum optio eaque ut impedit saepe iure quos aut commodi suscipit consequatur at et aliquam quia. Eos et dolores quis id placeat id odit perferendis quae perferendis veritatis ullam provident voluptatum dicta ullam. Numquam debitis odio sit ut occaecati vitae dicta est qui delectus esse voluptas molestias praesentium quidem est. Autem laborum quibusdam exercitationem ipsa beatae sed sed est temporibus delectus ipsum vitae assumenda dolores eligendi tenetur. Libero eaque et consectetur quam odio voluptate qui sit temporibus doloremque quam in enim ea voluptas qui. Mollitia ut perferendis quia eos quaerat dignissimos facere suscipit id nesciunt qui suscipit accusantium aliquam cum sunt. Assumenda est mollitia odio animi voluptates libero iusto aut omnis reiciendis non praesentium natus ipsa occaecati numquam." + * ``` + */ + loremIpsumParagraph(paragraphcount: number, sentencecount: number, wordcount: number, paragraphseparator: string): string; + + /** + * Sentence of the Lorem Ipsum placeholder text used in design and publishing. + * @returns a random lorem ipsum sentence + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.loremIpsumSentence(13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Accusamus et voluptatum voluptatem nisi nostrum atque molestias reprehenderit alias reiciendis ut eos." + * ``` + */ + loremIpsumSentence(wordcount: number): string; + + /** + * Word of the Lorem Ipsum placeholder text used in design and publishing. + * @returns a random lorem ipsum word + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.loremIpsumWord()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "accusamus" + * ``` + */ + loremIpsumWord(): string; + + /** + * Midday meal, often lighter than dinner, eaten around noon. + * @returns a random lunch + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.lunch()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Tortellini skewers" + * ``` + */ + lunch(): string; + + /** + * Unique identifier assigned to network interfaces, often used in Ethernet networks. + * @returns a random mac address + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.macAddress()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "87:2d:cd:bc:0d:f3" + * ``` + */ + macAddress(): string; + + /** + * Name between a person's first name and last name. + * @returns a random middle name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.middleName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Sage" + * ``` + */ + middleName(): string; + + /** + * Non-hostile creatures in Minecraft, often used for resources and farming. + * @returns a random minecraft animal + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftAnimal()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "chicken" + * ``` + */ + minecraftAnimal(): string; + + /** + * Component of an armor set in Minecraft, such as a helmet, chestplate, leggings, or boots. + * @returns a random minecraft armor part + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftArmorPart()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "leggings" + * ``` + */ + minecraftArmorPart(): string; + + /** + * Classification system for armor sets in Minecraft, indicating their effectiveness and protection level. + * @returns a random minecraft armor tier + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftArmorTier()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "leather" + * ``` + */ + minecraftArmorTier(): string; + + /** + * Distinctive environmental regions in the game, characterized by unique terrain, vegetation, and weather. + * @returns a random minecraft biome + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftBiome()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "plain" + * ``` + */ + minecraftBiome(): string; + + /** + * Items used to change the color of various in-game objects. + * @returns a random minecraft dye + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftDye()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "purple" + * ``` + */ + minecraftDye(): string; + + /** + * Consumable items in Minecraft that provide nourishment to the player character. + * @returns a random minecraft food + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftFood()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "pufferfish" + * ``` + */ + minecraftFood(): string; + + /** + * Powerful hostile creature in the game, often found in challenging dungeons or structures. + * @returns a random minecraft mob boss + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftMobBoss()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "ender dragon" + * ``` + */ + minecraftMobBoss(): string; + + /** + * Aggressive creatures in the game that actively attack players when encountered. + * @returns a random minecraft mob hostile + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftMobHostile()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "blaze" + * ``` + */ + minecraftMobHostile(): string; + + /** + * Creature in the game that only becomes hostile if provoked, typically defending itself when attacked. + * @returns a random minecraft mob neutral + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftMobNeutral()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "dolphin" + * ``` + */ + minecraftMobNeutral(): string; + + /** + * Non-aggressive creatures in the game that do not attack players. + * @returns a random minecraft mob passive + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftMobPassive()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "axolotl" + * ``` + */ + minecraftMobPassive(): string; + + /** + * Naturally occurring minerals found in the game Minecraft, used for crafting purposes. + * @returns a random minecraft ore + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftOre()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "iron" + * ``` + */ + minecraftOre(): string; + + /** + * Items in Minecraft designed for specific tasks, including mining, digging, and building. + * @returns a random minecraft tool + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftTool()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "pickaxe" + * ``` + */ + minecraftTool(): string; + + /** + * The profession or occupation assigned to a villager character in the game. + * @returns a random minecraft villager job + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftVillagerJob()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "carpenter" + * ``` + */ + minecraftVillagerJob(): string; + + /** + * Measure of a villager's experience and proficiency in their assigned job or profession. + * @returns a random minecraft villager level + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftVillagerLevel()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "novice" + * ``` + */ + minecraftVillagerLevel(): string; + + /** + * Designated area or structure in Minecraft where villagers perform their job-related tasks and trading. + * @returns a random minecraft villager station + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftVillagerStation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "lectern" + * ``` + */ + minecraftVillagerStation(): string; + + /** + * Tools and items used in Minecraft for combat and defeating hostile mobs. + * @returns a random minecraft weapon + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftWeapon()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "sword" + * ``` + */ + minecraftWeapon(): string; + + /** + * Atmospheric conditions in the game that include rain, thunderstorms, and clear skies, affecting gameplay and ambiance. + * @returns a random minecraft weather + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftWeather()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "clear" + * ``` + */ + minecraftWeather(): string; + + /** + * Natural resource in Minecraft, used for crafting various items and building structures. + * @returns a random minecraft wood + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minecraftWood()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "oak" + * ``` + */ + minecraftWood(): string; + + /** + * Unit of time equal to 60 seconds. + * @returns a random minute + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.minute()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 9 + * ``` + */ + minute(): number; + + /** + * Division of the year, typically 30 or 31 days long. + * @returns a random month + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.month()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 10 + * ``` + */ + month(): string; + + /** + * String Representation of a month name. + * @returns a random month string + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.monthString()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "October" + * ``` + */ + monthString(): string; + + /** + * A story told through moving pictures and sound. + * @returns a random movie + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.movie()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Name":"Sherlock Jr.","Genre":"Music"} + * ``` + */ + movie(): Record; + + /** + * Category that classifies movies based on common themes, styles, and storytelling approaches. + * @returns a random movie genre + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.movieGenre()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Film-Noir" + * ``` + */ + movieGenre(): string; + + /** + * Title or name of a specific film used for identification and reference. + * @returns a random movie name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.movieName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Sherlock Jr." + * ``` + */ + movieName(): string; + + /** + * The given and family name of an individual. + * @returns a random name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.name()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Josiah Thiel" + * ``` + */ + name(): string; + + /** + * A title or honorific added before a person's name. + * @returns a random name prefix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.namePrefix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mr." + * ``` + */ + namePrefix(): string; + + /** + * A title or designation added after a person's name. + * @returns a random name suffix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nameSuffix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Sr." + * ``` + */ + nameSuffix(): string; + + /** + * Unit of time equal to One billionth (10^-9) of a second. + * @returns a random nanosecond + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nanosecond()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 953698829 + * ``` + */ + nanosecond(): number; + + /** + * Attractive and appealing combinations of colors, returns an list of color hex codes. + * @returns a random nice colors + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.niceColors()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "MediumVioletRed" + * ``` + */ + niceColors(): string[]; + + /** + * Person, place, thing, or idea, named or referred to in a sentence. + * @returns a random noun + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.noun()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "hand" + * ``` + */ + noun(): string; + + /** + * Ideas, qualities, or states that cannot be perceived with the five senses. + * @returns a random noun abstract + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounAbstract()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "philosophy" + * ``` + */ + nounAbstract(): string; + + /** + * Group of animals, like a 'pack' of wolves or a 'flock' of birds. + * @returns a random noun collective animal + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounCollectiveAnimal()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "school" + * ``` + */ + nounCollectiveAnimal(): string; + + /** + * Group of people or things regarded as a unit. + * @returns a random noun collective people + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounCollectivePeople()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "bevy" + * ``` + */ + nounCollectivePeople(): string; + + /** + * Group of objects or items, such as a 'bundle' of sticks or a 'cluster' of grapes. + * @returns a random noun collective thing + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounCollectiveThing()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "wad" + * ``` + */ + nounCollectiveThing(): string; + + /** + * General name for people, places, or things, not specific or unique. + * @returns a random noun common + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounCommon()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "company" + * ``` + */ + nounCommon(): string; + + /** + * Names for physical entities experienced through senses like sight, touch, smell, or taste. + * @returns a random noun concrete + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounConcrete()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "train" + * ``` + */ + nounConcrete(): string; + + /** + * Items that can be counted individually. + * @returns a random noun countable + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounCountable()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "weekend" + * ``` + */ + nounCountable(): string; + + /** + * Word that introduces a noun and identifies it as a noun. + * @returns a random noun determiner + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounDeterminer()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "this" + * ``` + */ + nounDeterminer(): string; + + /** + * Phrase with a noun as its head, functions within sentence like a noun. + * @returns a random noun phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounPhrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "a brave fuel" + * ``` + */ + nounPhrase(): string; + + /** + * Specific name for a particular person, place, or organization. + * @returns a random noun proper + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounProper()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Rowan Atkinson" + * ``` + */ + nounProper(): string; + + /** + * Items that can't be counted individually. + * @returns a random noun uncountable + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.nounUncountable()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "butter" + * ``` + */ + nounUncountable(): string; + + /** + * Mathematical concept used for counting, measuring, and expressing quantities or values. + * @returns a random number + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.number(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + number(min: number, max: number): number; + + /** + * Replace # with random numerical values. + * @returns a random numerify + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.numerify("none")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "none" + * ``` + */ + numerify(str: string): string; + + /** + * The specific identification string sent by the Opera web browser when making requests on the internet. + * @returns a random opera user agent + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.operaUserAgent()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Opera/10.45 (X11; Linux i686; en-US) Presto/2.13.288 Version/13.00" + * ``` + */ + operaUserAgent(): string; + + /** + * Distinct section of writing covering a single theme, composed of multiple sentences. + * @returns a random paragraph + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.paragraph(13,13,17,"\u003cbr /\u003e")) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Quickly up brace lung anyway then bravo mirror hundreds his party nobody person anything wit she from. Above Chinese those choir toilet as you of other enormously enough indeed your muster bevy snow grumpy. Idea whatever one Lilliputian hers towards hers knock party Beninese eventually beyond unexpectedly regularly badly dizzying next. Huh you literature kindness might band first where substantial you pleasure at i.e. whom his very when. All permission whose agree this live cane does these e.g. differs some other ball up where back. Shorts where you whomever us whomever daily hard awfully product whichever generously our to ourselves since frequently. Boxers Turkishish healthily alas secondly this most abroad week brush behalf your his of the us weakly. Ours wisp yourselves give bunch down account closely why lately as fortnightly that whom over clean those. Together an for so wow should it today these that rightfully plate perfectly with still sometimes highly. Fear e.g. bevy their though practically with point company inspect how someone each any class anybody slide. First way regularly whom Hindu softly obesity neither strange those luxury was yay as your just daily. To hourly earlier this yet moreover had day ourselves as example bless pretty whatever me ahead heap. Raise above whose outside everybody Turkishish than couple she could outside troupe only alternatively occasionally neither horror.
Her string innocence behind other your theirs lead of his firstly so whomever hers far on either. I.e. infrequently highly opposite for cackle those either they a next each over another which which cleverness. Stemmed in few before this ourselves between alive covey sheaf significant always jump he weekly everyone their. Ouch afterwards cost out part herself our the finally hastily all across their some someone closely pipe. Everyone range those in how fuel near ingeniously interrupt whose amused neither whereas your here talent switch. Patiently our neatly Iranian my in that i.e. himself could wow magic yellow anyone each those occasion. Conclude ship somebody off room am these a our a secondly lastly pray anyway wait these this. Of now from whenever stupidly heavy pod yearly us we before farm of eventually whoever could any. Of recline hourly without should phew since whom determination often which inside who improvised fatally hurt heavily. Does him on horror early along whomever rather you is freedom as case couple full patience daily. Whose ask learn you in is could these neither some you additionally those herself lean bale powerfully. Bahrainean herself honestly part his well because were eye itself under so which us Buddhist bread comb. This no sit out between sheaf why whoa busy where huh significant daily the seldom to close.
Ship as these i.e. down what me he child bevy your with though hers completely therefore both. Case rather between posse any danger there this Muscovite her onto how disturbed now other warmly envy. Ever they monthly nobody disregard but murder she troop firstly her myself several daily sing vilify that. Herself every child rather downstairs the oops had exaltation tweak so itself jump oops finally extremely lastly. Number outside usually behind nevertheless often empty nevertheless as instance generally float i.e. that the those egg. Positively besides that to whereas wade silly all enable through completely yesterday daily finally rather usually our. This himself country leap for into i.e. yours me end alas then for next must hers eventually. Yourselves which inquire of been everybody pack did yourselves enormously though destroy battery bevy tennis yours perfectly. Elephant close any to fiercely light elegance what i.e. hers myself here whoa party scheme wisp a. Hey daily timing slide out Amazonian till does who first its driver scream program was hourly pod. Down without upon which this would straightaway normally ourselves next our last any whatever down still bow. Party write which sore contradict under person car recline has disregard still hey whom its for every. Into any those data rarely to dig them next now back yikes as upon upon whoever another.
Cap should exaltation result embarrass trend wear tomorrow today did about no everything i.e. solemnly whatever without. Any that what from you cheese open to somebody a herself here Salvadorean congregation where least rarely. On to to well ball speed problem than far insufficient should everyone coffee whose lastly foot till. Width hmm regularly many accordingly should these suitcase what these whichever ours we one these straight life. Yay each it everyone suspiciously quarterly Kyrgyz somebody anyone in gas towards oops however happiness plenty yours. Of once nightly play Portuguese each snarl upon just himself since daily seriously riches over they child. Unusual meanwhile might our were wisdom weekly Christian over way whoever myself bowl why most neither anyway. It respect had beautifully Barbadian in totally staff that fact phew over earlier nevertheless heap its they. Cruel till that consequently many mustering instead today quarterly why another say with freeze talk first ever. Wit have till frequently under hence too of must who whom spread just remote but cook daily. Are loneliness hence several slowly company which him yay must how heat when none of himself suit. Extremely outrageous where several from still whom next however foolish religion climb provided ours bridge these is. Any preen out what quite advantage that muster everything dream including whose myself beyond Burkinese hourly yourselves.
Theirs from who gee in youth table you but oops party think their task too of should. Whose company Italian these eek daily hey your patrol Sri-Lankan camp weekly mine have those Guyanese later. Phew research therefore pack gladly these must little class terrible tweak are for without theirs this nobody. Who one shall nobody sheaf then daily whomever anyone whose straightaway whose yet before for long thing. Bathe secondly instance what aha you your meanwhile these why her someone normally can her line choir. Its gain exemplified have almost now to aha itself alive spite herself what bunch today lastly train. Care afterwards weekly on rise meanwhile themselves first quite lively monthly throw such anxiously courageously way words. Whose here whomever wisp it oops anybody party far group why had Portuguese set terribly sneeze each. A fall batch even would but tomorrow every is my where Burkinese weekly yikes therefore the mine. Upon at nightly utterly over why dream orchard a me previously without cruel next hedge something extremely. Yourselves nobody Tibetan whichever nevertheless rarely her that painfully thing trade out have why nervously religion kneel. Roll tomorrow what this cloud rarely myself this swim even specify place being book her write its. Whoa so lastly e.g. is those dynasty Sudanese delightful it shall her in appetite that elegance laughter.
Me huh Thatcherite from your we after splendid he those pain whom before confusing my next near. Student these roughly am awful troop peace quarterly quarterly select horror at yourselves but Darwinian it a. Bravo whose face here her consequently she hey delay address therefore your seldom that might where generally. Upon her both forest are practically brilliance besides it hers upon circumstances usually its fascinate desk regularly. Scream before inside ourselves straightaway gorgeous which any might generosity cry next this does there then black. Generally we mine before this upon hastily that fire publicity however finally outside whomever do enough reel. Ingeniously within this be nearly whereas in though hers conclude collection as was yet themselves depending to. Can that relent problem swiftly our there Iraqi whose yourself frail positively grease brother then hard yours. But we might hers thought nervous being hmm these your these can soup over offend farm were. Where helpless when toothbrush eventually Thai which regularly I many sometimes soon next therefore to by win. On the then throughout though of party several us that always part pronunciation example several fortnightly anybody. Dream mob accept unlock fuel example to extremely galaxy Slovak traffic he Russian team another die she. Who of beauty eager her lips on swim has guilt as for which in practically under theirs.
Angrily eventually where forgive this myself yourself been why nevertheless there under body water whose due as. Oops bevy husband idea fight inside theirs of week angrily wow width seriously according these horror it. Sheep growth lady earlier fascinate behind wait selfishly game those when bus away finally accident fondly out. Appetite in nothing smoothly pod regiment between e.g. nightly pod brace that of win should hey may. Cast anyone so even him sheaf of vision today whenever along sadly when gee they patrol any. You myself shout life every now ahead both those softly instance Polish will teach how there whichever. Group it regularly government part pollution milk alas friendship first nice whomever according constantly usually everything move. Child love hand for usually had myself yours harm width these who sit am smell eat next. Along had that with catalog whose sometimes between crew straightaway everybody in upon kindly our wiggle him. Oops ever at panic brain eek in candy cash all to shout gallop under soup others this. Box alternatively her protect herself to him equipment nightly forest yourself moreover crawl these as to with. Mine indoors where according whoever revolt ours one could Viennese archipelago is Kyrgyz fortnightly open crowd you. Of some weekly cackle door her it never what you of tonight wisp himself always nightly a.
Water ourselves to upon Afghan regularly yesterday has panther others those me been here any pause themselves. Out weary theirs themselves extremely themselves rather yesterday myself rarely then first e.g. ours you rarely absolutely. Quarterly what juice posse then what highly place but am couple without I occasionally win you monthly. Alternatively remain it gown it already yourselves gee where woman change there along certain an here for. Horde as lately ingeniously decidedly that it easily none it next those mortally before hedge frankly who. Sari quite Himalayan bouquet whoa clap selfish somewhat me life when together his energetic instead sew where. Its solitude group walk downstairs yours next close that brilliance where fiction from secondly finally busy weekly. Later troupe sternly early until tough due secondly importance this here hatred deeply quarterly e.g. lean have. Without mustering ourselves what fancy nothing I ours yay pod ourselves now Ecuadorian those heavy brilliance bathe. About woman retard how absolutely about man besides that despite might double them daily sharply whose gee. These exemplified of abroad these (space) down hers lot the which some others annoyance of ours provided. Fascinate quizzical host equally rush normally patiently awkwardly wad ourselves less some anything at in in any. Week few alternatively huh our due usually was any will batch secondly whom normally sedge reassure he.
Socks should shiny never play hand scold archipelago lastly everything should be disregard as normally of these. Brace outside shake this it grasp this but by anywhere project that its is now their oil. Secondly that ourselves cautiously therefore these never alas both monthly everybody pod selfishly had ourselves theirs that. This finally fear scarcely his outside each truthfully is of aha ever to nevertheless himself such are. What whereas when then it bag behind bikini straightaway tomorrow today a tomorrow enough Indonesian for next. Swimming but words usually flour finally fortnightly full grammar any all his yourself since has whose these. Then group Peruvian yet which about Turkmen ours of slavery say whom scream whirl a group though. Whatever whichever selfishly provided there foolishly Plutonian young shower quarterly yourselves enthusiastic place elegantly harm each yourselves. Were how might company their may totally where muster depending Malagasy herself innocence research us whoa muster. Her whose safely many where you consequently finally you in does whoever utterly in after these even. Bravely plant besides beneath frequently my to anyone hmm there panic anything weep any taste example whichever. Problem fleet anyone spoon sunglasses this sneeze would grow woman onto it park was moreover couple what. Eek nightly conclude this chest they hers in you be here electricity case she sometimes yay abroad.
From rudely however anything consequently how anger annually remove stand as solemnly almost I toothbrush should throw. First however yourself after belong might firstly finally off what for any then has whose she onto. Yellow been therefore upon honestly grapes fantastic idea nevertheless jewelry elegance ugly themselves hang me group bush. Down that group to vision hers it publicity loss then next they aloof naughty Afghan tomorrow that. Would heavy anyone his witty am aha that mine here bad you ourselves wrong crawl whole herself. I.e. to couch badly say these courageously in eye somebody the other you freedom dynasty insufficient nightly. Therefore one awkwardly basket move for whoever leap comb tonight nothing perfect block go it into but. Myself slippers even painfully indoors crawl constantly lastly tweak stay i.e. her whom what us how were. Yourselves huge whichever indeed up their horde year auspicious group somebody does child monthly tomorrow of something. Without board being battery double constantly enlist slavery few it ourselves year highlight for spin you must. Repeatedly hourly place motor by off inside there anybody Turkmen block dig till each now monthly cast. Tough may she abundant tonight yours taxi you shall patrol lastly no am over therefore towards those. Today there still yesterday plant usually sing ouch crew full kiss were throughout monthly frantically alas we.
Hmm road yay heat Belgian next cry move sit either tonight does collection now Icelandic table here. Soup never your air what besides summation frantically purse were does indoors daily one this quarterly regularly. Any outside hardly however knock enough frock define straightaway be other next yell horde so whichever crew. Ever bridge away only entertain on it troupe instead whale out than sparse since we occasion Canadian. Repeatedly software speed consequently stagger yourself many shower infrequently mouth number which you that previously which any. Previously cravat disregard eventually well secondly onto by had them band previously when genetics these of preen. Those them of it butter fact in his regularly across annually himself sail which smoke herself frankly. Where repelling delay hiccup army whenever time upon it intimidate hey of before successfully throughout from crack. Than yourselves tensely gee outstanding where battle yourself are shower on so bouquet grasp child peace here. Those brilliance his there he ever that upstairs group regularly it number were whoa nightly party dolphin. Smell does comb pose set her ours inside ride occasionally who must hedge firstly album therefore repel. Furthermore those thing lazy how without page its double of how us everybody half of been their. Would of quarterly still justice magazine gallop bathe indoors buy it hall mob besides those nearly my.
I faithful slavery those everyone next its ours of because first this anyone smoke did all has. At include one class government it under of may smell today by then toast additionally which whose. Where seldom someone being sigh respect including someone fragile assistance leap themselves whose moment dream all on. Scarcely numerous to conclude beneath tomorrow had itself himself ourselves lately above as as group straightaway pod. Down mine from nap frequently could his where me throw lastly confusion recline problem oops socks ski. Everyone today your contrast those several rather east but turn whose dishonesty these gown body may dream. Out accordingly usually hers slide inside its any you whole so whose album furniture yours to inside. Swing whoever fade staff library what myself practically hourly your down limp sedge himself in nightly today. How anyway that just credenza my kiss been company how some phew your monthly instance it game. Belief had leggings the place place tomorrow explode recently group that though moreover shall them hers my. Those indeed yet off why everyone whom college throw hey phew army Indian yet courageous her clump. Behind did another tomorrow according conclude door before bookcase cut due provided now a enormously either throughout. Convert army daily quarterly quarterly Hitlerian far team us me so Balinese few enough will moreover theirs.
Does dive chest elsewhere what her what that bevy wisp a some whomever spelling one from some. Me on string were that nobody move till relaxation clump been regularly you either ourselves several clothing. How there itchy including metal inadequately strongly bundle that to heap almost whose to though alone where. Stand Parisian his speed besides bowl violence yours maintain pharmacist in Plutonian include fortnightly this up yikes. Indeed Plutonian it what watch while class station limp yesterday solitude there which mine encouraging your you. These move yourselves peep host this the then energetic daily many violin one down that is i.e.. Being hatred accordingly this team that sister relieved where either stealthily journey collection those upon scream alas. Constantly you an point zebra lately her by for it collection behind eventually he alas mustering however. Whom quit mustering party room case these you those usually earlier that nightly muster pause example quarterly. Then there trip flock whale how sit whereas perfectly us lots in his been patience tomorrow Himalayan. Stack Swazi even moreover then over this how almost frankly daily had somewhat he lately homeless just. Somali whose finally that formerly murder there while though bunch for this punctually soap practically money lastly. After still over did auspicious nightly pair hungrily fascinate these which the those whose what hey you." + * ``` + */ + paragraph(paragraphcount: number, sentencecount: number, wordcount: number, paragraphseparator: string): string; + + /** + * Secret word or phrase used to authenticate access to a system or account. + * @returns a random password + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.password(true,false,true,true,false,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "-8r34!z294x7h" + * ``` + */ + password(lower: boolean, upper: boolean, numeric: boolean, special: boolean, space: boolean, length: number): string; + + /** + * Date that has occurred before the current moment in time. + * @returns a random pasttime + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.pastTime()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "2024-03-13T07:32:19.327566866+01:00" + * ``` + */ + pastTime(): string; + + /** + * Personal data, like name and contact details, used for identification and communication. + * @returns a random person + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.person()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"FirstName":"Josiah","LastName":"Thiel","Gender":"male","SSN":"558821916","Image":"https://picsum.photos/367/273","Hobby":"Winemaking","Job":{"Company":"Headlight","Title":"Administrator","Descriptor":"Chief","Level":"Configuration"},"Address":{"Address":"6992 Inletstad, Las Vegas, Rhode Island 82271","Street":"6992 Inletstad","City":"Las Vegas","State":"Rhode Island","Zip":"82271","Country":"Sweden","Latitude":-75.921372,"Longitude":109.436476},"Contact":{"Phone":"4361943393","Email":"janisbarrows@hessel.net"},"CreditCard":{"Type":"Discover","Number":"4525298222125328","Exp":"01/29","Cvv":"282"}} + * ``` + */ + person(): Record; + + /** + * Affectionate nickname given to a pet. + * @returns a random pet name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.petName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Nacho" + * ``` + */ + petName(): string; + + /** + * Numerical sequence used to contact individuals via telephone or mobile devices. + * @returns a random phone + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.phone()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "7053883851" + * ``` + */ + phone(): string; + + /** + * Formatted phone number of a person. + * @returns a random phone formatted + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.phoneFormatted()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "1-053-883-8516" + * ``` + */ + phoneFormatted(): string; + + /** + * A small group of words standing together. + * @returns a random phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.phrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "many thanks" + * ``` + */ + phrase(): string; + + /** + * Adjective indicating ownership or possession. + * @returns a random possessive adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.possessiveAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "his" + * ``` + */ + possessiveAdjective(): string; + + /** + * Words used to express the relationship of a noun or pronoun to other words in a sentence. + * @returns a random preposition + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.preposition()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "out" + * ``` + */ + preposition(): string; + + /** + * Preposition that can be formed by combining two or more prepositions. + * @returns a random preposition compound + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.prepositionCompound()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "apart from" + * ``` + */ + prepositionCompound(): string; + + /** + * Two-word combination preposition, indicating a complex relation. + * @returns a random preposition double + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.prepositionDouble()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "outside of" + * ``` + */ + prepositionDouble(): string; + + /** + * Phrase starting with a preposition, showing relation between elements in a sentence.. + * @returns a random preposition phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.prepositionPhrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "of a fuel" + * ``` + */ + prepositionPhrase(): string; + + /** + * Single-word preposition showing relationships between 2 parts of a sentence. + * @returns a random preposition simple + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.prepositionSimple()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "of" + * ``` + */ + prepositionSimple(): string; + + /** + * The amount of money or value assigned to a product, service, or asset in a transaction. + * @returns a random price + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.price(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + price(min: number, max: number): number; + + /** + * An item created for sale or use. + * @returns a random product + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.product()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"Name":"Quartz Teal Scale","Description":"Bravo mirror hundreds his party nobody. Anything wit she from above Chinese those choir toilet as you of other enormously.","Categories":["mobile phones","food and groceries","furniture"],"Price":82.9,"Features":["durable"],"Color":"green","Material":"bronze","UPC":"084020104876"} + * ``` + */ + product(): Record; + + /** + * Classification grouping similar products based on shared characteristics or functions. + * @returns a random product category + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.productCategory()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "mobile phones" + * ``` + */ + productCategory(): string; + + /** + * Explanation detailing the features and characteristics of a product. + * @returns a random product description + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.productDescription()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Up brace lung anyway then bravo mirror hundreds his party. Person anything wit she from above Chinese those choir toilet as you." + * ``` + */ + productDescription(): string; + + /** + * Specific characteristic of a product that distinguishes it from others products. + * @returns a random product feature + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.productFeature()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "touchscreen" + * ``` + */ + productFeature(): string; + + /** + * The substance from which a product is made, influencing its appearance, durability, and properties. + * @returns a random product material + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.productMaterial()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "alloy" + * ``` + */ + productMaterial(): string; + + /** + * Distinctive title or label assigned to a product for identification and marketing. + * @returns a random product name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.productName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Stream Gold Robot" + * ``` + */ + productName(): string; + + /** + * Standardized barcode used for product identification and tracking in retail and commerce. + * @returns a random product upc + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.productUpc()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "092964558555" + * ``` + */ + productUpc(): string; + + /** + * Formal system of instructions used to create software and perform computational tasks. + * @returns a random programming language + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.programmingLanguage()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Ceylon" + * ``` + */ + programmingLanguage(): string; + + /** + * Word used in place of a noun to avoid repetition. + * @returns a random pronoun + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.pronoun()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "these" + * ``` + */ + pronoun(): string; + + /** + * Pronoun that points out specific people or things. + * @returns a random pronoun demonstrative + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.pronounDemonstrative()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "these" + * ``` + */ + pronounDemonstrative(): string; + + /** + * Pronoun that does not refer to a specific person or thing. + * @returns a random pronoun indefinite + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.pronounIndefinite()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "anyone" + * ``` + */ + pronounIndefinite(): string; + + /** + * Pronoun used to ask questions. + * @returns a random pronoun interrogative + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.pronounInterrogative()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "who" + * ``` + */ + pronounInterrogative(): string; + + /** + * Pronoun used as the object of a verb or preposition. + * @returns a random pronoun object + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.pronounObject()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "you" + * ``` + */ + pronounObject(): string; + + /** + * Pronoun referring to a specific persons or things. + * @returns a random pronoun personal + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.pronounPersonal()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "you" + * ``` + */ + pronounPersonal(): string; + + /** + * Pronoun indicating ownership or belonging. + * @returns a random pronoun possessive + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.pronounPossessive()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "mine" + * ``` + */ + pronounPossessive(): string; + + /** + * Pronoun referring back to the subject of the sentence. + * @returns a random pronoun reflective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.pronounReflective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "herself" + * ``` + */ + pronounReflective(): string; + + /** + * Pronoun that introduces a clause, referring back to a noun or pronoun. + * @returns a random pronoun relative + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.pronounRelative()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "that" + * ``` + */ + pronounRelative(): string; + + /** + * Adjective derived from a proper noun, often used to describe nationality or origin. + * @returns a random proper adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.properAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Confucian" + * ``` + */ + properAdjective(): string; + + /** + * Adjective that indicates the quantity or amount of something. + * @returns a random quantitative adjective + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.quantitativeAdjective()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "several" + * ``` + */ + quantitativeAdjective(): string; + + /** + * Statement formulated to inquire or seek clarification. + * @returns a random question + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.question()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Forage pinterest direct trade pug skateboard food truck flannel cold-pressed?" + * ``` + */ + question(): string; + + /** + * Direct repetition of someone else's words. + * @returns a random quote + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.quote()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "\"Forage pinterest direct trade pug skateboard food truck flannel cold-pressed.\" - Lukas Ledner" + * ``` + */ + quote(): string; + + /** + * Randomly selected value from a slice of int. + * @returns a random random int + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.randomInt([14,8,13])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 14 + * ``` + */ + randomInt(ints: number[]): number; + + /** + * Return a random string from a string array. + * @returns a random random string + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.randomString(["none","how","these","keep","trip","congolese","choir","computer","still","far"])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "none" + * ``` + */ + randomString(strs: string[]): string[]; + + /** + * Randomly selected value from a slice of uint. + * @returns a random random uint + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.randomUint([14,8,13])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 14 + * ``` + */ + randomUint(uints: number[]): number; + + /** + * Color defined by red, green, and blue light values. + * @returns a random rgb color + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.rgbColor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * [13,150,143] + * ``` + */ + rgbColor(): number[]; + + /** + * Malfunction occuring during program execution, often causing abrupt termination or unexpected behavior. + * @returns a random runtime error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.runtimeError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + runtimeError(): string; + + /** + * The specific identification string sent by the Safari web browser when making requests on the internet. + * @returns a random safari user agent + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.safariUserAgent()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mozilla/5.0 (iPhone; CPU iPhone OS 7_3_2 like Mac OS X; en-US) AppleWebKit/534.34.8 (KHTML, like Gecko) Version/3.0.5 Mobile/8B114 Safari/6534.34.8" + * ``` + */ + safariUserAgent(): string; + + /** + * Colors displayed consistently on different web browsers and devices. + * @returns a random safe color + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.safeColor()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "black" + * ``` + */ + safeColor(): string; + + /** + * An institution for formal education and learning. + * @returns a random school + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.school()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Valley View Private Middle School" + * ``` + */ + school(): string; + + /** + * Unit of time equal to 1/60th of a minute. + * @returns a random second + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.second()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 9 + * ``` + */ + second(): number; + + /** + * Set of words expressing a statement, question, exclamation, or command. + * @returns a random sentence + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.sentence(13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Quickly up brace lung anyway then bravo mirror hundreds his party nobody person." + * ``` + */ + sentence(wordcount: number): string; + + /** + * Shuffles an array of ints. + * @returns a random shuffle ints + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.shuffleInts([14,8,13])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * [8,13,14] + * ``` + */ + shuffleInts(ints: number[]): number[]; + + /** + * Shuffle an array of strings. + * @returns a random shuffle strings + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.shuffleStrings(["none","how","these","keep","trip","congolese","choir","computer","still","far"])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * ["these","congolese","far","choir","still","trip","computer","how","keep","none"] + * ``` + */ + shuffleStrings(strs: string[]): string[]; + + /** + * Group of words that expresses a complete thought. + * @returns a random simple sentence + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.simpleSentence()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "A brave fuel enormously beautifully stack easy day less badly in a bunch." + * ``` + */ + simpleSentence(): string; + + /** + * Catchphrase or motto used by a company to represent its brand or values. + * @returns a random slogan + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.slogan()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Pride. De-engineered!" + * ``` + */ + slogan(): string; + + /** + * Random snack. + * @returns a random snack + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.snack()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Hoisin marinated wing pieces" + * ``` + */ + snack(): string; + + /** + * Unique nine-digit identifier used for government and financial purposes in the United States. + * @returns a random ssn + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.ssn()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "853698829" + * ``` + */ + ssn(): string; + + /** + * Governmental division within a country, often having its own laws and government. + * @returns a random state + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.state()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Massachusetts" + * ``` + */ + state(): string; + + /** + * Shortened 2-letter form of a country's state. + * @returns a random state abbreviation + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.stateAbbreviation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "AA" + * ``` + */ + stateAbbreviation(): string; + + /** + * Public road in a city or town, typically with houses and buildings on each side. + * @returns a random street + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.street()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "53883 Villageborough" + * ``` + */ + street(): string; + + /** + * Name given to a specific road or street. + * @returns a random street name + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.streetName()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Fall" + * ``` + */ + streetName(): string; + + /** + * Numerical identifier assigned to a street. + * @returns a random street number + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.streetNumber()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "25388" + * ``` + */ + streetNumber(): string; + + /** + * Directional or descriptive term preceding a street name, like 'East' or 'Main'. + * @returns a random street prefix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.streetPrefix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "West" + * ``` + */ + streetPrefix(): string; + + /** + * Designation at the end of a street name indicating type, like 'Avenue' or 'Street'. + * @returns a random street suffix + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.streetSuffix()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "ville" + * ``` + */ + streetSuffix(): string; + + /** + * Randomly split people into teams. + * @returns a random teams + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.teams(["none","how","these","keep","trip","congolese","choir","computer","still","far"],["unless","army","party","riches","theirs","instead","here","mine","whichever","that"])) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {"riches":["choir"],"theirs":["still"],"here":["computer"],"mine":["how"],"unless":["these"],"army":["congolese"],"party":["far"],"instead":["trip"],"whichever":["keep"],"that":["none"]} + * ``` + */ + teams(people: string[], teams: string[]): Record>; + + /** + * Region where the same standard time is used, based on longitudinal divisions of the Earth. + * @returns a random timezone + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.timezone()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Tonga Standard Time" + * ``` + */ + timezone(): string; + + /** + * Abbreviated 3-letter word of a timezone. + * @returns a random timezone abbreviation + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.timezoneAbbreviation()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "TST" + * ``` + */ + timezoneAbbreviation(): string; + + /** + * Full name of a timezone. + * @returns a random timezone full + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.timezoneFull()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "(UTC+13:00) Nuku'alofa" + * ``` + */ + timezoneFull(): string; + + /** + * The difference in hours from Coordinated Universal Time (UTC) for a specific region. + * @returns a random timezone offset + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.timezoneOffset()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + timezoneOffset(): number; + + /** + * Geographic area sharing the same standard time. + * @returns a random timezone region + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.timezoneRegion()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Asia/Manila" + * ``` + */ + timezoneRegion(): string; + + /** + * Verb that requires a direct object to complete its meaning. + * @returns a random transitive verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.transitiveVerb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "bother" + * ``` + */ + transitiveVerb(): string; + + /** + * Unsigned 16-bit integer, capable of representing values from 0 to 65,535. + * @returns a random uint16 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.uint16()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 15082 + * ``` + */ + uint16(): number; + + /** + * Unsigned 32-bit integer, capable of representing values from 0 to 4,294,967,295. + * @returns a random uint32 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.uint32()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 2131652109 + * ``` + */ + uint32(): number; + + /** + * Unsigned 64-bit integer, capable of representing values from 0 to 18,446,744,073,709,551,615. + * @returns a random uint64 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.uint64()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 5195529898953699000 + * ``` + */ + uint64(): number; + + /** + * Unsigned 8-bit integer, capable of representing values from 0 to 255. + * @returns a random uint8 + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.uint8()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 234 + * ``` + */ + uint8(): number; + + /** + * Non-negative integer value between given range. + * @returns a random uintrange + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.uintRange(13,13)) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 13 + * ``` + */ + uintRange(min: number, max: number): number; + + /** + * Web address that specifies the location of a resource on the internet. + * @returns a random url + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.url()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "http://www.forwardtransition.biz/enhance/benchmark" + * ``` + */ + url(): string; + + /** + * String sent by a web browser to identify itself when requesting web content. + * @returns a random user agent + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.userAgent()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Mozilla/5.0 (X11; Linux i686) AppleWebKit/5311 (KHTML, like Gecko) Chrome/37.0.834.0 Mobile Safari/5311" + * ``` + */ + userAgent(): string; + + /** + * Unique identifier assigned to a user for accessing an account or system. + * @returns a random username + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.username()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Abshire5538" + * ``` + */ + username(): string; + + /** + * 128-bit identifier used to uniquely identify objects or entities in computer systems. + * @returns a random uuid + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.uuid()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "ea6ab1ab-f06c-4990-835d-e628b7e659e1" + * ``` + */ + uuid(): string; + + /** + * Occurs when input data fails to meet required criteria or format specifications. + * @returns a random validation error + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.validationError()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * {} + * ``` + */ + validationError(): string; + + /** + * Edible plant or part of a plant, often used in savory cooking or salads. + * @returns a random vegetable + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.vegetable()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Broccoli" + * ``` + */ + vegetable(): string; + + /** + * Word expressing an action, event or state. + * @returns a random verb + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.verb()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "dig" + * ``` + */ + verb(): string; + + /** + * Phrase that Consists of a verb and its modifiers, expressing an action or state. + * @returns a random verb phrase + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.verbPhrase()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "cheerfully cry enormously beautifully with easy day less badly" + * ``` + */ + verbPhrase(): string; + + /** + * Day of the week excluding the weekend. + * @returns a random weekday + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.weekday()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "Sunday" + * ``` + */ + weekday(): string; + + /** + * Basic unit of language representing a concept or thing, consisting of letters and having meaning. + * @returns a random word + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.word()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "quickly" + * ``` + */ + word(): string; + + /** + * Period of 365 days, the time Earth takes to orbit the Sun. + * @returns a random year + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.year()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * 1979 + * ``` + */ + year(): number; + + /** + * Numerical code for postal address sorting, specific to a geographic area. + * @returns a random zip + * @example + * ```ts + *import { Faker } from "k6/x/faker" + * + *let faker = new Faker(11) + * + *export default function () { + * console.log(faker.zen.zip()) + *} + * + *``` + * **Output** (formatted as JSON value) + *```json + * "25388" + * ``` + */ + zip(): string; +} From 8f93cf383a3cdb7444b5542043087926d4c33652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20SZKIBA?= Date: Wed, 13 Mar 2024 17:58:31 +0100 Subject: [PATCH 3/4] ci: fix workflow --- .github/workflows/docs.yml | 4 ++++ .github/workflows/test.yml | 12 ++++++++++-- .gitignore | 3 ++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d4c60a8..055ddf5 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,6 +24,10 @@ jobs: - name: Install bun uses: oven-sh/setup-bun@v1 + + - name: Install dependenvies + run: bun install + - name: Generate API doc run: bun x typedoc - name: Copy index.d.ts diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3f7518c..7d9f5be 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,8 +27,12 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Test - run: go test -count 1 -race -coverprofile=coverage.txt ./... + - name: Short Test + run: go test -short -count 1 ./... + + - name: Coverage Test + if: ${{ matrix.platform == 'ubuntu-latest' && github.ref_name == 'master' }} + run: go test -short -count 1 -coverprofile=coverage.txt ./... - name: Upload Coverage if: ${{ matrix.platform == 'ubuntu-latest' && github.ref_name == 'master' }} @@ -37,6 +41,10 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} slug: szkiba/xk6-faker + - name: Full Test + if: ${{ matrix.platform == 'ubuntu-latest' }} + run: go test -count 1 -race ./... + - name: Generate Go Report Card if: ${{ matrix.platform == 'ubuntu-latest' && github.ref_name == 'master' }} uses: creekorful/goreportcard-action@v1.0 diff --git a/.gitignore b/.gitignore index 695a2d4..4f15cf8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ *_skeleton.go /build /node_modules -yarn.lock \ No newline at end of file +yarn.lock +bun.lockb \ No newline at end of file From 36bc2bc425baea1a4d3cd6ff6928387247f6553f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20SZKIBA?= Date: Wed, 13 Mar 2024 18:33:48 +0100 Subject: [PATCH 4/4] docs: release notes --- releases/v0.3.0.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 releases/v0.3.0.md diff --git a/releases/v0.3.0.md b/releases/v0.3.0.md new file mode 100644 index 0000000..8c687f2 --- /dev/null +++ b/releases/v0.3.0.md @@ -0,0 +1,20 @@ +xk6-faker `v0.3.0` is here with a new JavaScript-like [API](https://ivan.szkiba.hu/xk6-faker/) 🎉! + +This release includes: + +- New JavaScript-like API +- API doc generated by TypeDoc + +## Breaking changes + +### New JavaScript-like API + +One of the goals of the refactor is to replace the previous xk6-faker API, which mirrors the underlying go library API, with an API similar to the popular JavaScript faker libraries. + +Another important goal was to increase maintainability. The previous implementation contained a lot of manually created, difficult-to-maintain code and test code. After the refactor, the codes and test codes that required a lot of manual work disappeared, code generation replaces them in many places. + +## New features + +### API doc generated by TypeDoc + +The new [API documentation website](https://ivan.szkiba.hu/xk6-faker/) is much clearer and easier to use than the previous documentation. The generation is done using TypeDoc, which can be considered standard, so the appearance is similar to that of the usual TypeScript API documentation sites.