diff --git a/.github/ISSUE_TEMPLATE/---1-report-an-issue.md b/.github/ISSUE_TEMPLATE/---1-report-an-issue.md
deleted file mode 100644
index c3a63746..00000000
--- a/.github/ISSUE_TEMPLATE/---1-report-an-issue.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-name: "\U0001F41B Report an issue"
-about: A feature is not working as expected.
-title: ''
-labels: ''
-assignees: ''
-
----
-
-### New Issue Checklist
-
-
-- [ ] I am not disclosing a [vulnerability](https://github.com/parse-community/parse-php-sdk/security/policy).
-- [ ] I am not just asking a [question](https://github.com/parse-community/.github/blob/main/SUPPORT.md).
-- [ ] I have searched through [existing issues](https://github.com/parse-community/parse-php-sdk/issues?q=is%3Aissue).
-- [ ] I can reproduce the issue with the latest version of [Parse Server](https://github.com/parse-community/parse-server/releases) and the [Parse PHP SDK](https://github.com/parse-community/parse-php-sdk/releases).
-
-### Issue Description
-
-
-### Steps to reproduce
-
-
-### Actual Outcome
-
-
-### Expected Outcome
-
-
-### Environment
-
-
-Parse PHP SDK
-- SDK version: `FILL_THIS_OUT`
-- PHP version: `FILL_THIS_OUT`
-
-Server
-- Parse Server version: `FILL_THIS_OUT`
-- Operating system: `FILL_THIS_OUT`
-- Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc): `FILL_THIS_OUT`
-
-Database
-- System (MongoDB or Postgres): `FILL_THIS_OUT`
-- Database version: `FILL_THIS_OUT`
-- Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc): `FILL_THIS_OUT`
-
-### Logs
-
diff --git a/.github/ISSUE_TEMPLATE/---2-feature-request.md b/.github/ISSUE_TEMPLATE/---2-feature-request.md
deleted file mode 100644
index d1f9ba66..00000000
--- a/.github/ISSUE_TEMPLATE/---2-feature-request.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-name: "\U0001F4A1 Request a feature"
-about: Suggest new functionality or an enhancement of existing functionality.
-title: ''
-labels: ''
-assignees: ''
-
----
-
-### New Feature / Enhancement Checklist
-
-
-- [ ] I am not disclosing a [vulnerability](https://github.com/parse-community/parse-php-sdk/security/policy).
-- [ ] I am not just asking a [question](https://github.com/parse-community/.github/blob/main/SUPPORT.md).
-- [ ] I have searched through [existing issues](https://github.com/parse-community/parse-php-sdk/issues?q=is%3Aissue).
-
-### Current Limitation
-
-
-### Feature / Enhancement Description
-
-
-### Example Use Case
-
-
-### Alternatives / Workarounds
-
-
-### 3rd Party References
-
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
deleted file mode 100644
index e5a8c3ca..00000000
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-blank_issues_enabled: false
-contact_links:
- - name: 🙋🏽♀️ Getting help with code
- url: https://stackoverflow.com/questions/tagged/parse-platform
- about: Get help with code-level questions on Stack Overflow.
- - name: 🙋 Getting general help
- url: https://community.parseplatform.org
- about: Get help with other questions on our Community Forum.
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
deleted file mode 100644
index 40d5603f..00000000
--- a/.github/pull_request_template.md
+++ /dev/null
@@ -1,27 +0,0 @@
-### New Pull Request Checklist
-
-
-- [ ] I am not disclosing a [vulnerability](https://github.com/parse-community/parse-php-sdk/blob/master/SECURITY.md).
-- [ ] I am creating this PR in reference to an [issue](https://github.com/parse-community/parse-php-sdk/issues?q=is%3Aissue).
-
-### Issue Description
-
-
-Closes: #`FILL_THIS_OUT`
-
-### Approach
-
-
-### TODOs before merging
-
-
-- [ ] Add tests
-- [ ] Add changes to documentation (guides, repository pages, in-code descriptions)
-- [ ] Add changelog entry
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index e27ed36f..00000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,59 +0,0 @@
----
-name: ci
-on:
- push:
- branches:
- - master
- pull_request:
- branches:
- - "**"
-jobs:
- check-lock-file-version:
- name: NPM Lock File Version
- timeout-minutes: 5
- runs-on: ubuntu-20.04
- steps:
- - uses: actions/checkout@v3
- - name: Check NPM lock file version
- uses: mansona/npm-lockfile-version@v1
- with:
- version: 2
- build:
- runs-on: ubuntu-20.04
- timeout-minutes: 30
- strategy:
- matrix:
- include:
- - name: PHP 8.3
- PHP_VERSION: 8.3
- - name: PHP 8.2
- PHP_VERSION: 8.2
- - name: PHP 8.1
- PHP_VERSION: 8.1
- fail-fast: false
- name: Test ${{ matrix.name }}
- steps:
- - uses: actions/checkout@v3
- - name: Use Node.js
- uses: actions/setup-node@v3
- with:
- node-version: 16.17.1
- cache: npm
- - name: Setup PHP with PECL extension
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.PHP_VERSION }}
- - run: composer install
- - run: npm ci
- - run: npm start
- - run: npm run lint
- - run: npm run test-stream
- - run: npm run test:coverage
- - run: npm run document-check
- - run: npm run document
- env:
- CI: true
- - run: bash <(curl -s https://codecov.io/bash)
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
diff --git a/.github/workflows/release-automated.yml b/.github/workflows/release-automated.yml
deleted file mode 100644
index 0ed96651..00000000
--- a/.github/workflows/release-automated.yml
+++ /dev/null
@@ -1,56 +0,0 @@
-name: release-automated
-on:
- push:
- branches: [ master, release, alpha, beta ]
-env:
- NODE_VERSION: 18
- PHP_VERSION: 8.1
-jobs:
- release:
- runs-on: ubuntu-latest
- outputs:
- current_tag: ${{ steps.tag.outputs.current_tag }}
- steps:
- - uses: actions/checkout@v3
- with:
- persist-credentials: false
- - uses: actions/setup-node@v3
- with:
- node-version: ${{ env.NODE_VERSION }}
- - run: npm ci
- - run: npx semantic-release
- env:
- GH_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Determine tag on current commit
- id: tag
- run: echo "::set-output name=current_tag::$(git describe --tags --abbrev=0 --exact-match || echo '')"
- docs-publish:
- needs: release
- if: needs.release.outputs.current_tag != ''
- runs-on: ubuntu-latest
- timeout-minutes: 15
- steps:
- - uses: actions/checkout@v3
- with:
- ref: ${{ needs.release.outputs.current_tag }}
- - name: Use Node.js
- uses: actions/setup-node@v3
- with:
- node-version: ${{ env.NODE_VERSION }}
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ env.PHP_VERSION }}
- - name: Generate Docs
- run: |
- composer install
- npm run document-check
- npm run document
- env:
- SOURCE_TAG: ${{ needs.release.outputs.current_tag }}
- - name: Deploy
- uses: peaceiris/actions-gh-pages@v3.7.3
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- publish_dir: ./.phpdoc/build
diff --git a/.github/workflows/release-manual-docs.yml b/.github/workflows/release-manual-docs.yml
deleted file mode 100644
index cd04c28a..00000000
--- a/.github/workflows/release-manual-docs.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: release-manual-docs
-on:
- workflow_dispatch:
- inputs:
- tag:
- default: ''
- description: 'Version tag:'
-env:
- NODE_VERSION: 18
- PHP_VERSION: 8.1
-jobs:
- docs-publish:
- if: github.event.inputs.tag != ''
- runs-on: ubuntu-latest
- timeout-minutes: 15
- steps:
- - uses: actions/checkout@v3
- with:
- ref: ${{ github.event.inputs.tag }}
- - name: Use Node.js
- uses: actions/setup-node@v3
- with:
- node-version: ${{ env.NODE_VERSION }}
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ env.PHP_VERSION }}
- - name: Generate Docs
- run: |
- composer install
- npm run document-check
- npm run document
- env:
- SOURCE_TAG: ${{ github.event.inputs.tag }}
- - name: Deploy
- uses: peaceiris/actions-gh-pages@v3.7.3
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- publish_dir: ./.phpdoc/build
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 38e69214..00000000
--- a/.gitignore
+++ /dev/null
@@ -1,22 +0,0 @@
-.idea
-.DS_Store
-vendor
-
-# npm based parse-server-test
-node_modules
-logs
-test_logs
-
-# ignore test results
-phpunit-test-results
-.phpunit.result.cache
-.phpunit.cache
-*.log
-
-coverage.xml
-
-# ignore phpdoc
-output/
-.phpdoc/
-
-composer.phar
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 00000000..e69de29b
diff --git a/.releaserc/commit.hbs b/.releaserc/commit.hbs
deleted file mode 100644
index e10a0d90..00000000
--- a/.releaserc/commit.hbs
+++ /dev/null
@@ -1,61 +0,0 @@
-*{{#if scope}} **{{scope}}:**
-{{~/if}} {{#if subject}}
- {{~subject}}
-{{~else}}
- {{~header}}
-{{~/if}}
-
-{{~!-- commit link --}} {{#if @root.linkReferences~}}
- ([{{shortHash}}](
- {{~#if @root.repository}}
- {{~#if @root.host}}
- {{~@root.host}}/
- {{~/if}}
- {{~#if @root.owner}}
- {{~@root.owner}}/
- {{~/if}}
- {{~@root.repository}}
- {{~else}}
- {{~@root.repoUrl}}
- {{~/if}}/
- {{~@root.commit}}/{{hash}}))
-{{~else}}
- {{~shortHash}}
-{{~/if}}
-
-{{~!-- commit references --}}
-{{~#if references~}}
- , closes
- {{~#each references}} {{#if @root.linkReferences~}}
- [
- {{~#if this.owner}}
- {{~this.owner}}/
- {{~/if}}
- {{~this.repository}}#{{this.issue}}](
- {{~#if @root.repository}}
- {{~#if @root.host}}
- {{~@root.host}}/
- {{~/if}}
- {{~#if this.repository}}
- {{~#if this.owner}}
- {{~this.owner}}/
- {{~/if}}
- {{~this.repository}}
- {{~else}}
- {{~#if @root.owner}}
- {{~@root.owner}}/
- {{~/if}}
- {{~@root.repository}}
- {{~/if}}
- {{~else}}
- {{~@root.repoUrl}}
- {{~/if}}/
- {{~@root.issue}}/{{this.issue}})
- {{~else}}
- {{~#if this.owner}}
- {{~this.owner}}/
- {{~/if}}
- {{~this.repository}}#{{this.issue}}
- {{~/if}}{{/each}}
-{{~/if}}
-
diff --git a/.releaserc/footer.hbs b/.releaserc/footer.hbs
deleted file mode 100644
index 575df456..00000000
--- a/.releaserc/footer.hbs
+++ /dev/null
@@ -1,11 +0,0 @@
-{{#if noteGroups}}
-{{#each noteGroups}}
-
-### {{title}}
-
-{{#each notes}}
-* {{#if commit.scope}}**{{commit.scope}}:** {{/if}}{{text}} ([{{commit.shortHash}}]({{commit.shortHash}}))
-{{/each}}
-{{/each}}
-
-{{/if}}
diff --git a/.releaserc/header.hbs b/.releaserc/header.hbs
deleted file mode 100644
index fc781c4b..00000000
--- a/.releaserc/header.hbs
+++ /dev/null
@@ -1,25 +0,0 @@
-{{#if isPatch~}}
- ##
-{{~else~}}
- #
-{{~/if}} {{#if @root.linkCompare~}}
- [{{version}}](
- {{~#if @root.repository~}}
- {{~#if @root.host}}
- {{~@root.host}}/
- {{~/if}}
- {{~#if @root.owner}}
- {{~@root.owner}}/
- {{~/if}}
- {{~@root.repository}}
- {{~else}}
- {{~@root.repoUrl}}
- {{~/if~}}
- /compare/{{previousTag}}...{{currentTag}})
-{{~else}}
- {{~version}}
-{{~/if}}
-{{~#if title}} "{{title}}"
-{{~/if}}
-{{~#if date}} ({{date}})
-{{/if}}
diff --git a/.releaserc/template.hbs b/.releaserc/template.hbs
deleted file mode 100644
index 63610bdc..00000000
--- a/.releaserc/template.hbs
+++ /dev/null
@@ -1,14 +0,0 @@
-{{> header}}
-
-{{#each commitGroups}}
-
-{{#if title}}
-### {{title}}
-
-{{/if}}
-{{#each commits}}
-{{> commit root=@root}}
-{{/each}}
-{{/each}}
-
-{{> footer}}
diff --git a/Assets/logo large.png b/Assets/logo large.png
deleted file mode 100644
index 16c5c8d5..00000000
Binary files a/Assets/logo large.png and /dev/null differ
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 6b17b1e4..00000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,352 +0,0 @@
-# [2.4.0](https://github.com/parse-community/parse-php-sdk/compare/2.3.2...2.4.0) (2024-06-27)
-
-
-### Features
-
-* Add support for PHP 8.3 ([#520](https://github.com/parse-community/parse-php-sdk/issues/520)) ([0a4efd8](https://github.com/parse-community/parse-php-sdk/commit/0a4efd8fd0a0eb55aed7c1e61ba47888ab6ef28b))
-
-## [2.3.2](https://github.com/parse-community/parse-php-sdk/compare/2.3.1...2.3.2) (2023-05-13)
-
-
-### Bug Fixes
-
-* Prevent `query->count` from changing query internals ([#511](https://github.com/parse-community/parse-php-sdk/issues/511)) ([26db002](https://github.com/parse-community/parse-php-sdk/commit/26db002811c4e6a8f87649cbc84ca3fa91345a85))
-
-## [2.3.1](https://github.com/parse-community/parse-php-sdk/compare/2.3.0...2.3.1) (2023-05-13)
-
-
-### Bug Fixes
-
-* Prevent `query->equalTo` from overriding other conditions ([#510](https://github.com/parse-community/parse-php-sdk/issues/510)) ([0fc3d8f](https://github.com/parse-community/parse-php-sdk/commit/0fc3d8f630ba918689f2901e96c631d761561b74))
-
-# [2.3.0](https://github.com/parse-community/parse-php-sdk/compare/2.2.0...2.3.0) (2023-05-13)
-
-
-### Features
-
-* Add query methods `fetchWithInclude` and `fetchAllWithInclude` ([#512](https://github.com/parse-community/parse-php-sdk/issues/512)) ([0570f15](https://github.com/parse-community/parse-php-sdk/commit/0570f157a5e4efb2310b7df44c25ff246077589a))
-
-# [2.2.0](https://github.com/parse-community/parse-php-sdk/compare/2.1.0...2.2.0) (2023-05-13)
-
-
-### Features
-
-* Allow http options to be passed into `ParseClient` ([#513](https://github.com/parse-community/parse-php-sdk/issues/513)) ([ee2a5fa](https://github.com/parse-community/parse-php-sdk/commit/ee2a5fa389d553e73e483130647fd93cf187d142))
-
-# [2.1.0](https://github.com/parse-community/parse-php-sdk/compare/2.0.0...2.1.0) (2023-04-29)
-
-
-### Features
-
-* Add `ParseUser::logInAs` method ([#486](https://github.com/parse-community/parse-php-sdk/issues/486)) ([5b4e102](https://github.com/parse-community/parse-php-sdk/commit/5b4e102e4513e82cca1ddcce9c2158f6187239c8))
-
-# [2.0.0](https://github.com/parse-community/parse-php-sdk/compare/1.6.0...2.0.0) (2023-04-27)
-
-### Features
-
-* Add support for PHP 8.1, 8.2 ([#489](https://github.com/parse-community/parse-php-sdk/pull/489)) ([d5783e3](https://github.com/parse-community/parse-php-sdk/commit/d5783e3440a2baf9bcc65f829ec107b91ff4c037))
-* Add support for `object->exists()` ([#453](https://github.com/parse-community/parse-php-sdk/pull/453)) ([eada867](https://github.com/parse-community/parse-php-sdk/commit/eada867bfa72df4393b5344e97bcb188c4f6ea4f))
-
-### BREAKING CHANGES
-
-- This release requires PHP version >= 8.1.0 ([#489](https://github.com/parse-community/parse-php-sdk/pull/489)) ([d5783e3](https://github.com/parse-community/parse-php-sdk/commit/d5783e3440a2baf9bcc65f829ec107b91ff4c037))
-
-### 1.6.0
-[See the diff between 1.5.1 and 1.6.0](https://github.com/parse-community/parse-php-sdk/compare/1.5.1...1.6.0)
-
-*About this Release*
-Support for PHP < 7 and HHVM has been dropped.
-
-- Support Query withCount (#448)
-- Support Query exclude keys (#445)
-- Support Query readPreference (#446)
-- Support return raw data from Query first (#441)
-
-### 1.5.1
-[See the diff between 1.5.0 and 1.5.1](https://github.com/parse-community/parse-php-sdk/compare/1.5.0...1.5.1)
-
-No changes from 1.5.0. Creating release to fix mis deployed 1.5.0.
-
-### 1.5.0
-[See the diff between 1.4.0 and 1.5.0](https://github.com/parse-community/parse-php-sdk/compare/1.4.0...1.5.0)
-
-- Avoid session fixation by regenerating session id on user promotion (#414)
-- Enable login with POST (#430)
-- Properly handle null query response (#425)
-- Fix queries equalTo with null values (#406)
-- Add sort option to GeoQueries (#424)
-- Add encode option to ParseQuery:find (#423)
-- Add batchSize to saveAll / destroyAll (#422)
-- Add includeAll to query (#421)
-- Add And / Nor query (#419)
-- Add 'containedBy' query (#418)
-- Add 'containsAllStartingWith' query (#417)
-- Remove anonymous auth data from User table when user registers. Match other SDK behavior (#417)
-- Fix bug in mime type guessing due to case mishandling (#399)
-- Use registered subclass when creating a ParseUser (#394)
-
-
-### 1.4.0
-[See the diff between 1.3.0 and 1.4.0](https://github.com/parse-community/parse-php-sdk/compare/1.3.0...1.4.0)
-
-- Fixes encode/decode method descriptors
-- Adds Relative Time Queries (#360)
-- Adds Server Info (#361)
-- README and code cleanup, adds **CHANGELOG** and **CODE_OF_CONDUCT**
-- Adds Purge & Polygon to ParseSchema (#365)
-- Adds Parse Server Health Check (#366)
-- Adds the ability to upgrade to a revocable session (#368)
-- Adds ability to Request Verification Emails (#369)
-- Adds the ability to set/save in `ParseConfig` (#371)
-- Adds `ParseLogs` (#370)
-- Adds `ParseAudience` (#372)
-- Adds jobs to `ParseCloud` (#373)
-- Adds support for aggregate queries (#355) (thanks to [Diamond Lewis](https://github.com/dplewis))
-- Fix npm license warning (thanks to [Arthur Cinader](https://github.com/acinader))
-- Updates **parse-server-test** dependency to 1.3.6
-- Support for managing indexes via **ParseSchema** (#357) (thanks to [Diamond Lewis](https://github.com/dplewis))
-- Slight test adjustments
-
-### 1.3.0
-[See the diff between 1.2.10 and 1.3.0](https://github.com/parse-community/parse-php-sdk/compare/1.2.10...1.3.0)
-
-- Adds **HHVM** support
-- Modified `ParseFile` to use the current **HttpClient** rather than just curl for download
-- Adds full text search via `ParseQuery::fullText` for Parse Server **2.5.0** and later (thanks to [Diamond Lewis](https://github.com/dplewis))
-- Adds **encode**/**decode** support to `ParseObject`
-- Travis CI cache fixes
-- Slight test modifications for later versions of parse
-- A few README typo fixes and additions
-
-### 1.2.10
-[See the diff between 1.2.9 and 1.2.10](https://github.com/parse-community/parse-php-sdk/compare/1.2.9...1.2.10)
-
-- Updates to make the sdk friendly with `phpdoc`
-- Added **Getting Started** section to README
-- Removed the default server and mount path for `api.parse.com`
-- Setup `phpdoc` style enforcing and autodeploy from most recent `master` for our [api ref](http://parseplatform.org/parse-php-sdk/namespaces/Parse.html)
-- **jms/serializer** pinned to **1.7.1** for testing as mentioned in #336 (for phpdoc)
-- Added **ParsePolygon** type and `polygonContains` to **ParseQuery** (thanks to [Diamond Lewis](https://github.com/dplewis))
-- Enhanced numerious exceptions with proper error codes, following the [guide error codes](http://docs.parseplatform.org/php/guide/#error-codes)
-- CI improvements and expanded to run tests under `ParseStreamClient`
-
-### 1.2.9
-[See the diff between 1.2.8 and 1.2.9](https://github.com/parse-community/parse-php-sdk/compare/1.2.8...1.2.9)
-
-- Integrates ParseServer for testing the sdk against, for convenience
-- Patch for associative arrays properly being encoded in ParseObject `_encode`
-- Adds `matches` to ParseQuery
-- Adds Travis CI for running tests on PRs as they are submitted
-- Adds `withinPolygon` to ParseQuery
-- Updates php_codesniffer and enforces [PSR-2 Coding Style](http://www.php-fig.org/psr/psr-2/) on the sdk
-
-### 1.2.8
-[See the diff between 1.2.7 and 1.2.8](https://github.com/parse-community/parse-php-sdk/compare/1.2.7...1.2.8)
-
-- General test improvements (thanks to [Ben Friedman](https://github.com/montymxb))
-- Update composer to point to parse-community (thanks to [Arthur Cinader](https://github.com/acinader))
-- Fix to save ParseFiles properly when saving ParseObject (thanks to [Damien Matabon](https://github.com/zeliard91))
-
-### 1.2.7
-[See the diff between 1.2.6 and 1.2.7](https://github.com/parse-community/parse-php-sdk/compare/1.2.6...1.2.7)
-
-- Doc links updated (thanks to [Ben Friedman](https://github.com/montymxb))
-- Adds getters for ParseInstallation (thanks to [Ben Friedman](https://github.com/montymxb))
-- Improvements to checking status via ParsePushStatus (thanks to [Ben Friedman](https://github.com/montymxb))
-
-### 1.2.6
-[See the diff between 1.2.5 and 1.2.6](https://github.com/parse-community/parse-php-sdk/compare/1.2.5...1.2.6)
-
-- Notice of code transfer to parse-community by [Kevin Lacker](https://github.com/lacker)
-- Always use '&' instead of relying on ini for query strings (thanks to [Arthur Cinader](https://github.com/acinader))
-
-### 1.2.5
-
-[See the diff between 1.2.4 and 1.2.5](https://github.com/parse-community/parse-php-sdk/compare/1.2.4...1.2.5)
-
-- Adds Twitter login helper (thanks to [Veri Ferdiansyah](https://github.com/vferdiansyah))
-
-### 1.2.4
-
-[See the diff between 1.2.3 and 1.2.4](https://github.com/parse-community/parse-php-sdk/compare/1.2.3...1.2.4)
-
-- Add `contains` to ParseQuery (thanks to [Arthur Cinader](https://github.com/acinader))
-- Fix for bi directional relations being saved when an array of pointers is used and is in dirty state (thanks to [Ben Friedman](https://github.com/montymxb))
-- Adds switchable http clients (transport layers) with configuration options (thanks to [Ben Friedman](https://github.com/montymxb))
-
-### 1.2.3
-[See the diff between 1.2.2 and 1.2.3](https://github.com/parse-community/parse-php-sdk/compare/1.2.2...1.2.3)
-
-- Updates ParseQuery to use `regex` internally for `startsWith` and `endsWith` (thanks to [evaldas-leliuga](https://github.com/evaldas-leliuga))
-- Updated with requirement of 'where' or 'query' in ParsePush (thanks to [Ben Friedman](https://github.com/montymxb))
-- Added some missing docs (thanks to Alaa Attya)
-
-### 1.2.2
-[See the diff between 1.2.1 and 1.2.2](https://github.com/parse-community/parse-php-sdk/compare/1.2.1...1.2.2)
-
-- Fix for checking if the mount path is root (thanks to [Ben Friedman](https://github.com/montymxb))
-- Fix for @docs annotation issue (thanks to [Paul Inman](https://github.com/inmanpaul))
-- Added check and conversion to string from Array for 'error' in back4app.com API response (thanks to [Ben Friedman](https://github.com/montymxb))
-- Standardize upload and delete methods of ParseFile to use ParseClient::_request (thanks to [Ben Friedman](https://github.com/montymxb))
-- Made REST API key optional (thanks to [Ben Friedman](https://github.com/montymxb))
-- Added the ability to get headers in response to sending a push (thanks to [Stas Kuryan](https://github.com/Stafox))
-- Updated Tests & SDK for Open Source Parse Server (thanks to [Ben Friedman](https://github.com/montymxb))
-
-### 1.2.1
-[See the diff between 1.2.0 and 1.2.1](https://github.com/parse-community/parse-php-sdk/compare/1.2.0...1.2.1)
-
-- Added float casting on lat/lng in ParseGeoPoint (thanks to [William George](https://github.com/awgeorge))
-- Fix: Screen for whether the 'objects' field is set under add or remove relations (thanks to [Ben Friedman](https://github.com/montymxb))
-- Fix: Removed appended version number causing batch requests to fail (thanks to [Ben Friedman](https://github.com/montymxb))
-- Separated serverURL & mountPath params in `setServerURL` and fixed batch ops behavior (thanks to [Ben Friedman](https://github.com/montymxb))
-- Added `endsWith` method to `ParseQuery` (thanks to [Abhinav Kumar](https://github.com/abhinavkumar940))
-- Added ability to trigger `beforeSave` method (thanks to [William George](https://github.com/awgeorge))
-- Fixed: #238 Pointers now save without fetching (thanks to [William George](https://github.com/awgeorge))
-- Fix for incorrectly formatted UUID (thanks to [Andrew Yates](https://github.com/ay8s))
-
-### 1.2.0
-[See the diff between 1.1.10 and 1.2.0](https://github.com/parse-community/parse-php-sdk/compare/1.1.10...1.2.0)
-
-- Updated to allow changing the server URL for the open source parse-server (thanks to [Fosco Marotto](https://github.com/gfosco))
-
-### 1.1.10
-[See the diff between 1.1.9 and 1.1.10](https://github.com/parse-community/parse-php-sdk/compare/1.1.9...1.1.10)
-
-- Added `ParseApp` (thanks to [Phelipe Alves de Souza](https://github.com/phelipealves))
-- Fixed serialization of unindexed arrays (thanks to [Damien Matabon](https://github.com/zeliard91))
-- Added `getAllKeys` to `ParseObject` (thanks to [Mayank Gandhi](https://github.com/mistahgandhi))
-
-### 1.1.9
-[See the diff between 1.1.8 and 1.1.9](https://github.com/parse-community/parse-php-sdk/compare/1.1.8...1.1.9)
-
-- General enhancements to ParseSchema (thanks to [Phelipe Alves de Souza](https://github.com/phelipealves))
-- Added `ParseHooks` (thanks to [Phelipe Alves de Souza](https://github.com/phelipealves))
-
-### 1.1.8
-[See the diff between 1.1.7 and 1.1.8](https://github.com/parse-community/parse-php-sdk/compare/1.1.7...1.1.8)
-
-- Changes for PSR2 possible compliance (thanks to [Julián Gutiérrez](https://github.com/juliangut))
-- PHPdoc and code quality improvements (thanks to [Phelipe Alves de Souza](https://github.com/phelipealves))
-- Batch operations fix (thanks to [Phelipe Alves de Souza](https://github.com/phelipealves))
-- Added `ParseSchema` (thanks to [Júlio César Gonçalves de Oliveira](https://github.com/pinguineras))
-
-### 1.1.7
-[See the diff between 1.1.6 and 1.1.7](https://github.com/parse-community/parse-php-sdk/compare/1.1.6...1.1.7)
-
-- Support empty query in `ParsePush` (thanks to [Sahan H.](https://github.com/sahanh))
-- Added missing PSR4 update on CONTRIBUTING.md (thanks to [Ivan](https://github.com/stoiev))
-- Expose timeout parameters in `ParseClient` (thanks to [Ivan](https://github.com/stoiev))
-- Added missing 2nd parameter in call to `ParseClient::_request` (thanks to [Phelipe Alves de Souza](https://github.com/phelipealves))
-- Added missing throws tags for PHPDoc (thanks to [Phelipe Alves de Souza](https://github.com/phelipealves))
-- Remove import of `Exception` in `ParseRole` (thanks to [Phelipe Alves de Souza](https://github.com/phelipealves))
-- Add optional `className` to `ParseObject::getRelation` (thanks to [Fosco Marotto](https://github.com/gfosco))
-
-### 1.1.6
-[See the diff between 1.1.5 and 1.1.6](https://github.com/parse-community/parse-php-sdk/compare/1.1.5...1.1.6)
-
-- Use `ParseObject::create` to create new ParseUser (thanks to [Ben Flannery](https://github.com/oflannabhra))
-- Better api url construction (thanks to [Julián Gutiérrez](https://github.com/juliangut))
-- Tests PSR4 autoloading (thanks to [Julián Gutiérrez](https://github.com/juliangut))
-- Remove API version constant from `ParseClient::_request` calls (thanks to [Julián Gutiérrez](https://github.com/juliangut))
-- Improved API url generation (thanks to [Julián Gutiérrez](https://github.com/juliangut))
-- StyleCI fixes (thanks to [Yaman Jain](https://github.com/yaman-jain))
-- Fix for ParsePush with ParseQuery which contains ParseObject does not work (thanks to [Julián Gutiérrez](https://github.com/juliangut))
-
-### 1.1.5
-[See the diff between 1.1.4 and 1.1.5](https://github.com/parse-community/parse-php-sdk/compare/1.1.4...1.1.5)
-
-- Updated `ParseObject::fetch` to return itself (thanks to [William George](https://github.com/awgeorge))
-- Added `loginWithAnonymous` and a couple bug fixes (thanks to [Honghao Liang](https://github.com/fcrosfly))
-- Fix unable to get zero or false value without an issue (thanks to yutaro-ihara)
-
-### 1.1.4
-[See the diff between 1.1.3 and 1.1.4](https://github.com/parse-community/parse-php-sdk/compare/1.1.3...1.1.4)
-
-- Fixes for Facebook login (thanks to [Fosco Marotto](https://github.com/gfosco))
-- Updated push handling for local or non-local time push (thanks to [Fosco Marotto](https://github.com/gfosco))
-
-### 1.1.3
-[See the diff between 1.1.2 and 1.1.3](https://github.com/parse-community/parse-php-sdk/compare/1.1.2...1.1.3)
-
-- Updated README to fix guide link (thanks to [Héctor Ramos](https://github.com/hramos))
-- Made `ParseInstallation` capable of being subclassed (thanks to [Koichi Yamamoto](https://github.com/noughts))
-- Fix destroyAll with useMasterKey option (thanks to [Koichi Yamamoto](https://github.com/noughts))
-- Added missing backslash to DateTime usage (thanks to [Fosco Marotto](https://github.com/gfosco))
-- Added isset handler to ParseObject (thanks to [Fosco Marotto](https://github.com/gfosco))
-- Updated array processing in destroyAll (thanks to [Fosco Marotto](https://github.com/gfosco))
-- Added encoding support for DateTimeImmutable (thanks to [Fosco Marotto](https://github.com/gfosco))
-
-### 1.1.2
-[See the diff between 1.1.1 and 1.1.2](https://github.com/parse-community/parse-php-sdk/compare/1.1.1...1.1.2)
-
-- Made ParseUser and ParseRole subclassable (thanks to [Caleb Fidecaro](https://github.com/HipsterJazzbo))
-- Added login/link with Facebook support (thanks to [Fosco Marotto](https://github.com/gfosco))
-- Added `ParseObject::fetchAll` (thanks to [Fosco Marotto](https://github.com/gfosco))
-- Removed wrong use lines inserted by editor (thanks to [Fosco Marotto](https://github.com/gfosco))
-
-### 1.1.1
-[See the diff between 1.1.0 and 1.1.1](https://github.com/parse-community/parse-php-sdk/compare/1.1.0...1.1.1)
-
-- Updated for full compliance with StyleCI (thanks to [Fosco Marotto](https://github.com/gfosco) && [Graham Campbell](https://github.com/GrahamCampbell))
-- Added sessionToken to `ParseQuery::count` (thanks to [Fosco Marotto](https://github.com/gfosco))
-
-### 1.1.0
-[See the diff between 1.0.6 and 1.1.0](https://github.com/parse-community/parse-php-sdk/compare/1.0.6...1.1.0)
-
-- Added `ParseSession` (thanks to [Fosco Marotto](https://github.com/gfosco))
-
-### 1.0.6
-[See the diff between 1.0.5 and 1.0.6](https://github.com/parse-community/parse-php-sdk/compare/1.0.5...1.0.6)
-
-- Added `ParseConfig` (thanks to [Fosco Marotto](https://github.com/gfosco))
-- Added `use Parse\ParseClient;` in README (thanks to [Kevin T'Syen](https://github.com/NoScopie))
-
-### 1.0.5
-[See the diff between 1.0.4 and 1.0.5](https://github.com/parse-community/parse-php-sdk/compare/1.0.4...1.0.5)
-
-- Added minimum PHP version (5.4) to readme (thanks to [Fosco Marotto](https://github.com/gfosco))
-- Modify `ParseQuery::includeKey` to return itself (thanks to [Somasundaram Ayyappan](https://github.com/somus))
-- Added option to enable/disable curl exceptions (thanks to [Luciano Nascimento](https://github.com/lucianocn))
-- Added useMasterKey param to `ParseObject::fetch` (thanks to [Fosco Marotto](https://github.com/gfosco))
-
-### 1.0.4
-[See the diff between 1.0.3 and 1.0.4](https://github.com/parse-community/parse-php-sdk/compare/1.0.3...1.0.4)
-
-- Fix DocBlock statements for better compatibility with Annotation libraries (thanks to [Schuyler Jager](https://github.com/schuylr))
-- Fix ParseAnalytics usage in README (thanks to [Cihad ÖGE](https://github.com/cihadoge))
-- Remove autogenerated OSX files (thanks to [Schuyler Jager](https://github.com/schuylr))
-- Fix for #31 - encode each value from associative array (thanks to [Schuyler Jager](https://github.com/schuylr))
-- More specific Exceptions in `ParseObject::__construct` (thanks to [Schuyler Jager](https://github.com/schuylr))
-- Added a message in the construct exception in case developer forgets to call `ParseClient::initialize` (thanks to [Schuyler Jager](https://github.com/schuylr))
-
-### 1.0.3
-[See the diff between 1.0.2 and 1.0.3](https://github.com/parse-community/parse-php-sdk/compare/1.0.2...1.0.3)
-
-- Made properties inside ParseObject that implement \Parse\Internal\Encodable to be encodable (thanks to [Osniel Gonzalez](https://github.com/osniel))
-- Fix datetime format issue in Local Push Scheduling (thanks to Frank He)
-
-### 1.0.2
-[See the diff between 1.0.1 and 1.0.2](https://github.com/parse-community/parse-php-sdk/compare/1.0.1...1.0.2)
-
-- Fix issue with ACL & role (thanks to Mathieu Moriceau)
-- Pass useMasterKey to deepSave on saveAll (thanks to [Eric Green](https://github.com/egreenmachine))
-- Allow saving Parse Objects with Master Key (thanks to [Eric Green](https://github.com/egreenmachine))
-- Fix bug saving using MasterKey (thanks to [Eric Green](https://github.com/egreenmachine))
-- Added delete to ParseFile (thanks to [Fosco Marotto](https://github.com/gfosco))
-- Matching save signature on ParseUser & ParseRole (thanks to [Fosco Marotto](https://github.com/gfosco))
-
-### 1.0.1
-[See the diff between 1.0.0 and 1.0.1](https://github.com/parse-community/parse-php-sdk/compare/1.0.0...1.0.1)
-
-- Added syntax highlighting to README (thanks to [Koen Schmeets](https://github.com/vespakoen))
-- Added autoload for those that don't want to use Composer (thanks to [Niraj Shah](https://github.com/niraj-shah))
-- Updated path for `PARSE_SDK_DIR` (thanks to [Niraj Shah](https://github.com/niraj-shah))
-- Added use of current user session in `ParseCloud::run` (thanks to [Niraj Shah](https://github.com/niraj-shah))
-- Fix for `where` parameter in `ParsePush::send` (thanks to [Niraj Shah](https://github.com/niraj-shah))
-- Added init instructions to README (thanks to [Niraj Shah](https://github.com/niraj-shah))
-- Updated composer.json dependencies (thanks to [Graham Campbell](https://github.com/GrahamCampbell))
-- Added a branch alias (thanks to [Graham Campbell](https://github.com/GrahamCampbell))
-- Updated visibility of `ParseObject::_isDirty` to `protected` (thanks to [Fosco Marotto](https://github.com/gfosco))
-
-### 1.0.0
-- Initial release! (thanks to [Fosco Marotto](https://github.com/gfosco))
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index 5f6271c8..00000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
-
-## Our Standards
-
-Examples of behavior that contributes to creating a positive environment include:
-
-* Using welcoming and inclusive language
-* Being respectful of differing viewpoints and experiences
-* Gracefully accepting constructive criticism
-* Focusing on what is best for the community
-* Showing empathy towards other community members
-
-Examples of unacceptable behavior by participants include:
-
-* The use of sexualized language or imagery and unwelcome sexual attention or advances
-* Trolling, insulting/derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or electronic address, without explicit permission
-* Other conduct which could reasonably be considered inappropriate in a professional setting
-
-## Our Responsibilities
-
-Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
-
-Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
-
-## Scope
-
-This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at codeofconduct@parseplatform.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
-
-Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
-
-[homepage]: http://contributor-covenant.org
-[version]: http://contributor-covenant.org/version/1/4/
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 1d805043..00000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,102 +0,0 @@
-Contributing
-------------
-
-All contributions are under the repository [licence](LICENSE).
-
-When committing, keep all lines to less than 80 characters, and try to
-follow the existing style. Before creating a pull request, squash your commits
-into a single commit. Please provide ample explanation in the commit message.
-
-Installation
-------------
-
-Testing the Parse PHP SDK requires having a working Parse Server instance to run against.
-Additionally you'll need to add some cloud code to it.
-
-To get started:
-
-* [Get Composer], the PHP package manager.
-* Run `composer install` to download dependencies.
-
-From here you have to setup an instance of parse server.
-For your convenience we have included a testable version of parse server as a dev dependency.
-
-To setup the Test Parse Server:
-* [Get npm], you'll need this to install the server.
-* Run `npm install` from the project root to download the server and it's dependencies.
-* When you're ready to run tests use `npm start` from the project root to boot up the test server.
-
-The test server is setup with the appropriate configuration to run the php sdk test suite. Additionally it handles setting up mongodb for the server. If you have a mongodb instance already running, you can use `npm run server-only`.
-
-If you have specific needs and would like to alter your test server you can fork and modify the aforementioned test project.
-Alternately you can configure a compatible test server as follows:
-
-* [Setup a local Parse Server instance]
-* Add cloud-code.js in tests to your Parse Server configuration as a cloud code file
-* Ensure your App ID, REST API Key, and Master Key match those contained in tests/Parse/Helper.php
-* Add a mock push configuration, for example:
-```json
-{
- "android":
- {
- "senderId": "blank-sender-id",
- "apiKey": "not-a-real-api-key"
- }
-}
-```
-* Add a mock email adapter configuration, for example:
-```json
-{
- "module": "parse-server-simple-mailgun-adapter",
- "options": {
- "apiKey": "not-a-real-api-key",
- "domain": "example.com",
- "fromAddress": "example@example.com"
- }
-}
-```
-* Ensure the public url is correct. For a locally hosted instance this is probably ```http://localhost:1337/parse```
-
-
-You should now be able to execute the tests, from project root folder:
-
- ./vendor/bin/phpunit
-
-You may also run tests directly using phpunit as follows:
-
- npm test
-
-For debugging you can use the `print` function found in tests/Parse/Helper.php
-
- Helper::print()
-
-Make sure your code is linted with phpcs ([PSR-2 Coding Style]):
-
- npm run lint
-
-You can automatically fix lint errors with phpcbf:
-
- npm run lint:fix
-
-Finally verify that your new changes are acceptable to phpdoc:
-
- npm run document-check
-
-The test suite is setup for code coverage if you have [XDebug] installed and setup.
-Coverage is outputted as text and as html in the phpunit-test-results/ directory within the project root.
-
-If you do not have XDebug tests will still run, just without coverage.
-
-Please make sure that any new functionality (or issues) you are working on are covered by tests when possible.
-If you have XDebug setup and can view code coverage please ensure that you do your best to completely cover any new code you are adding.
-
-## Code of Conduct
-
-This project adheres to the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to honor this code.
-
-[Get Composer]: https://getcomposer.org/download/
-[Get npm]: https://www.npmjs.com/get-npm
-[XDebug]: https://xdebug.org/
-[Setup a local Parse Server instance]: https://github.com/parse-community/parse-server#user-content-locally
-[PSR-2 Coding Style]: http://www.php-fig.org/psr/psr-2/
-
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index f11b38ba..00000000
--- a/LICENSE
+++ /dev/null
@@ -1,34 +0,0 @@
-BSD License
-
-For Parse Server software
-
-Copyright (c) 2015-present, Parse, LLC. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- * Neither the name Parse nor the names of its contributors may be used to
- endorse or promote products derived from this software without specific
- prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
------
-
-As of April 5, 2017, Parse, LLC has transferred this code to the parse-community organization, and will no longer be contributing to or distributing this code.
diff --git a/README.md b/README.md
deleted file mode 100644
index 70aaf2fd..00000000
--- a/README.md
+++ /dev/null
@@ -1,797 +0,0 @@
-
-
----
-
-[](https://github.com/parse-community/parse-php-sdk/actions?query=workflow%3Aci+branch%3Amaster)
-[](https://snyk.io/test/github/parse-community/parse-php-sdk)
-[](http://codecov.io/github/parse-community/parse-php-sdk?branch=master)
-[](https://github.com/parse-community/parse-dashboard/releases)
-
-[](https://php.org/)
-
-[](https://packagist.org/packages/parse/php-sdk)
-
-[][open-collective-link]
-[][open-collective-link]
-[](https://community.parseplatform.org/c/client-sdks/javascript-sdk)
-[](https://twitter.com/intent/follow?screen_name=ParsePlatform)
-
----
-
-A library that gives you access to the powerful Parse Server backend from your PHP app. For more information on Parse and its features, see [the website](https://parseplatform.org), [the PHP guide](https://docs.parseplatform.org/php/guide/), [the Cloud Code guide](https://docs.parseplatform.org/cloudcode/guide/) or [API Reference](https://parseplatform.org/parse-php-sdk/).
-
----
-
-## Table of Contents
-
-- [Compatibility](#compatibility)
-- [Installation](#installation)
- - [Install with Composer](#install-with-composer)
- - [Install with Git](#install-with-git)
- - [Install with another method](#install-with-another-method)
-- [Setup](#setup)
- - [Initializing](#initializing)
- - [Server URL](#server-url)
- - [Server Health Check](#server-health-check)
- - [Http Clients](#http-clients)
- - [Alternate CA File](#alternate-ca-file)
-- [Getting Started](#getting-started)
- - [Use Declarations](#use-declarations)
- - [Parse Objects](#parse-objects)
- - [Users](#users)
- - [Session Id and Session Fixation](#session-id-and-session-fixation)
- - [Verification Emails](#verification-emails)
- - [ACLs](#acls)
- - [Queries](#queries)
- - [Aggregate](#aggregate)
- - [Distinct](#distinct)
- - [Relative Time](#relative-time)
- - [Cloud Functions](#cloud-functions)
- - [Cloud Jobs](#cloud-jobs)
- - [Config](#config)
- - [Analytics](#analytics)
- - [Files](#files)
- - [Push](#push)
- - [Push to Channels](#push-to-channels)
- - [Push with Query](#push-with-query)
- - [Push with Audience](#push-with-audience)
- - [Push Status](#push-status)
- - [Server Info](#server-info)
- - [Version](#version)
- - [Features](#features)
- - [Schema](#schema)
- - [Index](#index)
- - [Purge](#purge)
- - [Logs](#logs)
-- [Contributing / Testing](#contributing--testing)
-
-## Compatibility
-
-The Parse PHP SDK is continuously tested with the most recent releases of PHP to ensure compatibility. We follow the [PHP Long Term Support plan](https://www.php.net/supported-versions.php) and only test against versions that are officially supported and have not reached their end-of-life date.
-
-| Version | End-of-Life | Compatible |
-|---------|-------------|------------|
-| PHP 8.2 | Dec 2024 | ✅ Yes |
-| PHP 8.1 | Nov 2023 | ✅ Yes |
-
-## Installation
-There are various ways to install and use this sdk. We'll elaborate on a couple here.
-Note that the Parse PHP SDK requires PHP 5.4 or newer. It can also run on HHVM (recommended 3.0 or newer).
-
-### Install with Composer
-
-[Get Composer], the PHP package manager. Then create a composer.json file in
- your projects root folder, containing:
-
-```json
-{
- "require": {
- "parse/php-sdk" : "1.5.*"
- }
-}
-```
-
-Run "composer install" to download the SDK and set up the autoloader,
-and then require it from your PHP script:
-
-```php
-require 'vendor/autoload.php';
-```
-
-### Install with Git
-
-You can clone down this sdk using your favorite github client, or via the terminal.
-```bash
-git clone https://github.com/parse-community/parse-php-sdk.git
-```
-
-You can then include the ```autoload.php``` file in your code to automatically load the Parse SDK classes.
-
-```php
-require 'autoload.php';
-```
-
-### Install with another method
-
-If you downloaded this sdk using any other means you can treat it like you used the git method above.
-Once it's installed you need only require the `autoload.php` to have access to the sdk.
-
-## Setup
-
-Once you have access to the sdk you'll need to set it up in order to begin working with parse-server.
-
-### Initializing
-
-After including the required files from the SDK, you need to initialize the ParseClient using your Parse API keys:
-
-```php
-ParseClient::initialize( $app_id, $rest_key, $master_key );
-```
-
-If your server does not use or require a REST key you may initialize the ParseClient as follows, safely omitting the REST key:
-
-```php
-ParseClient::initialize( $app_id, null, $master_key );
-```
-
-### Server URL
-
-Directly after initializing the sdk you should set the server url.
-
-```php
-// Users of Parse Server will need to point ParseClient at their remote URL and Mount Point:
-ParseClient::setServerURL('https://my-parse-server.com:port','parse');
-```
-
-Notice Parse server's default port is `1337` and the second parameter `parse` is the route prefix of your parse server.
-
-For example if your parse server's url is `http://example.com:1337/parse` then you can set the server url using the following snippet
-
-```php
-ParseClient::setServerURL('https://example.com:1337','parse');
-```
-
-### Server Health Check
-
-To verify that the server url and mount path you've provided are correct you can run a health check on your server.
-```php
-$health = ParseClient::getServerHealth();
-if($health['status'] === 200) {
- // everything looks good!
-}
-```
-If you wanted to analyze it further the health response may look something like this.
-```json
-{
- "status" : 200,
- "response" : {
- "status" : "ok"
- }
-}
-```
-The 'status' being the http response code, and the 'response' containing what the server replies with.
-Any additional details in the reply can be found under 'response', and you can use them to check and determine the availability of parse-server before you make requests.
-
-Note that it is _not_ guaranteed that 'response' will be a parsable json array. If the response cannot be decoded it will be returned as a string instead.
-
-A couple examples of bad health responses could include an incorrect mount path, port or domain.
-```json
-// ParseClient::setServerURL('http://localhost:1337', 'not-good');
-{
- "status": 404,
- "response": "...Cannot GET \/not-good\/health..."
-}
-
-// ParseClient::setServerURL('http://__uh__oh__.com', 'parse');
-{
- "status": 0,
- "error": 6,
- "error_message": "Couldn't resolve host '__uh__oh__.com'"
-}
-```
-Keep in mind `error` & `error_message` may change depending on whether you are using the **curl** (may change across versions of curl) or **stream** client.
-
-### Http Clients
-
-This SDK has the ability to change the underlying http client at your convenience.
-The default is to use the curl http client if none is set, there is also a stream http client that can be used as well.
-
-Setting the http client can be done as follows:
-```php
-// set curl http client (default if none set)
-ParseClient::setHttpClient(new ParseCurlHttpClient());
-
-// set stream http client
-// ** requires 'allow_url_fopen' to be enabled in php.ini **
-ParseClient::setHttpClient(new ParseStreamHttpClient());
-```
-
-If you have a need for an additional http client you can request one by opening an issue or by submitting a PR.
-
-If you wish to build one yourself make sure your http client implements ```ParseHttpable``` for it be compatible with the SDK. Once you have a working http client that enhances the SDK feel free to submit it in a PR so we can look into adding it in.
-
-### Alternate CA File
-
-It is possible that your local setup may not be able to verify with peers over SSL/TLS. This may especially be the case if you do not have control over your local installation, such as for shared hosting.
-
-If this is the case you may need to specify a Certificate Authority bundle. You can download such a bundle from http://curl.haxx.se/ca/cacert.pem to use for this purpose. This one happens to be a Mozilla CA certificate store, you don't necessarily have to use this one but it's recommended.
-
-Once you have your bundle you can set it as follows:
-```php
-// ** Use an Absolute path for your file! **
-// holds one or more certificates to verify the peer with
-ParseClient::setCAFile(__DIR__ . '/certs/cacert.pem');
-```
-
-## Getting Started
-
-We highly recommend you read through the [guide](http://docs.parseplatform.org/php/guide/) first. This will walk you through the basics of working with this sdk, as well as provide insight into how to best develop your project.
-
-If want to know more about what makes the php sdk tick you can read our [API Reference](http://parseplatform.org/parse-php-sdk/namespaces/parse.html) and flip through the code on [github](https://github.com/parse-community/parse-php-sdk/).
-
-Check out the [Parse PHP Guide] for the full documentation.
-
-### Use Declarations
-
-Add the "use" declarations where you'll be using the classes. For all of the
-sample code in this file:
-
-```php
-use Parse\ParseObject;
-use Parse\ParseQuery;
-use Parse\ParseACL;
-use Parse\ParsePush;
-use Parse\ParseUser;
-use Parse\ParseInstallation;
-use Parse\ParseException;
-use Parse\ParseAnalytics;
-use Parse\ParseFile;
-use Parse\ParseCloud;
-use Parse\ParseClient;
-use Parse\ParsePushStatus;
-use Parse\ParseServerInfo;
-use Parse\ParseLogs;
-use Parse\ParseAudience;
-```
-
-### Parse Objects
-
-Parse Objects hold your data, can be saved, queried for, serialized and more!
-Objects are at the core of this sdk, they allow you to persist your data from php without having to worry about any databasing code.
-
-```php
-$object = ParseObject::create("TestObject");
-$objectId = $object->getObjectId();
-$php = $object->get("elephant");
-
-// Set values:
-$object->set("elephant", "php");
-$object->set("today", new DateTime());
-$object->setArray("mylist", [1, 2, 3]);
-$object->setAssociativeArray(
- "languageTypes", array("php" => "awesome", "ruby" => "wtf")
-);
-
-// Save normally:
-$object->save();
-
-// Or pass true to use the master key to override ACLs when saving:
-$object->save(true);
-
-// encode an object for later use
-$encoded = $object->encode();
-
-// decode an object
-$decodedObject = ParseObject::decode($encoded);
-```
-
-### Users
-
-Users are a special kind of object.
-This class allows individuals to access your applications with their unique information and allows you to identify them distinctly.
-Users may also be linked with 3rd party accounts such as facebook, twitter, etc.
-
-```php
-// Signup
-$user = new ParseUser();
-$user->setUsername("foo");
-$user->setPassword("Q2w#4!o)df");
-try {
- $user->signUp();
-} catch (ParseException $ex) {
- // error in $ex->getMessage();
-}
-
-// Login
-try {
- $user = ParseUser::logIn("foo", "Q2w#4!o)df");
-} catch(ParseException $ex) {
- // error in $ex->getMessage();
-}
-
-// Current user
-$user = ParseUser::getCurrentUser();
-```
-#### Session Id and Session Fixation
-In an attempt to avoid [session fixation exploits](https://www.owasp.org/index.php/Session_fixation), the PHP SDK will call [`session_regenerate_id()`](http://php.net/manual/en/function.session-regenerate-id.php) when a session's permissions are elevated (since 1.5.0). In practice this means that `session_regenerate_id()` will be called when a session goes from no user to anonymous user or from no user / anonymous user to registered user.
-
-Changing the PHP session id should have no impact on the contents of the session and state should be maintained for a user that was anonymous and becomes registered.
-
-#### Verification Emails
-
-If you are using email verification in your parse server setup you can request to send verification emails by hand.
-```php
-ParseUser::requestVerificationEmail('email@example.com');
-```
-Note that this will only send if the account for the email requested has not already been verified.
-
-### ACLs
-
-Access Control Lists (ACLs) allow you to granularly control access to individual Parse Objects.
-ACLs allow you to configure access to the general public, roles, and individual users themselves.
-
-```php
-// Access only by the ParseUser in $user
-$userACL = ParseACL::createACLWithUser($user);
-
-// Access only by master key
-$restrictedACL = new ParseACL();
-
-// Set individual access rights
-$acl = new ParseACL();
-$acl->setPublicReadAccess(true);
-$acl->setPublicWriteAccess(false);
-$acl->setUserWriteAccess($user, true);
-$acl->setRoleWriteAccessWithName("PHPFans", true);
-```
-
-### Queries
-
-Queries allow you to recall objects that you've saved to parse-server.
-Query methods and parameters allow allow a varying degree of querying for objects, from all objects of a class to objects created within a particular date range and more.
-
-```php
-$query = new ParseQuery("TestObject");
-
-// Get a specific object:
-$object = $query->get("anObjectId");
-
-$query->limit(10); // default 100, max 1000
-
-// All results, normally:
-$results = $query->find();
-
-// Or pass true to use the master key to override ACLs when querying:
-$results = $query->find(true);
-
-// Just the first result:
-$first = $query->first();
-
-// Process ALL (without limit) results with "each".
-// Will throw if sort, skip, or limit is used.
-$query->each(function($obj) {
- echo $obj->getObjectId();
-});
-
-```
-#### Aggregate
-
-Queries can be made using aggregates, allowing you to retrieve objects over a set of input values.
-Keep in mind that `_id` does not exist in parse-server. Please replace with `objectId`. MasterKey is Required
-
-For a list of available operators please refer to Mongo Aggregate Documentation.
-
- Mongo 3.2 Aggregate Operators
-
-```php
-// group pipeline is similar to distinct, can apply $sum, $avg, $max, $min
-// accumulate sum and store in total field
-$pipeline = [
- 'group' => [
- 'objectId' => null,
- 'total' => [ '$sum' => '$score']
- ]
-];
-$results = $query->aggregate($pipeline);
-
-// project pipeline is similar to keys, add or remove existing fields
-// includes name key
-$pipeline = [
- 'project' => [
- 'name' => 1
- ]
-];
-$results = $query->aggregate($pipeline);
-
-// match pipeline is similar to equalTo
-// filter out objects with score greater than 15
- $pipeline = [
- 'match' => [
- 'score' => [ '$gt' => 15 ]
- ]
-];
-$results = $query->aggregate($pipeline);
-```
-
-#### Distinct
-
-Queries can be made using distinct, allowing you find unique values for a specified field.
-Keep in mind that MasterKey is required.
-```php
-// finds score that are unique
-$results = $query->distinct('score');
-
-// can be used with equalTo
-$query = new ParseQuery('TestObject');
-$query->equalTo('name', 'foo');
-$results = $query->distinct('score');
-```
-
-#### Relative Time
-
-Queries can be made using relative time, allowing you to retrieve objects over a varying ranges of relative dates.
-Keep in mind that all relative queries are performed using the server's time and timezone.
-```php
-// greater than 2 weeks ago
-$query->greaterThanRelativeTime('createdAt', '2 weeks ago');
-
-// less than 1 day in the future
-$query->lessThanRelativeTime('updatedAt', 'in 1 day');
-
-// can make queries to very specific points in time
-$query->greaterThanOrEqualToRelativeTime('createdAt', '1 year 2 weeks 30 days 2 hours 5 minutes 10 seconds ago');
-
-// can make queries based on right now
-// gets everything updated up to this point in time
-$query->lessThanOrEqualToRelativeTime('updatedAt', 'now');
-
-// shorthand keywords work as well
-$query->greaterThanRelativeTime('date', '1 yr 2 wks 30 d 2 hrs 5 mins 10 secs ago');
-```
-
-### Cloud Functions
-
-Directly call server-side cloud functions and get their results.
-
-```php
-$results = ParseCloud::run("aCloudFunction", array("from" => "php"));
-```
-
-### Cloud Jobs
-
-Like cloud functions, cloud jobs allow you to run code server-side but in an asynchronous fashion.
-Instead of waiting for execution to complete you are immediately returned an id for tracking the job's progress.
-You can use this id to see the current information on a job and whether it has completed.
-```php
-// start job
-$jobStatusId = ParseCloud::startJob('MyCloudJob', array("startedBy" => "me!"));
-
-// get job status, a ParseObject!
-$jobStatus = ParseCloud::getJobStatus($jobStatusId);
-$status = $jobStatus->get('status'); // failed / succeeded when done
-
-```
-
-### Config
-
-**ParseConfig** allows you to access the global **Config** object for your parse server setup.
-You can get, set and update simple values much like you would on an instance of **ParseObject**. Through this all your SDKs and applications can have access to global settings, options, and more.
-What you choose to put in your config is purely up to you however.
-```php
-$config = new ParseConfig();
-
-// check a config value of yours
-$allowed = $config->get('feature_allowed');
-
-// add a simple config value
-$config->set('feature_allowed', true);
-
-// save this global config
-$config->save();
-```
-
-
-### Analytics
-
-A specialized Parse Object built purposely to make analytics easy.
-
-```php
-ParseAnalytics::track("logoReaction", array(
- "saw" => "elephant",
- "said" => "cute"
-));
-```
-
-### Files
-
-Persist files to parse-server and retrieve them at your convenience. Depending on how your server is setup there are a variety of storage options including mongodb, Amazon S3 and Google Cloud Storage. You can read more about that [here](https://github.com/parse-community/parse-server/#configuring-file-adapters).
-
-```php
-// Get from a Parse Object:
-$file = $aParseObject->get("aFileColumn");
-$name = $file->getName();
-$url = $file->getURL();
-// Download the contents:
-$contents = $file->getData();
-
-// Upload from a local file:
-$file = ParseFile::createFromFile(
- "/tmp/foo.bar", "Parse.txt", "text/plain"
-);
-
-// Upload from variable contents (string, binary)
-$file = ParseFile::createFromData($contents, "Parse.txt", "text/plain");
-```
-
-### Push
-
-Push notifications can be constructed and sent using this sdk. You can send pushes to predefined channels of devices, or send to a customized set of devices using the power of `ParseQuery`.
-
-In order to use Push you must first configure a [working push configuration](http://docs.parseplatform.org/parse-server/guide/#push-notifications) in your parse server instance.
-
-#### Push to Channels
-
-You can send push notifications to any channels that you've created for your users.
-
-```php
-$data = array("alert" => "Hi!");
-
-// Parse Server has a few requirements:
-// - The master key is required for sending pushes, pass true as the second parameter
-// - You must set your recipients by using 'channels' or 'where', but you must not pass both
-
-
-// Push to Channels
-ParsePush::send(array(
- "channels" => ["PHPFans"],
- "data" => $data
-), true);
-```
-
-#### Push with Query
-
-You can also push to devices using queries targeting the `ParseInstallation` class.
-
-```php
-// Push to Query
-$query = ParseInstallation::query();
-$query->equalTo("design", "rad");
-
-ParsePush::send(array(
- "where" => $query,
- "data" => $data
-), true);
-```
-
-#### Push with Audience
-
-If you want to keep track of your sends when using queries you can use the `ParseAudience` class.
-You can create and configure your Audience objects with a name and query.
-When you indicate it's being used in a push the `lastUsed` and `timesUsed` values are updated for you.
-```php
-$iosQuery = ParseInstallation::getQuery();
-$iosQuery->equalTo("deviceType", "ios");
-
-// create & save your audience
-$audience = ParseAudience::createAudience(
- 'MyiOSAudience',
- $iosQuery
-);
-$audience->save(true);
-
-// send a push using the query in this audience and it's id
-// The 'audience_id' is what allows parse to update 'lastUsed' and 'timesUsed'
-// You could use any audience_id with any query and it will still update that audience
-ParsePush::send([
- 'data' => [
- 'alert' => 'hello ios users!'
- ],
- 'where' => $audience->getQuery(),
- 'audience_id' => $audience->getObjectId()
-], true);
-
-// fetch changes to this audience
-$audience->fetch(true);
-
-// get last & times used for tracking
-$timesUsed = $audience->getTimesUsed();
-$lastUsed = $audience->getLastUsed();
-```
-Audiences provide you with a convenient way to group your queries and keep track of how often and when you send to them.
-
-#### Push Status
-
-If your server supports it you can extract and check the current status of your pushes.
-This allows you to monitor the success of your pushes in real time.
-
-```php
-// Get Push Status
-$response = ParsePush::send(array(
- "channels" => ["StatusFans"],
- "data" => $data
-), true);
-
-if(ParsePush::hasStatus($response)) {
-
- // Retrieve PushStatus object
- $pushStatus = ParsePush::getStatus($response);
-
- // check push status
- if($pushStatus->isPending()) {
- // handle a pending push request
-
- } else if($pushStatus->isRunning()) {
- // handle a running push request
-
- } else if($pushStatus->hasSucceeded()) {
- // handle a successful push request
-
- } else if($pushStatus->hasFailed()) {
- // handle a failed request
-
- }
-
- // ...or get the push status string to check yourself
- $status = $pushStatus->getPushStatus();
-
- // get # pushes sent
- $sent = $pushStatus->getPushesSent();
-
- // get # pushes failed
- $failed = $pushStatus->getPushesFailed();
-
-}
-```
-
-### Server Info
-
-Any server version **2.1.4** or later supports access to detailed information about itself and it's capabilities.
-You can leverage `ParseServerInfo` to check on the features and version of your server.
-
-#### Version
-Get the current version of the server you are connected to.
-
-```php
-// get the current version of the server you are connected to (2.6.5, 2.5.4, etc.)
-$version = ParseServerInfo::getVersion();
-```
-
-#### Features
-Check which features your server has and how they are configured.
-
-```php
-// get the current version of the server you are connected to (2.6.5, 2.5.4, etc.)
-$version = ParseServerInfo::getVersion();
-
-// get various features
-$globalConfigFeatures = ParseServerInfo::getGlobalConfigFeatures();
-/**
- * Returns json of the related features
- * {
- * "create" : true,
- * "read" : true,
- * "update" : true,
- * "delete" : true
- * }
- */
-
- // you can always get all feature data
- $data = ParseServerInfo::getFeatures();
-```
-
- You can get details on the following features as well:
-
- ```php
- ParseServerInfo::getHooksFeatures();
- ParseServerInfo::getCloudCodeFeatures();
- ParseServerInfo::getLogsFeatures();
- ParseServerInfo::getPushFeatures();
- ParseServerInfo::getSchemasFeatures();
-
- // additional features can be obtained manually using 'get'
- $feature = ParseServerInfo::get('new-feature');
-
- ```
-
-### Schema
-Direct manipulation of the classes that are on your server is possible through `ParseSchema`.
-Although fields and classes can be automatically generated (the latter assuming client class creation is enabled) `ParseSchema` gives you explicit control over these classes and their fields.
-```php
-// create an instance to manage your class
-$mySchema = new ParseSchema("MyClass");
-
-// gets the current schema data as an associative array, for inspection
-$data = $mySchema->get();
-
-// add any # of fields, without having to create any objects
-$mySchema->addString('string_field');
-$mySchema->addNumber('num_field');
-$mySchema->addBoolean('bool_field');
-$mySchema->addDate('date_field');
-$mySchema->addFile('file_field');
-$mySchema->addGeoPoint('geopoint_field');
-$mySchema->addPolygon('polygon_field');
-$mySchema->addArray('array_field');
-$mySchema->addObject('obj_field');
-$mySchema->addPointer('pointer_field');
-
-// you can even setup pointer/relation fields this way
-$mySchema->addPointer('pointer_field', 'TargetClass');
-$mySchema->addRelation('relation_field', 'TargetClass');
-
-// new types can be added as they are available
-$mySchema->addField('new_field', 'ANewDataType');
-
-// save/update this schema to persist your field changes
-$mySchema->save();
-// or
-$mySchema->update();
-
-```
-Assuming you want to remove a field you can simply call `deleteField` and `save/update` to clear it out.
-```php
-$mySchema->deleteField('string_field');
-$mySchema->save():
-// or for an existing schema...
-$mySchema->update():
-```
-A schema can be removed via `delete`, but it must be empty first.
-```php
-$mySchema->delete();
-```
-#### Index
-Indexes support efficient execution of queries from the database. MasterKey is required.
-```php
-// To add an index, the field must exist before you create an index
-$schema->addString('field');
-$index = [ 'field' => 1 ];
-$schema->addIndex('index_name', $index);
-$schema->save();
-
-// Delete an index
-$schema->deleteIndex('index_name');
-$schema->save();
-
-// If indexes exist, you can retrieve them
-$result = $schema->get();
-$indexes = $result['indexes'];
- ```
-
-#### Purge
-All objects can be purged from a schema (class) via `purge`. But be careful! This can be considered an irreversible action.
-Only do this if you _really_ need to delete all objects from a class, such as when you need to delete the class (as in the code example above).
-```php
-// delete all objects in the schema
-$mySchema->purge();
-```
-
-### Logs
-`ParseLogs` allows info and error logs to be retrieved from the server as JSON.
-Using the same approach as that which is utilized in the [dashboard](https://github.com/parse-community/parse-dashboard) you can view your logs with specific ranges in time, type and order.
-Note that this requires the correct masterKey to be set during your initialization for access.
-```php
-// get last 100 info logs, sorted in descending order
-$logs = ParseLogs::getInfoLogs();
-
-// get last 100 info logs, sorted in descending order
-$logs = ParseLogs::getErrorLogs();
-
-// logs can be retrieved with further specificity
-// get 10 logs from a date up to a date in ascending order
-$logs = ParseLogs::getInfoLogs(10, $fromDate, $untilDate, 'asc');
-
-// above can be done for 'getErrorLogs' as well
-```
-
-
-## Contributing / Testing
-
-See [CONTRIBUTING](CONTRIBUTING.md) for information on testing and contributing to the Parse PHP SDK.
-
------
-
-As of April 5, 2017, Parse, LLC has transferred this code to the parse-community organization, and will no longer be contributing to or distributing this code.
-
-[Get Composer]: https://getcomposer.org/download/
-[Parse PHP Guide]: https://docs.parseplatform.org/php/guide/
-[open-collective-link]: https://opencollective.com/parse-server
diff --git a/autoload.php b/autoload.php
deleted file mode 100755
index 798560ab..00000000
--- a/autoload.php
+++ /dev/null
@@ -1,44 +0,0 @@
-
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseCurl
+
+
+
+
+
+
+
+
+
+ Class ParseCurl - Wrapper for abstracted curl usage
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $curl
+
+ : resource
+
+Curl handle
+
+
+ close()
+
+ : mixed
+
+Closed our curl handle and disposes of it
+
+
+ exec()
+
+ : mixed
+
+Executes this curl request
+
+
+ getError()
+
+ : string
+
+Gets the curl error message
+
+
+ getErrorCode()
+
+ : int
+
+Gets the curl error code
+
+
+ getInfo()
+
+ : mixed
+
+Gets info for this curl handle
+
+
+ init()
+
+ : mixed
+
+Sets up a new curl instance internally if needed
+
+
+ setOption()
+
+ : mixed
+
+Sets a curl option
+
+
+ setOptionsArray()
+
+ : mixed
+
+Sets multiple curl options
+
+
+
+
+
+
+
+
+
+
+
+
+ $curl
+
+
+
+
+
+
+ Curl handle
+
+
+ private
+ resource
+ $curl
+
+
+
+
+
+
+
+
+
+
+
+
+
+ close()
+
+
+
+
+ Closed our curl handle and disposes of it
+
+
+ public
+ close ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ exec()
+
+
+
+
+ Executes this curl request
+
+
+ public
+ exec ( ) : mixed
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getError()
+
+
+
+
+ Gets the curl error message
+
+
+ public
+ getError ( ) : string
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getErrorCode()
+
+
+
+
+ Gets the curl error code
+
+
+ public
+ getErrorCode ( ) : int
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ getInfo()
+
+
+
+
+ Gets info for this curl handle
+
+
+ public
+ getInfo ( int $info ) : mixed
+
+
+
+ Parameters
+
+
+ $info
+ : int
+
+
+ Constant for info to get
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ init()
+
+
+
+
+ Sets up a new curl instance internally if needed
+
+
+ public
+ init ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setOption()
+
+
+
+
+ Sets a curl option
+
+
+ public
+ setOption ( int $option , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $option
+ : int
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to set for this option
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setOptionsArray()
+
+
+
+
+ Sets multiple curl options
+
+
+ public
+ setOptionsArray ( array<string|int, mixed> $options ) : mixed
+
+
+
+ Parameters
+
+
+ $options
+ : array<string|int, mixed>
+
+
+ Array of options to set
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-HttpClients-ParseCurlHttpClient.html b/classes/Parse-HttpClients-ParseCurlHttpClient.html
new file mode 100644
index 00000000..a0379e34
--- /dev/null
+++ b/classes/Parse-HttpClients-ParseCurlHttpClient.html
@@ -0,0 +1,1461 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseCurlHttpClient
+
+
+
+
+
+ implements
+ ParseHttpable
+
+
+
+
+
+ Class ParseCurlHttpClient - Curl http client
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ ParseHttpable
+ Class ParseHttpable - Interface for an HTTPable client
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ CONNECTION_ESTABLISHED
+
+ = "HTTP/1.0 200 Connection established
+
+"
+
+
+
+
+ CURL_PROXY_QUIRK_VER
+
+ = 0x71e00
+
+
+
+
+ $curlErrorCode
+
+ : int
+
+cURL error code
+
+
+ $curlErrorMessage
+
+ : string
+
+cURL error message
+
+
+ $headers
+
+ : array<string|int, mixed>
+
+Request Headers
+
+
+ $parseCurl
+
+ : ParseCurl
+
+Curl handle
+
+
+ $response
+
+ : string
+
+Response from our request
+
+
+ $responseCode
+
+ : int
+
+Response code
+
+
+ $responseContentType
+
+ : string|null
+
+Content type of our response
+
+
+ $responseHeaders
+
+ : array<string|int, mixed>
+
+Response headers
+
+
+ __construct()
+
+ : mixed
+
+ParseCurlHttpClient constructor.
+
+
+ addRequestHeader()
+
+ : mixed
+
+Adds a header to this request
+
+
+ getErrorCode()
+
+ : int
+
+Gets the error code
+
+
+ getErrorMessage()
+
+ : string
+
+Gets the error message
+
+
+ getResponseContentType()
+
+ : null|string
+
+Returns the content type of the response
+
+
+ getResponseHeaders()
+
+ : array<string|int, mixed>
+
+Gets headers in the response
+
+
+ getResponseStatusCode()
+
+ : int
+
+Returns the status code of the response
+
+
+ send()
+
+ : string
+
+Sends an HTTP request
+
+
+ setCAFile()
+
+ : mixed
+
+Sets the CA file to validate requests with
+
+
+ setConnectionTimeout()
+
+ : mixed
+
+Sets the connection timeout
+
+
+ setHttpOptions()
+
+ : mixed
+
+Sets multiple curl options
+https://www.php.net/manual/en/function.curl-setopt.php
+
+
+ setTimeout()
+
+ : mixed
+
+Sets the request timeout
+
+
+ setup()
+
+ : void
+
+Sets up our cURL request in advance
+
+
+ buildRequestHeaders()
+
+ : array<string|int, mixed>
+
+Builds and returns the coalesced request headers
+
+
+ getHeadersArray()
+
+ : array<string|int, mixed>
+
+Convert and return response headers as an array
+
+
+ getHeaderSize()
+
+ : int
+
+Return proper header size
+
+
+ needsCurlProxyFix()
+
+ : bool
+
+Detect versions of Curl which report incorrect header lengths when
+using Proxies.
+
+
+
+
+
+
+
+
+
+
+ CONNECTION_ESTABLISHED
+
+
+
+
+
+
+
+ public
+ mixed
+ CONNECTION_ESTABLISHED
+ = "HTTP/1.0 200 Connection established
+
+"
+
+
+
+
+
+
+
+
+
+ const
+
+
+
+ "Connection Established" header text
+
+
+
+
+
+
+
+
+ CURL_PROXY_QUIRK_VER
+
+
+
+
+
+
+
+ public
+ mixed
+ CURL_PROXY_QUIRK_VER
+ = 0x71e00
+
+
+
+
+
+
+
+
+
+ const
+
+
+
+ Curl Version which is unaffected by the proxy header length error.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $curlErrorCode
+
+
+
+
+
+
+ cURL error code
+
+
+ private
+ int
+ $curlErrorCode
+
+
+
+
+
+
+
+
+
+ $curlErrorMessage
+
+
+
+
+
+
+ cURL error message
+
+
+ private
+ string
+ $curlErrorMessage
+
+
+
+
+
+
+
+
+
+
+
+ Request Headers
+
+
+ private
+ array<string|int, mixed>
+ $headers
+ = array()
+
+
+
+
+
+
+
+
+ $parseCurl
+
+
+
+
+
+
+ Curl handle
+
+
+ private
+ ParseCurl
+ $parseCurl
+
+
+
+
+
+
+
+
+
+ $response
+
+
+
+
+
+
+ Response from our request
+
+
+ private
+ string
+ $response
+
+
+
+
+
+
+
+
+
+ $responseCode
+
+
+
+
+
+
+ Response code
+
+
+ private
+ int
+ $responseCode
+ = 0
+
+
+
+
+
+
+
+
+ $responseContentType
+
+
+
+
+
+
+ Content type of our response
+
+
+ private
+ string|null
+ $responseContentType
+
+
+
+
+
+
+
+
+
+
+
+ Response headers
+
+
+ private
+ array<string|int, mixed>
+ $responseHeaders
+ = array()
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ ParseCurlHttpClient constructor.
+
+
+ public
+ __construct ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Adds a header to this request
+
+
+ public
+ addRequestHeader ( string $key , string $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getErrorCode()
+
+
+
+
+ Gets the error code
+
+
+ public
+ getErrorCode ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ getErrorMessage()
+
+
+
+
+ Gets the error message
+
+
+ public
+ getErrorMessage ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getResponseContentType()
+
+
+
+
+ Returns the content type of the response
+
+
+ public
+ getResponseContentType ( ) : null|string
+
+
+
+
+
+
+ Return values
+ null|string
+ —
+
+
+
+
+
+
+
+
+ Gets headers in the response
+
+
+ public
+ getResponseHeaders ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getResponseStatusCode()
+
+
+
+
+ Returns the status code of the response
+
+
+ public
+ getResponseStatusCode ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ send()
+
+
+
+
+ Sends an HTTP request
+
+
+ public
+ send ( string $url [ , string $method = 'GET' ] [ , array<string|int, mixed> $data = array() ] ) : string
+
+
+
+ Parameters
+
+
+ $url
+ : string
+
+
+ Url to send this request to
+
+
+
+
+ $method
+ : string
+ = 'GET'
+
+ Method to send this request via
+
+
+
+
+ $data
+ : array<string|int, mixed>
+ = array()
+
+ Data to send in this request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ setCAFile()
+
+
+
+
+ Sets the CA file to validate requests with
+
+
+ public
+ setCAFile ( string $caFile ) : mixed
+
+
+
+ Parameters
+
+
+ $caFile
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setConnectionTimeout()
+
+
+
+
+ Sets the connection timeout
+
+
+ public
+ setConnectionTimeout ( int $timeout ) : mixed
+
+
+
+ Parameters
+
+
+ $timeout
+ : int
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setHttpOptions()
+
+
+
+
+ Sets multiple curl options
+https://www.php.net/manual/en/function.curl-setopt.php
+
+
+ public
+ setHttpOptions ( array<string|int, mixed> $options ) : mixed
+
+
+
+ Parameters
+
+
+ $options
+ : array<string|int, mixed>
+
+
+ Array of options to set
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setTimeout()
+
+
+
+
+ Sets the request timeout
+
+
+ public
+ setTimeout ( int $timeout ) : mixed
+
+
+
+ Parameters
+
+
+ $timeout
+ : int
+
+
+ Sets the timeout for the request
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setup()
+
+
+
+
+ Sets up our cURL request in advance
+
+
+ public
+ setup ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+
+
+ Builds and returns the coalesced request headers
+
+
+ private
+ buildRequestHeaders ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+ Convert and return response headers as an array
+
+
+ private
+ getHeadersArray ( string $headerContent ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $headerContent
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+ Return proper header size
+
+
+ private
+ getHeaderSize ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ needsCurlProxyFix()
+
+
+
+
+ Detect versions of Curl which report incorrect header lengths when
+using Proxies.
+
+
+ private
+ needsCurlProxyFix ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-HttpClients-ParseHttpable.html b/classes/Parse-HttpClients-ParseHttpable.html
new file mode 100644
index 00000000..a2680571
--- /dev/null
+++ b/classes/Parse-HttpClients-ParseHttpable.html
@@ -0,0 +1,766 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseHttpable
+
+
+
+
+
+ Class ParseHttpable - Interface for an HTTPable client
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ addRequestHeader()
+
+ : mixed
+
+Adds a header to this request
+
+
+ getErrorCode()
+
+ : int
+
+Gets the error code
+
+
+ getErrorMessage()
+
+ : string
+
+Gets the error message
+
+
+ getResponseContentType()
+
+ : null|string
+
+Returns the content type of the response
+
+
+ getResponseHeaders()
+
+ : array<string|int, mixed>
+
+Gets headers in the response
+
+
+ getResponseStatusCode()
+
+ : int
+
+Returns the status code of the response
+
+
+ send()
+
+ : string
+
+Sends an HTTP request
+
+
+ setCAFile()
+
+ : mixed
+
+Sets the CA file to validate requests with
+
+
+ setConnectionTimeout()
+
+ : mixed
+
+Sets the connection timeout
+
+
+ setHttpOptions()
+
+ : mixed
+
+Sets http options to pass to the http client
+
+
+ setTimeout()
+
+ : mixed
+
+Sets the request timeout
+
+
+ setup()
+
+ : void
+
+Sets up our client before we make a request
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds a header to this request
+
+
+ public
+ addRequestHeader ( string $key , string $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getErrorCode()
+
+
+
+
+ Gets the error code
+
+
+ public
+ getErrorCode ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ getErrorMessage()
+
+
+
+
+ Gets the error message
+
+
+ public
+ getErrorMessage ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getResponseContentType()
+
+
+
+
+ Returns the content type of the response
+
+
+ public
+ getResponseContentType ( ) : null|string
+
+
+
+
+
+
+ Return values
+ null|string
+ —
+
+
+
+
+
+
+
+
+ Gets headers in the response
+
+
+ public
+ getResponseHeaders ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getResponseStatusCode()
+
+
+
+
+ Returns the status code of the response
+
+
+ public
+ getResponseStatusCode ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ send()
+
+
+
+
+ Sends an HTTP request
+
+
+ public
+ send ( string $url [ , string $method = 'GET' ] [ , array<string|int, mixed> $data = array() ] ) : string
+
+
+
+ Parameters
+
+
+ $url
+ : string
+
+
+ Url to send this request to
+
+
+
+
+ $method
+ : string
+ = 'GET'
+
+ Method to send this request via
+
+
+
+
+ $data
+ : array<string|int, mixed>
+ = array()
+
+ Data to send in this request
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ setCAFile()
+
+
+
+
+ Sets the CA file to validate requests with
+
+
+ public
+ setCAFile ( string $caFile ) : mixed
+
+
+
+ Parameters
+
+
+ $caFile
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setConnectionTimeout()
+
+
+
+
+ Sets the connection timeout
+
+
+ public
+ setConnectionTimeout ( int $timeout ) : mixed
+
+
+
+ Parameters
+
+
+ $timeout
+ : int
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setHttpOptions()
+
+
+
+
+ Sets http options to pass to the http client
+
+
+ public
+ setHttpOptions ( string $httpOptions ) : mixed
+
+
+
+ Parameters
+
+
+ $httpOptions
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setTimeout()
+
+
+
+
+ Sets the request timeout
+
+
+ public
+ setTimeout ( int $timeout ) : mixed
+
+
+
+ Parameters
+
+
+ $timeout
+ : int
+
+
+ Sets the timeout for the request
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setup()
+
+
+
+
+ Sets up our client before we make a request
+
+
+ public
+ setup ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-HttpClients-ParseStream.html b/classes/Parse-HttpClients-ParseStream.html
new file mode 100644
index 00000000..26d7a1c7
--- /dev/null
+++ b/classes/Parse-HttpClients-ParseStream.html
@@ -0,0 +1,637 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseStream
+
+
+
+
+
+
+
+
+
+ Class ParseStream - Wrapper for abstracted stream usage
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $errorCode
+
+ : int
+
+Error code
+
+
+ $errorMessage
+
+ : string
+
+Error message
+
+
+ $responseHeaders
+
+ : array<string|int, mixed>|null
+
+Response headers
+
+
+ $stream
+
+ : resource
+
+Stream context
+
+
+ createContext()
+
+ : mixed
+
+Create a stream context
+
+
+ get()
+
+ : string
+
+Gets the contents from the given url
+
+
+ getErrorCode()
+
+ : int
+
+Get the current error code
+
+
+ getErrorMessage()
+
+ : string
+
+Gets the current error message
+
+
+ getFileContents()
+
+ : mixed
+
+Wrapper for file_get_contents, used for testing
+
+
+ getResponseHeaders()
+
+ : array<string|int, mixed>
+
+Returns the response headers for the last request
+
+
+
+
+
+
+
+
+
+
+
+
+ $errorCode
+
+
+
+
+
+
+ Error code
+
+
+ private
+ int
+ $errorCode
+
+
+
+
+
+
+
+
+
+ $errorMessage
+
+
+
+
+
+
+ Error message
+
+
+ private
+ string
+ $errorMessage
+
+
+
+
+
+
+
+
+
+
+
+ Response headers
+
+
+ private
+ array<string|int, mixed>|null
+ $responseHeaders
+
+
+
+
+
+
+
+
+
+ $stream
+
+
+
+
+
+
+ Stream context
+
+
+ private
+ resource
+ $stream
+
+
+
+
+
+
+
+
+
+
+
+
+
+ createContext()
+
+
+
+
+ Create a stream context
+
+
+ public
+ createContext ( array<string|int, mixed> $options ) : mixed
+
+
+
+ Parameters
+
+
+ $options
+ : array<string|int, mixed>
+
+
+ Options to pass to our context
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ get()
+
+
+
+
+ Gets the contents from the given url
+
+
+ public
+ get ( string $url ) : string
+
+
+
+ Parameters
+
+
+ $url
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getErrorCode()
+
+
+
+
+ Get the current error code
+
+
+ public
+ getErrorCode ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ getErrorMessage()
+
+
+
+
+ Gets the current error message
+
+
+ public
+ getErrorMessage ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getFileContents()
+
+
+
+
+ Wrapper for file_get_contents, used for testing
+
+
+ public
+ getFileContents ( mixed $filename , mixed $use_include_path , mixed $context ) : mixed
+
+
+
+ Parameters
+
+
+ $filename
+ : mixed
+
+
+
+
+
+ $use_include_path
+ : mixed
+
+
+
+
+
+ $context
+ : mixed
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Returns the response headers for the last request
+
+
+ public
+ getResponseHeaders ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-HttpClients-ParseStreamHttpClient.html b/classes/Parse-HttpClients-ParseStreamHttpClient.html
new file mode 100644
index 00000000..ba60ad16
--- /dev/null
+++ b/classes/Parse-HttpClients-ParseStreamHttpClient.html
@@ -0,0 +1,1424 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseStreamHttpClient
+
+
+
+
+
+ implements
+ ParseHttpable
+
+
+
+
+
+ Class ParseStreamHttpClient - Stream http client
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ ParseHttpable
+ Class ParseHttpable - Interface for an HTTPable client
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $caFile
+
+ : string
+
+Optional CA file to verify our peers with
+
+
+ $headers
+
+ : array<string|int, mixed>
+
+Request Headers
+
+
+ $httpOptions
+
+ : array<string|int, mixed>
+
+Options to pass to the stream context.
+
+
+ $options
+
+ : array<string|int, mixed>
+
+Options to pass to our stream
+
+
+ $parseStream
+
+ : ParseStream
+
+Stream handle
+
+
+ $responseCode
+
+ : int
+
+Response code
+
+
+ $responseContentType
+
+ : string|null
+
+Content type of our response
+
+
+ $responseHeaders
+
+ : array<string|int, mixed>
+
+Response headers
+
+
+ $streamErrorCode
+
+ : int
+
+Stream error code
+
+
+ $streamErrorMessage
+
+ : string
+
+Stream error message
+
+
+ $timeout
+
+ : int
+
+Optional timeout for this request
+
+
+ __construct()
+
+ : mixed
+
+ParseStreamHttpClient constructor.
+
+
+ addRequestHeader()
+
+ : mixed
+
+Adds a header to this request
+
+
+ formatHeaders()
+
+ : array<string|int, mixed>
+
+Converts unformatted headers to an array of headers
+
+
+ getErrorCode()
+
+ : int
+
+Gets the error code
+
+
+ getErrorMessage()
+
+ : string
+
+Gets the error message
+
+
+ getResponseContentType()
+
+ : null|string
+
+Returns the content type of the response
+
+
+ getResponseHeaders()
+
+ : array<string|int, mixed>
+
+Gets headers in the response
+
+
+ getResponseStatusCode()
+
+ : int
+
+Returns the status code of the response
+
+
+ getStatusCodeFromHeader()
+
+ : int
+
+Extracts the Http status code from the given header
+
+
+ send()
+
+ : string
+
+Sends an HTTP request
+
+
+ setCAFile()
+
+ : mixed
+
+Sets the CA file to validate requests with
+
+
+ setConnectionTimeout()
+
+ : mixed
+
+Sets a connection timeout. UNUSED in the stream client.
+
+
+ setHttpOptions()
+
+ : mixed
+
+Sets http options to pass to the stream context
+https://www.php.net/manual/en/context.php
+
+
+ setTimeout()
+
+ : mixed
+
+Sets the request timeout
+
+
+ setup()
+
+ : void
+
+Sets up ssl related options for the stream context
+
+
+ buildRequestHeaders()
+
+ : array<string|int, mixed>
+
+Builds and returns the coalesced request headers
+
+
+
+
+
+
+
+
+
+
+
+
+ $caFile
+
+
+
+
+
+
+ Optional CA file to verify our peers with
+
+
+ private
+ string
+ $caFile
+
+
+
+
+
+
+
+
+
+
+
+ Request Headers
+
+
+ private
+ array<string|int, mixed>
+ $headers
+ = array()
+
+
+
+
+
+
+
+
+ $httpOptions
+
+
+
+
+
+
+ Options to pass to the stream context.
+
+
+ private
+ array<string|int, mixed>
+ $httpOptions
+
+
+
+
+
+
+
+
+
+ $options
+
+
+
+
+
+
+ Options to pass to our stream
+
+
+ private
+ array<string|int, mixed>
+ $options
+ = array()
+
+
+
+
+
+
+
+
+ $parseStream
+
+
+
+
+
+
+ Stream handle
+
+
+ private
+ ParseStream
+ $parseStream
+
+
+
+
+
+
+
+
+
+ $responseCode
+
+
+
+
+
+
+ Response code
+
+
+ private
+ int
+ $responseCode
+ = 0
+
+
+
+
+
+
+
+
+ $responseContentType
+
+
+
+
+
+
+ Content type of our response
+
+
+ private
+ string|null
+ $responseContentType
+
+
+
+
+
+
+
+
+
+
+
+ Response headers
+
+
+ private
+ array<string|int, mixed>
+ $responseHeaders
+ = array()
+
+
+
+
+
+
+
+
+ $streamErrorCode
+
+
+
+
+
+
+ Stream error code
+
+
+ private
+ int
+ $streamErrorCode
+
+
+
+
+
+
+
+
+
+ $streamErrorMessage
+
+
+
+
+
+
+ Stream error message
+
+
+ private
+ string
+ $streamErrorMessage
+
+
+
+
+
+
+
+
+
+ $timeout
+
+
+
+
+
+
+ Optional timeout for this request
+
+
+ private
+ int
+ $timeout
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ ParseStreamHttpClient constructor.
+
+
+ public
+ __construct ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Adds a header to this request
+
+
+ public
+ addRequestHeader ( string $key , string $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Converts unformatted headers to an array of headers
+
+
+ public
+ static formatHeaders ( array<string|int, mixed> $rawHeaders ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $rawHeaders
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getErrorCode()
+
+
+
+
+ Gets the error code
+
+
+ public
+ getErrorCode ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ getErrorMessage()
+
+
+
+
+ Gets the error message
+
+
+ public
+ getErrorMessage ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getResponseContentType()
+
+
+
+
+ Returns the content type of the response
+
+
+ public
+ getResponseContentType ( ) : null|string
+
+
+
+
+
+
+ Return values
+ null|string
+ —
+
+
+
+
+
+
+
+
+ Gets headers in the response
+
+
+ public
+ getResponseHeaders ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getResponseStatusCode()
+
+
+
+
+ Returns the status code of the response
+
+
+ public
+ getResponseStatusCode ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+
+
+ Extracts the Http status code from the given header
+
+
+ public
+ static getStatusCodeFromHeader ( string $header ) : int
+
+
+
+ Parameters
+
+
+ $header
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ send()
+
+
+
+
+ Sends an HTTP request
+
+
+ public
+ send ( string $url [ , string $method = 'GET' ] [ , array<string|int, mixed> $data = array() ] ) : string
+
+
+
+ Parameters
+
+
+ $url
+ : string
+
+
+ Url to send this request to
+
+
+
+
+ $method
+ : string
+ = 'GET'
+
+ Method to send this request via
+
+
+
+
+ $data
+ : array<string|int, mixed>
+ = array()
+
+ Data to send in this request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ setCAFile()
+
+
+
+
+ Sets the CA file to validate requests with
+
+
+ public
+ setCAFile ( string $caFile ) : mixed
+
+
+
+ Parameters
+
+
+ $caFile
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setConnectionTimeout()
+
+
+
+
+ Sets a connection timeout. UNUSED in the stream client.
+
+
+ public
+ setConnectionTimeout ( int $timeout ) : mixed
+
+
+
+ Parameters
+
+
+ $timeout
+ : int
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setHttpOptions()
+
+
+
+
+ Sets http options to pass to the stream context
+https://www.php.net/manual/en/context.php
+
+
+ public
+ setHttpOptions ( array<string|int, mixed> $httpOptions ) : mixed
+
+
+
+ Parameters
+
+
+ $httpOptions
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setTimeout()
+
+
+
+
+ Sets the request timeout
+
+
+ public
+ setTimeout ( int $timeout ) : mixed
+
+
+
+ Parameters
+
+
+ $timeout
+ : int
+
+
+ Sets the timeout for the request
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setup()
+
+
+
+
+ Sets up ssl related options for the stream context
+
+
+ public
+ setup ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+
+
+ Builds and returns the coalesced request headers
+
+
+ private
+ buildRequestHeaders ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-Internal-AddOperation.html b/classes/Parse-Internal-AddOperation.html
new file mode 100644
index 00000000..f1a6ac1d
--- /dev/null
+++ b/classes/Parse-Internal-AddOperation.html
@@ -0,0 +1,530 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AddOperation
+
+
+
+
+
+ implements
+ FieldOperation
+
+
+
+
+
+ Class AddOperation - FieldOperation for adding object(s) to array fields.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ FieldOperation
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $objects
+
+ : array<string|int, mixed>
+
+Array with objects to add.
+
+
+ __construct()
+
+ : mixed
+
+Creates an AddOperation with the provided objects.
+
+
+ _apply()
+
+ : array<string|int, mixed>
+
+Applies current operation, returns resulting value.
+
+
+ _encode()
+
+ : array<string|int, mixed>
+
+Returns associative array representing encoded operation.
+
+
+ _mergeWithPrevious()
+
+ : FieldOperation
+
+Takes a previous operation and returns a merged operation to replace it.
+
+
+ getValue()
+
+ : mixed
+
+Gets the objects for this operation.
+
+
+
+
+
+
+
+
+
+
+
+
+ $objects
+
+
+
+
+
+
+ Array with objects to add.
+
+
+ private
+ array<string|int, mixed>
+ $objects
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Creates an AddOperation with the provided objects.
+
+
+ public
+ __construct ( array<string|int, mixed> $objects ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _apply()
+
+
+
+
+ Applies current operation, returns resulting value.
+
+
+ public
+ _apply ( mixed $oldValue , mixed $obj , string $key ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $oldValue
+ : mixed
+
+
+ Value prior to this operation.
+
+
+
+
+ $obj
+ : mixed
+
+
+
+
+
+
+ $key
+ : string
+
+
+ Key this operation affects.
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Returns associative array representing encoded operation.
+
+
+ public
+ _encode ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _mergeWithPrevious()
+
+
+
+
+ Takes a previous operation and returns a merged operation to replace it.
+
+
+ public
+ _mergeWithPrevious ( FieldOperation $previous ) : FieldOperation
+
+
+
+ Parameters
+
+
+ $previous
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ FieldOperation
+ —
+
+
+
+
+
+
+ getValue()
+
+
+
+
+ Gets the objects for this operation.
+
+
+ public
+ getValue ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-Internal-AddUniqueOperation.html b/classes/Parse-Internal-AddUniqueOperation.html
new file mode 100644
index 00000000..8cbf4c35
--- /dev/null
+++ b/classes/Parse-Internal-AddUniqueOperation.html
@@ -0,0 +1,592 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AddUniqueOperation
+
+
+
+
+
+ implements
+ FieldOperation
+
+
+
+
+
+ Class AddUniqueOperation - Operation to add unique objects to an array key.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ FieldOperation
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $objects
+
+ : array<string|int, mixed>
+
+Array containing objects to add.
+
+
+ __construct()
+
+ : mixed
+
+Creates an operation for adding unique values to an array key.
+
+
+ _apply()
+
+ : array<string|int, mixed>
+
+Apply the current operation and return the result.
+
+
+ _encode()
+
+ : array<string|int, mixed>
+
+Returns an associative array encoding of this operation.
+
+
+ _mergeWithPrevious()
+
+ : FieldOperation
+
+Merge this operation with the previous operation and return the result.
+
+
+ getValue()
+
+ : mixed
+
+Returns the values for this operation.
+
+
+ isParseObjectInArray()
+
+ : bool
+
+Checks if a parse object is contained in a given array of values
+
+
+
+
+
+
+
+
+
+
+
+
+ $objects
+
+
+
+
+
+
+ Array containing objects to add.
+
+
+ private
+ array<string|int, mixed>
+ $objects
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Creates an operation for adding unique values to an array key.
+
+
+ public
+ __construct ( array<string|int, mixed> $objects ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _apply()
+
+
+
+
+ Apply the current operation and return the result.
+
+
+ public
+ _apply ( mixed $oldValue , array<string|int, mixed> $obj , string $key ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $oldValue
+ : mixed
+
+
+ Value prior to this operation.
+
+
+
+
+ $obj
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $key
+ : string
+
+
+ Key this operation affects.
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Returns an associative array encoding of this operation.
+
+
+ public
+ _encode ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _mergeWithPrevious()
+
+
+
+
+ Merge this operation with the previous operation and return the result.
+
+
+ public
+ _mergeWithPrevious ( FieldOperation $previous ) : FieldOperation
+
+
+
+ Parameters
+
+
+ $previous
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ FieldOperation
+ —
+
+
+
+
+
+
+ getValue()
+
+
+
+
+ Returns the values for this operation.
+
+
+ public
+ getValue ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ isParseObjectInArray()
+
+
+
+
+ Checks if a parse object is contained in a given array of values
+
+
+ private
+ isParseObjectInArray ( ParseObject $parseObject , array<string|int, mixed> $oldValue ) : bool
+
+
+
+ Parameters
+
+
+ $parseObject
+ : ParseObject
+
+
+ ParseObject to check for existence of
+
+
+
+
+ $oldValue
+ : array<string|int, mixed>
+
+
+ Array to check if ParseObject is present in
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-Internal-DeleteOperation.html b/classes/Parse-Internal-DeleteOperation.html
new file mode 100644
index 00000000..4e66636c
--- /dev/null
+++ b/classes/Parse-Internal-DeleteOperation.html
@@ -0,0 +1,362 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DeleteOperation
+
+
+
+
+
+ implements
+ FieldOperation
+
+
+
+
+
+ Class DeleteOperation - FieldOperation to remove a key from an object.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ FieldOperation
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ _apply()
+
+ : null
+
+Applies the current operation and returns the result.
+
+
+ _encode()
+
+ : array<string|int, mixed>
+
+Returns an associative array encoding of the current operation.
+
+
+ _mergeWithPrevious()
+
+ : FieldOperation
+
+Merge this operation with a previous operation and return the result.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _apply()
+
+
+
+
+ Applies the current operation and returns the result.
+
+
+ public
+ _apply ( mixed $oldValue , mixed $object , string $key ) : null
+
+
+
+ Parameters
+
+
+ $oldValue
+ : mixed
+
+
+ Value prior to this operation.
+
+
+
+
+ $object
+ : mixed
+
+
+ Unused for this operation type.
+
+
+
+
+ $key
+ : string
+
+
+ Key to remove from the target object.
+
+
+
+
+
+
+
+ Return values
+ null
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Returns an associative array encoding of the current operation.
+
+
+ public
+ _encode ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+ Associative array encoding the operation.
+
+
+
+
+
+
+ _mergeWithPrevious()
+
+
+
+
+ Merge this operation with a previous operation and return the result.
+
+
+ public
+ _mergeWithPrevious ( FieldOperation $previous ) : FieldOperation
+
+
+
+ Parameters
+
+
+ $previous
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+ Return values
+ FieldOperation
+ —
+ Always returns the current operation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-Internal-Encodable.html b/classes/Parse-Internal-Encodable.html
new file mode 100644
index 00000000..170995f3
--- /dev/null
+++ b/classes/Parse-Internal-Encodable.html
@@ -0,0 +1,217 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodable
+
+
+
+
+
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ _encode()
+
+ : mixed
+
+Returns an associate array encoding of the implementing class.
+
+
+
+
+
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Returns an associate array encoding of the implementing class.
+
+
+ public
+ _encode ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-Internal-FieldOperation.html b/classes/Parse-Internal-FieldOperation.html
new file mode 100644
index 00000000..8cb294a5
--- /dev/null
+++ b/classes/Parse-Internal-FieldOperation.html
@@ -0,0 +1,347 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FieldOperation
+
+ extends
+ Encodable
+
+
+
+
+
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ _apply()
+
+ : mixed
+
+Applies the current operation and returns the result.
+
+
+ _encode()
+
+ : mixed
+
+Returns an associate array encoding of the implementing class.
+
+
+ _mergeWithPrevious()
+
+ : FieldOperation
+
+Merge this operation with a previous operation and return the new
+operation.
+
+
+
+
+
+
+
+
+
+
+
+ _apply()
+
+
+
+
+ Applies the current operation and returns the result.
+
+
+ public
+ _apply ( mixed $oldValue , mixed $object , string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $oldValue
+ : mixed
+
+
+ Value prior to this operation.
+
+
+
+
+ $object
+ : mixed
+
+
+ Value for this operation.
+
+
+
+
+ $key
+ : string
+
+
+ Key to perform this operation on.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ Result of the operation.
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Returns an associate array encoding of the implementing class.
+
+
+ public
+ _encode ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeWithPrevious()
+
+
+
+
+ Merge this operation with a previous operation and return the new
+operation.
+
+
+ public
+ _mergeWithPrevious ( FieldOperation $previous ) : FieldOperation
+
+
+
+ Parameters
+
+
+ $previous
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+ Return values
+ FieldOperation
+ —
+ Merged operation result.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-Internal-IncrementOperation.html b/classes/Parse-Internal-IncrementOperation.html
new file mode 100644
index 00000000..e80e1426
--- /dev/null
+++ b/classes/Parse-Internal-IncrementOperation.html
@@ -0,0 +1,532 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IncrementOperation
+
+
+
+
+
+ implements
+ FieldOperation
+
+
+
+
+
+ Class IncrementOperation - Operation to increment numeric object key.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ FieldOperation
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $value
+
+ : int
+
+Amount to increment by.
+
+
+ __construct()
+
+ : mixed
+
+Creates an IncrementOperation object.
+
+
+ _apply()
+
+ : int
+
+Apply the current operation and return the result.
+
+
+ _encode()
+
+ : array<string|int, mixed>
+
+Get an associative array encoding for this operation.
+
+
+ _mergeWithPrevious()
+
+ : FieldOperation
+
+Merge this operation with a previous operation and return the
+resulting operation.
+
+
+ getValue()
+
+ : int
+
+Get the value for this operation.
+
+
+
+
+
+
+
+
+
+
+
+
+ $value
+
+
+
+
+
+
+ Amount to increment by.
+
+
+ private
+ int
+ $value
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Creates an IncrementOperation object.
+
+
+ public
+ __construct ( [ int $value = 1 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $value
+ : int
+ = 1
+
+ Amount to increment by.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _apply()
+
+
+
+
+ Apply the current operation and return the result.
+
+
+ public
+ _apply ( mixed $oldValue , mixed $object , string $key ) : int
+
+
+
+ Parameters
+
+
+ $oldValue
+ : mixed
+
+
+ Value prior to this operation.
+
+
+
+
+ $object
+ : mixed
+
+
+ Value for this operation.
+
+
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ int
+ —
+ New value after application.
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Get an associative array encoding for this operation.
+
+
+ public
+ _encode ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _mergeWithPrevious()
+
+
+
+
+ Merge this operation with a previous operation and return the
+resulting operation.
+
+
+ public
+ _mergeWithPrevious ( FieldOperation $previous ) : FieldOperation
+
+
+
+ Parameters
+
+
+ $previous
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ FieldOperation
+ —
+
+
+
+
+
+
+ getValue()
+
+
+
+
+ Get the value for this operation.
+
+
+ public
+ getValue ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-Internal-ParseRelationOperation.html b/classes/Parse-Internal-ParseRelationOperation.html
new file mode 100644
index 00000000..467406e7
--- /dev/null
+++ b/classes/Parse-Internal-ParseRelationOperation.html
@@ -0,0 +1,958 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseRelationOperation
+
+
+
+
+
+ implements
+ FieldOperation
+
+
+
+
+
+ Class ParseRelationOperation - A class that is used to manage ParseRelation changes such as object add or remove.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ FieldOperation
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $relationsToAdd
+
+ : array<string|int, mixed>
+
+Array of objects to add to this relation.
+
+
+ $relationsToRemove
+
+ : array<string|int, mixed>
+
+Array of objects to remove from this relation.
+
+
+ $targetClassName
+
+ : string
+
+The className of the target objects.
+
+
+ __construct()
+
+ : mixed
+
+ParseRelationOperation constructor.
+
+
+ _apply()
+
+ : mixed
+
+Applies the current operation and returns the result.
+
+
+ _encode()
+
+ : mixed
+
+Returns an associative array encoding of the current operation.
+
+
+ _getTargetClass()
+
+ : null|string
+
+Gets the className of the target objects.
+
+
+ _mergeWithPrevious()
+
+ : FieldOperation
+
+Merge this operation with a previous operation and return the new
+operation.
+
+
+ convertToOneDimensionalArray()
+
+ : array<string|int, mixed>
+
+Convert any array to one dimensional array.
+
+
+ removeElementsFromArray()
+
+ : mixed
+
+Remove element or array of elements from one dimensional array.
+
+
+ addObjects()
+
+ : mixed
+
+Adds an object or array of objects to the array, replacing any
+existing instance of the same object.
+
+
+ checkAndAssignClassName()
+
+ : mixed
+
+Helper function to check that all passed ParseObjects have same class name
+and assign targetClassName variable.
+
+
+ removeObjects()
+
+ : mixed
+
+Removes an object (and any duplicate instances of that object) from the array.
+
+
+
+
+
+
+
+
+
+
+
+
+ $relationsToAdd
+
+
+
+
+
+
+ Array of objects to add to this relation.
+
+
+ private
+ array<string|int, mixed>
+ $relationsToAdd
+ = []
+
+
+
+
+
+
+
+
+ $relationsToRemove
+
+
+
+
+
+
+ Array of objects to remove from this relation.
+
+
+ private
+ array<string|int, mixed>
+ $relationsToRemove
+ = []
+
+
+
+
+
+
+
+
+ $targetClassName
+
+
+
+
+
+
+ The className of the target objects.
+
+
+ private
+ string
+ $targetClassName
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ ParseRelationOperation constructor.
+
+
+ public
+ __construct ( ParseObject |array<string|int, ParseObject > $objectsToAdd , ParseObject |array<string|int, ParseObject > $objectsToRemove ) : mixed
+
+
+
+ Parameters
+
+
+ $objectsToAdd
+ : ParseObject |array<string|int, ParseObject >
+
+
+
+
+
+
+ $objectsToRemove
+ : ParseObject |array<string|int, ParseObject >
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _apply()
+
+
+
+
+ Applies the current operation and returns the result.
+
+
+ public
+ _apply ( mixed $oldValue , mixed $object , string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $oldValue
+ : mixed
+
+
+ Value prior to this operation.
+
+
+
+
+ $object
+ : mixed
+
+
+ Value for this operation.
+
+
+
+
+ $key
+ : string
+
+
+ Key to perform this operation on.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ Result of the operation.
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Returns an associative array encoding of the current operation.
+
+
+ public
+ _encode ( ) : mixed
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _getTargetClass()
+
+
+
+
+ Gets the className of the target objects.
+
+
+ public
+ _getTargetClass ( ) : null|string
+
+
+
+
+
+
+ Return values
+ null|string
+ —
+
+
+
+
+
+
+ _mergeWithPrevious()
+
+
+
+
+ Merge this operation with a previous operation and return the new
+operation.
+
+
+ public
+ _mergeWithPrevious ( FieldOperation $previous ) : FieldOperation
+
+
+
+ Parameters
+
+
+ $previous
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ FieldOperation
+ —
+ Merged operation result.
+
+
+
+
+
+
+ convertToOneDimensionalArray()
+
+
+
+
+ Convert any array to one dimensional array.
+
+
+ public
+ static convertToOneDimensionalArray ( array<string|int, mixed> $array ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $array
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ removeElementsFromArray()
+
+
+
+
+ Remove element or array of elements from one dimensional array.
+
+
+ public
+ static removeElementsFromArray ( mixed $elements , array<string|int, mixed> & $array ) : mixed
+
+
+
+ Parameters
+
+
+ $elements
+ : mixed
+
+
+
+
+
+
+ $array
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ addObjects()
+
+
+
+
+ Adds an object or array of objects to the array, replacing any
+existing instance of the same object.
+
+
+ private
+ addObjects ( array<string|int, mixed> $objects , array<string|int, mixed> & $container ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Array of ParseObjects to add.
+
+
+
+
+ $container
+ : array<string|int, mixed>
+
+
+ Array to contain new ParseObjects.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ checkAndAssignClassName()
+
+
+
+
+ Helper function to check that all passed ParseObjects have same class name
+and assign targetClassName variable.
+
+
+ private
+ checkAndAssignClassName ( array<string|int, mixed> $objects ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ removeObjects()
+
+
+
+
+ Removes an object (and any duplicate instances of that object) from the array.
+
+
+ private
+ removeObjects ( array<string|int, mixed> $objects , array<string|int, mixed> & $container ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Array of ParseObjects to remove.
+
+
+
+
+ $container
+ : array<string|int, mixed>
+
+
+ Array to remove from it ParseObjects.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-Internal-RemoveOperation.html b/classes/Parse-Internal-RemoveOperation.html
new file mode 100644
index 00000000..5d8a1eb4
--- /dev/null
+++ b/classes/Parse-Internal-RemoveOperation.html
@@ -0,0 +1,531 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RemoveOperation
+
+
+
+
+
+ implements
+ FieldOperation
+
+
+
+
+
+ Class RemoveOperation - FieldOperation for removing object(s) from array
+fields.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ FieldOperation
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $objects
+
+ : array<string|int, mixed>
+
+Array with objects to remove.
+
+
+ __construct()
+
+ : mixed
+
+Creates an RemoveOperation with the provided objects.
+
+
+ _apply()
+
+ : array<string|int, mixed>
+
+Applies current operation, returns resulting value.
+
+
+ _encode()
+
+ : array<string|int, mixed>
+
+Returns associative array representing encoded operation.
+
+
+ _mergeWithPrevious()
+
+ : FieldOperation
+
+Takes a previous operation and returns a merged operation to replace it.
+
+
+ getValue()
+
+ : mixed
+
+Gets the objects for this operation.
+
+
+
+
+
+
+
+
+
+
+
+
+ $objects
+
+
+
+
+
+
+ Array with objects to remove.
+
+
+ private
+ array<string|int, mixed>
+ $objects
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Creates an RemoveOperation with the provided objects.
+
+
+ public
+ __construct ( array<string|int, mixed> $objects ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _apply()
+
+
+
+
+ Applies current operation, returns resulting value.
+
+
+ public
+ _apply ( mixed $oldValue , mixed $obj , string $key ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $oldValue
+ : mixed
+
+
+ Value prior to this operation.
+
+
+
+
+ $obj
+ : mixed
+
+
+
+
+
+
+ $key
+ : string
+
+
+ Key this operation affects.
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Returns associative array representing encoded operation.
+
+
+ public
+ _encode ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _mergeWithPrevious()
+
+
+
+
+ Takes a previous operation and returns a merged operation to replace it.
+
+
+ public
+ _mergeWithPrevious ( FieldOperation $previous ) : FieldOperation
+
+
+
+ Parameters
+
+
+ $previous
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ FieldOperation
+ —
+
+
+
+
+
+
+ getValue()
+
+
+
+
+ Gets the objects for this operation.
+
+
+ public
+ getValue ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-Internal-SetOperation.html b/classes/Parse-Internal-SetOperation.html
new file mode 100644
index 00000000..096dfd39
--- /dev/null
+++ b/classes/Parse-Internal-SetOperation.html
@@ -0,0 +1,550 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SetOperation
+
+
+
+
+
+ implements
+ FieldOperation
+
+
+
+
+
+ Class SetOperation - Operation to set a value for an object key.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ FieldOperation
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $isAssociativeArray
+
+ : bool
+
+If the value should be forced as object.
+
+
+ $value
+
+ : mixed
+
+Value to set for this operation.
+
+
+ __construct()
+
+ : mixed
+
+Create a SetOperation with a value.
+
+
+ _apply()
+
+ : mixed
+
+Apply the current operation and return the result.
+
+
+ _encode()
+
+ : mixed
+
+Returns an associative array encoding of the current operation.
+
+
+ _mergeWithPrevious()
+
+ : FieldOperation
+
+Merge this operation with a previous operation and return the
+resulting operation.
+
+
+ getValue()
+
+ : mixed
+
+Get the value for this operation.
+
+
+
+
+
+
+
+
+
+
+
+
+ $isAssociativeArray
+
+
+
+
+
+
+ If the value should be forced as object.
+
+
+ private
+ bool
+ $isAssociativeArray
+
+
+
+
+
+
+
+
+
+ $value
+
+
+
+
+
+
+ Value to set for this operation.
+
+
+ private
+ mixed
+ $value
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a SetOperation with a value.
+
+
+ public
+ __construct ( mixed $value [ , bool $isAssociativeArray = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $value
+ : mixed
+
+
+ Value to set for this operation.
+
+
+
+
+ $isAssociativeArray
+ : bool
+ = false
+
+ If the value should be forced as object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _apply()
+
+
+
+
+ Apply the current operation and return the result.
+
+
+ public
+ _apply ( mixed $oldValue , mixed $object , string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $oldValue
+ : mixed
+
+
+ Value prior to this operation.
+
+
+
+
+ $object
+ : mixed
+
+
+ Value for this operation.
+
+
+
+
+ $key
+ : string
+
+
+ Key to set this value on.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Returns an associative array encoding of the current operation.
+
+
+ public
+ _encode ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeWithPrevious()
+
+
+
+
+ Merge this operation with a previous operation and return the
+resulting operation.
+
+
+ public
+ _mergeWithPrevious ( FieldOperation $previous ) : FieldOperation
+
+
+
+ Parameters
+
+
+ $previous
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+ Return values
+ FieldOperation
+ —
+
+
+
+
+
+
+ getValue()
+
+
+
+
+ Get the value for this operation.
+
+
+ public
+ getValue ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseACL.html b/classes/Parse-ParseACL.html
new file mode 100644
index 00000000..17b0e6c0
--- /dev/null
+++ b/classes/Parse-ParseACL.html
@@ -0,0 +1,2333 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseACL
+
+
+
+
+
+ implements
+ Encodable
+
+
+
+
+
+ Class ParseACL - is used to control which users can access or modify a particular
+object. Each ParseObject can have its own ParseACL. You can grant read and
+write permissions separately to specific users, to groups of users that
+belong to roles, or you can grant permissions to "the public" so that, for
+example, any user could read a particular object but only a particular set
+of users could write to that object.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ Encodable
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ PUBLIC_KEY
+
+ = '*'
+
+
+
+
+ $defaultACL
+
+ : ParseACL
+
+An ACL with defaults set
+
+
+ $defaultACLUsesCurrentUser
+
+ : bool
+
+Whether the default acl uses the current user or not
+
+
+ $defaultACLWithCurrentUser
+
+ : ParseACL
+
+An ACL with defaults set with the current user
+
+
+ $lastCurrentUser
+
+ : ParseUser
+
+The last known current user
+
+
+ $permissionsById
+
+ : array<string|int, mixed>
+
+Array of permissions by id
+
+
+ $shared
+
+ : bool
+
+Whether this ACL is shared
+
+
+ _createACLFromJSON()
+
+ : ParseACL
+
+Create new ParseACL from existing permissions.
+
+
+ _encode()
+
+ : mixed
+
+Returns an associate array encoding of this ParseACL instance.
+
+
+ _getDefaultACL()
+
+ : ParseACL
+
+Get the defaultACL.
+
+
+ _isShared()
+
+ : bool
+
+Return if ParseACL shared or not.
+
+
+ _setShared()
+
+ : mixed
+
+Set shared for ParseACL.
+
+
+ createACLWithUser()
+
+ : ParseACL
+
+Create new ParseACL with read and write access for the given user.
+
+
+ getPublicReadAccess()
+
+ : bool
+
+Get whether the public is allowed to read this object.
+
+
+ getPublicWriteAccess()
+
+ : bool
+
+Get whether the public is allowed to write this object.
+
+
+ getReadAccess()
+
+ : bool
+
+Get whether the given user id is *explicitly* allowed to read this
+object. Even if this returns false, the user may still be able to
+access it if getPublicReadAccess returns true or a role that the
+user belongs to has read access.
+
+
+ getRoleReadAccess()
+
+ : bool
+
+Get whether users belonging to the given role are allowed to read this
+object. Even if this returns false, the role may still be able to read
+it if a parent role has read access. The role must already be saved on
+the server and its data must have been fetched in order to use this method.
+
+
+ getRoleReadAccessWithName()
+
+ : bool
+
+Get whether users belonging to the role with the given roleName are
+allowed to read this object. Even if this returns false, the role may
+still be able to read it if a parent role has read access.
+
+
+ getRoleWriteAccess()
+
+ : bool
+
+Get whether users belonging to the given role are allowed to write this
+object. Even if this returns false, the role may still be able to write
+it if a parent role has write access. The role must already be saved on
+the server and its data must have been fetched in order to use this method.
+
+
+ getRoleWriteAccessWithName()
+
+ : bool
+
+Get whether users belonging to the role with the given roleName are
+allowed to write this object. Even if this returns false, the role may
+still be able to write it if a parent role has write access.
+
+
+ getUserReadAccess()
+
+ : bool
+
+Get whether the given user is *explicitly* allowed to read this object.
+
+
+ getUserWriteAccess()
+
+ : bool
+
+Get whether the given user is *explicitly* allowed to write this object.
+
+
+ getWriteAccess()
+
+ : bool
+
+Get whether the given user id is *explicitly* allowed to write this
+object. Even if this returns false, the user may still be able to
+access it if getPublicWriteAccess returns true or a role that the
+user belongs to has write access.
+
+
+ setDefaultACL()
+
+ : mixed
+
+Sets a default ACL that will be applied to all ParseObjects when they
+are created.
+
+
+ setPublicReadAccess()
+
+ : mixed
+
+Set whether the public is allowed to read this object.
+
+
+ setPublicWriteAccess()
+
+ : mixed
+
+Set whether the public is allowed to write this object.
+
+
+ setReadAccess()
+
+ : mixed
+
+Set whether the given user id is allowed to read this object.
+
+
+ setRoleReadAccess()
+
+ : mixed
+
+Set whether users belonging to the given role are allowed to read this
+object. The role must already be saved on the server and its data must
+have been fetched in order to use this method.
+
+
+ setRoleReadAccessWithName()
+
+ : mixed
+
+Set whether users belonging to the role with the given roleName
+are allowed to read this object.
+
+
+ setRoleWriteAccess()
+
+ : mixed
+
+Set whether users belonging to the given role are allowed to write this
+object. The role must already be saved on the server and its data must
+have been fetched in order to use this method.
+
+
+ setRoleWriteAccessWithName()
+
+ : mixed
+
+Set whether users belonging to the role with the given roleName
+are allowed to write this object.
+
+
+ setUserReadAccess()
+
+ : mixed
+
+Set whether the given user is allowed to read this object.
+
+
+ setUserWriteAccess()
+
+ : mixed
+
+Set whether the given user is allowed to write this object.
+
+
+ setWriteAccess()
+
+ : mixed
+
+Set whether the given user id is allowed to write this object.
+
+
+ getAccess()
+
+ : bool
+
+Get if the given userId has a permission for the given access type or not.
+
+
+ setAccess()
+
+ : mixed
+
+Set access permission with access name, user id and if
+the user has permission for accessing or not.
+
+
+ validateRoleState()
+
+ : mixed
+
+Check whether the role is valid or not.
+
+
+
+
+
+
+
+
+
+
+ PUBLIC_KEY
+
+
+
+
+
+
+
+ public
+ mixed
+ PUBLIC_KEY
+ = '*'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $defaultACL
+
+
+
+
+
+
+ An ACL with defaults set
+
+
+ private
+ static ParseACL
+ $defaultACL
+ = null
+
+
+
+
+
+
+
+
+ $defaultACLUsesCurrentUser
+
+
+
+
+
+
+ Whether the default acl uses the current user or not
+
+
+ private
+ static bool
+ $defaultACLUsesCurrentUser
+ = false
+
+
+
+
+
+
+
+
+ $defaultACLWithCurrentUser
+
+
+
+
+
+
+ An ACL with defaults set with the current user
+
+
+ private
+ static ParseACL
+ $defaultACLWithCurrentUser
+ = null
+
+
+
+
+
+
+
+
+ $lastCurrentUser
+
+
+
+
+
+
+ The last known current user
+
+
+ private
+ static ParseUser
+ $lastCurrentUser
+ = null
+
+
+
+
+
+
+
+
+ $permissionsById
+
+
+
+
+
+
+ Array of permissions by id
+
+
+ private
+ array<string|int, mixed>
+ $permissionsById
+ = []
+
+
+
+
+
+
+
+
+ $shared
+
+
+
+
+
+
+ Whether this ACL is shared
+
+
+ private
+ bool
+ $shared
+ = false
+
+
+
+
+
+
+
+
+
+
+
+
+ _createACLFromJSON()
+
+
+
+
+ Create new ParseACL from existing permissions.
+
+
+ public
+ static _createACLFromJSON ( array<string|int, mixed> $data ) : ParseACL
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ represents permissions.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseACL
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Returns an associate array encoding of this ParseACL instance.
+
+
+ public
+ _encode ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _getDefaultACL()
+
+
+
+
+ Get the defaultACL.
+
+
+ public
+ static _getDefaultACL ( ) : ParseACL
+
+
+
+
+
+
+ Return values
+ ParseACL
+ —
+
+
+
+
+
+
+ _isShared()
+
+
+
+
+ Return if ParseACL shared or not.
+
+
+ public
+ _isShared ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ _setShared()
+
+
+
+
+ Set shared for ParseACL.
+
+
+ public
+ _setShared ( bool $shared ) : mixed
+
+
+
+ Parameters
+
+
+ $shared
+ : bool
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ createACLWithUser()
+
+
+
+
+ Create new ParseACL with read and write access for the given user.
+
+
+ public
+ static createACLWithUser ( ParseUser $user ) : ParseACL
+
+
+
+ Parameters
+
+
+ $user
+ : ParseUser
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseACL
+ —
+
+
+
+
+
+
+ getPublicReadAccess()
+
+
+
+
+ Get whether the public is allowed to read this object.
+
+
+ public
+ getPublicReadAccess ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ getPublicWriteAccess()
+
+
+
+
+ Get whether the public is allowed to write this object.
+
+
+ public
+ getPublicWriteAccess ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ getReadAccess()
+
+
+
+
+ Get whether the given user id is *explicitly* allowed to read this
+object. Even if this returns false, the user may still be able to
+access it if getPublicReadAccess returns true or a role that the
+user belongs to has read access.
+
+
+ public
+ getReadAccess ( string $userId ) : bool
+
+
+
+ Parameters
+
+
+ $userId
+ : string
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ getRoleReadAccess()
+
+
+
+
+ Get whether users belonging to the given role are allowed to read this
+object. Even if this returns false, the role may still be able to read
+it if a parent role has read access. The role must already be saved on
+the server and its data must have been fetched in order to use this method.
+
+
+ public
+ getRoleReadAccess ( ParseRole $role ) : bool
+
+
+
+ Parameters
+
+
+ $role
+ : ParseRole
+
+
+ The role to check for access.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ getRoleReadAccessWithName()
+
+
+
+
+ Get whether users belonging to the role with the given roleName are
+allowed to read this object. Even if this returns false, the role may
+still be able to read it if a parent role has read access.
+
+
+ public
+ getRoleReadAccessWithName ( string $roleName ) : bool
+
+
+
+ Parameters
+
+
+ $roleName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ getRoleWriteAccess()
+
+
+
+
+ Get whether users belonging to the given role are allowed to write this
+object. Even if this returns false, the role may still be able to write
+it if a parent role has write access. The role must already be saved on
+the server and its data must have been fetched in order to use this method.
+
+
+ public
+ getRoleWriteAccess ( ParseRole $role ) : bool
+
+
+
+ Parameters
+
+
+ $role
+ : ParseRole
+
+
+ The role to check for access.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ getRoleWriteAccessWithName()
+
+
+
+
+ Get whether users belonging to the role with the given roleName are
+allowed to write this object. Even if this returns false, the role may
+still be able to write it if a parent role has write access.
+
+
+ public
+ getRoleWriteAccessWithName ( string $roleName ) : bool
+
+
+
+ Parameters
+
+
+ $roleName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ getUserReadAccess()
+
+
+
+
+ Get whether the given user is *explicitly* allowed to read this object.
+
+
+ public
+ getUserReadAccess ( ParseUser $user ) : bool
+
+ Even if this returns false, the user may still be able to access it if
+getPublicReadAccess returns true or a role that the user belongs to has
+read access.
+
+
+ Parameters
+
+
+ $user
+ : ParseUser
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ getUserWriteAccess()
+
+
+
+
+ Get whether the given user is *explicitly* allowed to write this object.
+
+
+ public
+ getUserWriteAccess ( ParseUser $user ) : bool
+
+ Even if this returns false, the user may still be able to access it if
+getPublicWriteAccess returns true or a role that the user belongs to has
+write access.
+
+
+ Parameters
+
+
+ $user
+ : ParseUser
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ getWriteAccess()
+
+
+
+
+ Get whether the given user id is *explicitly* allowed to write this
+object. Even if this returns false, the user may still be able to
+access it if getPublicWriteAccess returns true or a role that the
+user belongs to has write access.
+
+
+ public
+ getWriteAccess ( string $userId ) : bool
+
+
+
+ Parameters
+
+
+ $userId
+ : string
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ setDefaultACL()
+
+
+
+
+ Sets a default ACL that will be applied to all ParseObjects when they
+are created.
+
+
+ public
+ static setDefaultACL ( ParseACL $acl , bool $withAccessForCurrentUser ) : mixed
+
+
+
+ Parameters
+
+
+ $acl
+ : ParseACL
+
+
+ The ACL to use as a template for all ParseObjects
+created after setDefaultACL has been called. This
+value will be copied and used as a template for the
+creation of new ACLs, so changes to the instance
+after setDefaultACL() has been called will not be
+reflected in new ParseObjects.
+
+
+
+
+ $withAccessForCurrentUser
+ : bool
+
+
+ If true, the ParseACL that is applied to
+newly-created ParseObjects will provide read
+and write access to the ParseUser#getCurrentUser()
+at the time of creation. If false, the provided
+ACL will be used without modification. If acl is
+null, this value is ignored.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setPublicReadAccess()
+
+
+
+
+ Set whether the public is allowed to read this object.
+
+
+ public
+ setPublicReadAccess ( bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $allowed
+ : bool
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setPublicWriteAccess()
+
+
+
+
+ Set whether the public is allowed to write this object.
+
+
+ public
+ setPublicWriteAccess ( bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $allowed
+ : bool
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setReadAccess()
+
+
+
+
+ Set whether the given user id is allowed to read this object.
+
+
+ public
+ setReadAccess ( string $userId , bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $userId
+ : string
+
+
+
+
+
+
+ $allowed
+ : bool
+
+
+ If user allowed to read or not.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setRoleReadAccess()
+
+
+
+
+ Set whether users belonging to the given role are allowed to read this
+object. The role must already be saved on the server and its data must
+have been fetched in order to use this method.
+
+
+ public
+ setRoleReadAccess ( ParseRole $role , bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $role
+ : ParseRole
+
+
+ The role to assign access.
+
+
+
+
+ $allowed
+ : bool
+
+
+ Whether the given role can read this object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setRoleReadAccessWithName()
+
+
+
+
+ Set whether users belonging to the role with the given roleName
+are allowed to read this object.
+
+
+ public
+ setRoleReadAccessWithName ( string $roleName , bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $roleName
+ : string
+
+
+
+
+
+
+ $allowed
+ : bool
+
+
+ Whether the given role can read this object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setRoleWriteAccess()
+
+
+
+
+ Set whether users belonging to the given role are allowed to write this
+object. The role must already be saved on the server and its data must
+have been fetched in order to use this method.
+
+
+ public
+ setRoleWriteAccess ( ParseRole $role , bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $role
+ : ParseRole
+
+
+ The role to assign access.
+
+
+
+
+ $allowed
+ : bool
+
+
+ Whether the given role can read this object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setRoleWriteAccessWithName()
+
+
+
+
+ Set whether users belonging to the role with the given roleName
+are allowed to write this object.
+
+
+ public
+ setRoleWriteAccessWithName ( string $roleName , bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $roleName
+ : string
+
+
+
+
+
+
+ $allowed
+ : bool
+
+
+ Whether the given role can write this object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setUserReadAccess()
+
+
+
+
+ Set whether the given user is allowed to read this object.
+
+
+ public
+ setUserReadAccess ( ParseUser $user , bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $user
+ : ParseUser
+
+
+
+
+
+
+ $allowed
+ : bool
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setUserWriteAccess()
+
+
+
+
+ Set whether the given user is allowed to write this object.
+
+
+ public
+ setUserWriteAccess ( ParseUser $user , bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $user
+ : ParseUser
+
+
+
+
+
+
+ $allowed
+ : bool
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setWriteAccess()
+
+
+
+
+ Set whether the given user id is allowed to write this object.
+
+
+ public
+ setWriteAccess ( string $userId , bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $userId
+ : string
+
+
+
+
+
+
+ $allowed
+ : bool
+
+
+ If user allowed to write or not.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getAccess()
+
+
+
+
+ Get if the given userId has a permission for the given access type or not.
+
+
+ private
+ getAccess ( string $accessType , string $userId ) : bool
+
+
+
+ Parameters
+
+
+ $accessType
+ : string
+
+
+
+
+
+
+ $userId
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ setAccess()
+
+
+
+
+ Set access permission with access name, user id and if
+the user has permission for accessing or not.
+
+
+ private
+ setAccess ( string $accessType , string $userId , bool $allowed ) : mixed
+
+
+
+ Parameters
+
+
+ $accessType
+ : string
+
+
+
+
+
+
+ $userId
+ : string
+
+
+
+
+
+
+ $allowed
+ : bool
+
+
+ If user allowed to access or not.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ validateRoleState()
+
+
+
+
+ Check whether the role is valid or not.
+
+
+ private
+ static validateRoleState ( ParseRole $role ) : mixed
+
+
+
+ Parameters
+
+
+ $role
+ : ParseRole
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseAggregateException.html b/classes/Parse-ParseAggregateException.html
new file mode 100644
index 00000000..d88a75fb
--- /dev/null
+++ b/classes/Parse-ParseAggregateException.html
@@ -0,0 +1,339 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseAggregateException
+
+
+ extends ParseException
+
+
+
+
+
+
+
+
+
+ Class ParseAggregateException - Multiple error condition.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $errors
+
+ : array<string|int, mixed>
+
+Collection of error values
+
+
+ __construct()
+
+ : mixed
+
+Constructs a Parse\ParseAggregateException.
+
+
+ getErrors()
+
+ : array<string|int, mixed>
+
+Return the aggregated errors that were thrown.
+
+
+
+
+
+
+
+
+
+
+
+
+ $errors
+
+
+
+
+
+
+ Collection of error values
+
+
+ private
+ array<string|int, mixed>
+ $errors
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Constructs a Parse\ParseAggregateException.
+
+
+ public
+ __construct ( string $message [ , array<string|int, mixed> $errors = [] ] [ , Exception $previous = null ] ) : mixed
+
+
+
+ Parameters
+
+
+ $message
+ : string
+
+
+ Message for the Exception.
+
+
+
+
+ $errors
+ : array<string|int, mixed>
+ = []
+
+ Collection of error values.
+
+
+
+
+ $previous
+ : Exception
+ = null
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getErrors()
+
+
+
+
+ Return the aggregated errors that were thrown.
+
+
+ public
+ getErrors ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseAnalytics.html b/classes/Parse-ParseAnalytics.html
new file mode 100644
index 00000000..718db02e
--- /dev/null
+++ b/classes/Parse-ParseAnalytics.html
@@ -0,0 +1,325 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseAnalytics
+
+
+
+
+
+
+
+
+
+ Class ParseAnalytics - Handles sending app-open and custom analytics events.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ _toSaveJSON()
+
+ : string
+
+Encodes and returns the given data as a json object
+
+
+ track()
+
+ : mixed
+
+Tracks the occurrence of a custom event with additional dimensions.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _toSaveJSON()
+
+
+
+
+ Encodes and returns the given data as a json object
+
+
+ public
+ static _toSaveJSON ( array<string|int, mixed> $data ) : string
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ track()
+
+
+
+
+ Tracks the occurrence of a custom event with additional dimensions.
+
+
+ public
+ static track ( string $name [ , array<string|int, mixed> $dimensions = [] ] ) : mixed
+
+ Parse will store a data point at the time of invocation with the given
+event name.
+Dimensions will allow segmentation of the occurrences of this custom
+event. Keys and values should be strings, and will throw
+otherwise.
+To track a user signup along with additional metadata, consider the
+following:
+
+$dimensions = array(
+ 'gender' => 'm',
+ 'source' => 'web',
+ 'dayType' => 'weekend'
+);
+ParseAnalytics::track('signup', $dimensions);
+
+There is a default limit of 4 dimensions per event tracked.
+
+
+ Parameters
+
+
+ $name
+ : string
+
+
+ The name of the custom event
+
+
+
+
+ $dimensions
+ : array<string|int, mixed>
+ = []
+
+ The dictionary of segment information
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseAudience.html b/classes/Parse-ParseAudience.html
new file mode 100644
index 00000000..894531e7
--- /dev/null
+++ b/classes/Parse-ParseAudience.html
@@ -0,0 +1,4984 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseAudience
+
+
+ extends ParseObject
+
+
+
+
+
+
+
+
+
+ Class ParseAudience - Representation of Audience for tracking and sending push notifications
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $parseClassName
+
+ : string
+
+Parse Class name
+
+
+ $operationSet
+
+ : array<string|int, mixed>
+
+Set of unsaved operations.
+
+
+ $serverData
+
+ : array<string|int, mixed>
+
+Data as it exists on the server.
+
+
+ $className
+
+ : string
+
+Class name for data on Parse.
+
+
+ $createdAt
+
+ : DateTime
+
+Timestamp when object was created.
+
+
+ $dataAvailability
+
+ : array<string|int, mixed>
+
+Determine if data available for a given key or not.
+
+
+ $estimatedData
+
+ : array<string|int, mixed>
+
+Estimated value of applying operationSet to serverData.
+
+
+ $hasBeenFetched
+
+ : bool
+
+Whether the object has been fully fetched from Parse.
+
+
+ $objectId
+
+ : string
+
+Unique identifier on Parse.
+
+
+ $registeredSubclasses
+
+ : array<string|int, mixed>
+
+Holds the registered subclasses and Parse class names.
+
+
+ $updatedAt
+
+ : DateTime
+
+Timestamp when object was last updated.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse Object.
+
+
+ __get()
+
+ : mixed
+
+Getter to catch direct property calls and pass them to the get function.
+
+
+ __isset()
+
+ : bool
+
+Magic handler to catch isset calls to object properties.
+
+
+ __set()
+
+ : mixed
+
+Setter to catch property calls and protect certain fields.
+
+
+ _encode()
+
+ : string
+
+Return a JSON encoded value of the object.
+
+
+ _mergeAfterFetch()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+ : mixed
+
+Merges data received from the server with a given selected keys.
+
+
+ _mergeMagicFields()
+
+ : mixed
+
+Handle merging of special fields for the object.
+
+
+ _performOperation()
+
+ : mixed
+
+Perform an operation on an object property.
+
+
+ _toPointer()
+
+ : array<string|int, mixed>
+
+Gets a Pointer referencing this Object.
+
+
+ _unregisterSubclass()
+
+ : mixed
+
+Un-register a subclass.
+
+
+ add()
+
+ : mixed
+
+Add a value to an array property.
+
+
+ addUnique()
+
+ : mixed
+
+Add unique values to an array property.
+
+
+ beforeSave()
+
+ : void
+
+Before save stub
+
+
+ clear()
+
+ : mixed
+
+Clear all keys on this object by creating delete operations
+for each key.
+
+
+ create()
+
+ : ParseObject
+
+Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ createAudience()
+
+ : ParseAudience
+
+Create a new audience with name & query
+
+
+ decode()
+
+ : ParseObject
+
+Decodes and returns a ParseObject from an encoded object
+
+
+ delete()
+
+ : mixed
+
+Delete a key from an object.
+
+
+ destroy()
+
+ : mixed
+
+Delete the object from Parse.
+
+
+ destroyAll()
+
+ : mixed
+
+Delete an array of objects.
+
+
+ encode()
+
+ : string
+
+Returns a JSON encoded array of a ParseObject
+
+
+ exists()
+
+ : bool
+
+Returns true if this object exists on the Server
+
+
+ fetch()
+
+ : ParseObject
+
+Fetch the whole object from the server and update the local object.
+
+
+ fetchAll()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse objects from the server.
+
+
+ fetchAllWithInclude()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ fetchWithInclude()
+
+ : ParseObject
+
+Fetch an array of Parse objects from the server.
+
+
+ get()
+
+ : mixed
+
+Get current value for an object property.
+
+
+ getACL()
+
+ : ParseACL
+
+Get the ACL assigned to the object.
+
+
+ getAllKeys()
+
+ : array<string|int, mixed>
+
+Get values for all keys of an object.
+
+
+ getClassName()
+
+ : string
+
+Get the Parse Class Name for the object.
+
+
+ getCreatedAt()
+
+ : DateTime |null
+
+Get the createdAt for the object, or null if unsaved.
+
+
+ getLastUsed()
+
+ : DateTime |null
+
+Gets when this Audience was last used
+
+
+ getName()
+
+ : string
+
+Gets the name for this audience
+
+
+ getObjectId()
+
+ : string|null
+
+Get the objectId for the object, or null if unsaved.
+
+
+ getQuery()
+
+ : ParseQuery
+
+Gets the query for this Audience
+
+
+ getRegisteredSubclass()
+
+ : ParseObject
+
+Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ getRelation()
+
+ : ParseRelation
+
+Access or create a Relation value for a key.
+
+
+ getTimesUsed()
+
+ : int
+
+Gets the times this Audience has been used
+
+
+ getUpdatedAt()
+
+ : DateTime |null
+
+Get the updatedAt for the object, or null if unsaved.
+
+
+ has()
+
+ : bool
+
+Check if the object has a given key.
+
+
+ hasRegisteredSubclass()
+
+ : bool
+
+Check whether there is a subclass registered for a given parse class.
+
+
+ increment()
+
+ : mixed
+
+Increment a numeric key by a certain value.
+
+
+ isDataAvailable()
+
+ : bool
+
+Returns true if the object has been fetched.
+
+
+ isDirty()
+
+ : bool
+
+Check if the object or any of its child objects have unsaved operations.
+
+
+ isKeyDirty()
+
+ : bool
+
+Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ query()
+
+ : ParseQuery
+
+Creates a ParseQuery for the subclass of ParseObject.
+
+
+ registerSubclass()
+
+ : mixed
+
+Register a subclass. Should be called before any other Parse functions.
+
+
+ remove()
+
+ : mixed
+
+Remove a value from an array for an object key.
+
+
+ revert()
+
+ : mixed
+
+Revert all unsaved operations.
+
+
+ save()
+
+ : mixed
+
+Save Object to Parse.
+
+
+ saveAll()
+
+ : mixed
+
+Save all the objects in the provided array.
+
+
+ set()
+
+ : mixed
+
+Validate and set a value for an object key.
+
+
+ setACL()
+
+ : mixed
+
+Set ACL for this object.
+
+
+ setArray()
+
+ : mixed
+
+Set an array value for an object key.
+
+
+ setAssociativeArray()
+
+ : mixed
+
+Set an associative array value for an object key.
+
+
+ setName()
+
+ : mixed
+
+Sets the name of this audience
+
+
+ setQuery()
+
+ : mixed
+
+Sets the query for this Audience
+
+
+ _isDirty()
+
+ : bool
+
+Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ rebuildEstimatedData()
+
+ : mixed
+
+Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ _isDataAvailable()
+
+ : bool
+
+Returns whether or not data is available for a given key
+
+
+ applyOperations()
+
+ : mixed
+
+Apply operations to a target object.
+
+
+ canBeSerialized()
+
+ : bool
+
+Determine if the current object can be serialized for saving.
+
+
+ canBeSerializedAsValue()
+
+ : bool
+
+Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ deepSave()
+
+ : mixed
+
+Save object and unsaved children within.
+
+
+ destroyBatch()
+
+ : array<string|int, mixed>
+
+Destroy batch of objects.
+
+
+ findUnsavedChildren()
+
+ : mixed
+
+Find unsaved children inside an object.
+
+
+ getACLWithCopy()
+
+ : ParseACL |null
+
+Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ getSaveJSON()
+
+ : array<string|int, mixed>
+
+Returns JSON object of the unsaved operations.
+
+
+ getSubclass()
+
+ : mixed
+
+Gets the Subclass className if exists, otherwise false.
+
+
+ hasDirtyChildren()
+
+ : bool
+
+Determines whether this object has child objects that are dirty
+
+
+ mergeAfterSave()
+
+ : mixed
+
+Merge server data after a save completes.
+
+
+ mergeFromObject()
+
+ : mixed
+
+Merge data from other object.
+
+
+ mergeFromServer()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ toObjectIdArray()
+
+ : array<string|int, mixed>
+
+Creates an array of object ids from a given array of ParseObjects
+
+
+ traverse()
+
+ : mixed
+
+Traverse object to find children.
+
+
+ updateWithFetchedResults()
+
+ : array<string|int, mixed>
+
+Merges an existing array of objects with their fetched counterparts
+
+
+
+
+
+
+
+
+
+
+
+
+ $parseClassName
+
+
+
+
+
+
+ Parse Class name
+
+
+ public
+ static string
+ $parseClassName
+ = '_Audience'
+
+
+
+
+
+
+
+
+ $operationSet
+
+
+
+
+
+
+ Set of unsaved operations.
+
+
+ protected
+ array<string|int, mixed>
+ $operationSet
+
+
+
+
+
+
+
+
+
+ $serverData
+
+
+
+
+
+
+ Data as it exists on the server.
+
+
+ protected
+ array<string|int, mixed>
+ $serverData
+
+
+
+
+
+
+
+
+
+ $className
+
+
+
+
+
+
+ Class name for data on Parse.
+
+
+ private
+ string
+ $className
+
+
+
+
+
+
+
+
+
+ $createdAt
+
+
+
+
+
+
+ Timestamp when object was created.
+
+
+ private
+ DateTime
+ $createdAt
+
+
+
+
+
+
+
+
+
+ $dataAvailability
+
+
+
+
+
+
+ Determine if data available for a given key or not.
+
+
+ private
+ array<string|int, mixed>
+ $dataAvailability
+
+
+
+
+
+
+
+
+
+ $estimatedData
+
+
+
+
+
+
+ Estimated value of applying operationSet to serverData.
+
+
+ private
+ array<string|int, mixed>
+ $estimatedData
+
+
+
+
+
+
+
+
+
+ $hasBeenFetched
+
+
+
+
+
+
+ Whether the object has been fully fetched from Parse.
+
+
+ private
+ bool
+ $hasBeenFetched
+
+
+
+
+
+
+
+
+
+ $objectId
+
+
+
+
+
+
+ Unique identifier on Parse.
+
+
+ private
+ string
+ $objectId
+
+
+
+
+
+
+
+
+
+ $registeredSubclasses
+
+
+
+
+
+
+ Holds the registered subclasses and Parse class names.
+
+
+ private
+ static array<string|int, mixed>
+ $registeredSubclasses
+ = []
+
+
+
+
+
+
+
+
+ $updatedAt
+
+
+
+
+
+
+ Timestamp when object was last updated.
+
+
+ private
+ DateTime
+ $updatedAt
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse Object.
+
+
+ public
+ __construct ( [ string $className = null ] [ , mixed $objectId = null ] [ , bool $isPointer = false ] ) : mixed
+
+ Creates a pointer object if an objectId is provided,
+otherwise creates a new object.
+
+
+ Parameters
+
+
+ $className
+ : string
+ = null
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : mixed
+ = null
+
+ Object Id for Existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __get()
+
+
+
+
+ Getter to catch direct property calls and pass them to the get function.
+
+
+ public
+ __get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the Object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __isset()
+
+
+
+
+ Magic handler to catch isset calls to object properties.
+
+
+ public
+ __isset ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check on the object.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ __set()
+
+
+
+
+ Setter to catch property calls and protect certain fields.
+
+
+ public
+ __set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Return a JSON encoded value of the object.
+
+
+ public
+ _encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ _mergeAfterFetch()
+
+
+
+
+ Merges data received from the server.
+
+
+ public
+ _mergeAfterFetch ( array<string|int, mixed> $result [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+
+
+
+ Merges data received from the server with a given selected keys.
+
+
+ public
+ _mergeAfterFetchWithSelectedKeys ( array<string|int, mixed> $result , array<string|int, mixed> $selectedKeys ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $selectedKeys
+ : array<string|int, mixed>
+
+
+ Keys to be fetched. Null or empty means all
+data will be fetched.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeMagicFields()
+
+
+
+
+ Handle merging of special fields for the object.
+
+
+ public
+ _mergeMagicFields ( array<string|int, mixed> & $data ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data received from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Perform an operation on an object property.
+
+
+ public
+ _performOperation ( string $key , FieldOperation $operation ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to perform an operation upon.
+
+
+
+
+ $operation
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _toPointer()
+
+
+
+
+ Gets a Pointer referencing this Object.
+
+
+ public
+ _toPointer ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _unregisterSubclass()
+
+
+
+
+ Un-register a subclass.
+
+
+ public
+ static _unregisterSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ add()
+
+
+
+
+ Add a value to an array property.
+
+
+ public
+ add ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object to add a value to.
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ addUnique()
+
+
+
+
+ Add unique values to an array property.
+
+
+ public
+ addUnique ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value list to add uniquely.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ beforeSave()
+
+
+
+
+ Before save stub
+
+
+ public
+ beforeSave ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+ clear()
+
+
+
+
+ Clear all keys on this object by creating delete operations
+for each key.
+
+
+ public
+ clear ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ create()
+
+
+
+
+ Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ public
+ static create ( string $className [ , string $objectId = null ] [ , bool $isPointer = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : string
+ = null
+
+ Unique identifier for existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+ If the object is a pointer.
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ createAudience()
+
+
+
+
+ Create a new audience with name & query
+
+
+ public
+ static createAudience ( string $name , ParseQuery $query ) : ParseAudience
+
+
+
+ Parameters
+
+
+ $name
+ : string
+
+
+ Name of the audience to create
+
+
+
+
+ $query
+ : ParseQuery
+
+
+ Query to create audience with
+
+
+
+
+
+
+
+ Return values
+ ParseAudience
+ —
+
+
+
+
+
+
+ decode()
+
+
+
+
+ Decodes and returns a ParseObject from an encoded object
+
+
+ public
+ static decode ( string|array<string|int, mixed> $encoded ) : ParseObject
+
+
+
+ Parameters
+
+
+ $encoded
+ : string|array<string|int, mixed>
+
+
+ Encoded ParseObject to decode
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ delete()
+
+
+
+
+ Delete a key from an object.
+
+
+ public
+ delete ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove from object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroy()
+
+
+
+
+ Delete the object from Parse.
+
+
+ public
+ destroy ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyAll()
+
+
+
+
+ Delete an array of objects.
+
+
+ public
+ static destroyAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key or not.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ encode()
+
+
+
+
+ Returns a JSON encoded array of a ParseObject
+
+
+ public
+ encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ exists()
+
+
+
+
+ Returns true if this object exists on the Server
+
+
+ public
+ exists ( [ bool $useMasterKey = false ] ) : bool
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ fetch()
+
+
+
+
+ Fetch the whole object from the server and update the local object.
+
+
+ public
+ fetch ( [ bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key and override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ fetchAll()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ static fetchAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchAllWithInclude()
+
+
+
+
+ Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ public
+ static fetchAllWithInclude ( array<string|int, mixed> $objects , mixed $includeKeys [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $includeKeys
+ : mixed
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchWithInclude()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ fetchWithInclude ( array<string|int, mixed> $includeKeys [ , bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $includeKeys
+ : array<string|int, mixed>
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ get()
+
+
+
+
+ Get current value for an object property.
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the estimatedData array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACL()
+
+
+
+
+ Get the ACL assigned to the object.
+
+
+ public
+ getACL ( ) : ParseACL
+
+
+
+
+
+
+ Return values
+ ParseACL
+ —
+
+
+
+
+
+
+ getAllKeys()
+
+
+
+
+ Get values for all keys of an object.
+
+
+ public
+ getAllKeys ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getClassName()
+
+
+
+
+ Get the Parse Class Name for the object.
+
+
+ public
+ getClassName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getCreatedAt()
+
+
+
+
+ Get the createdAt for the object, or null if unsaved.
+
+
+ public
+ getCreatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ getLastUsed()
+
+
+
+
+ Gets when this Audience was last used
+
+
+ public
+ getLastUsed ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ getName()
+
+
+
+
+ Gets the name for this audience
+
+
+ public
+ getName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getObjectId()
+
+
+
+
+ Get the objectId for the object, or null if unsaved.
+
+
+ public
+ getObjectId ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ getQuery()
+
+
+
+
+ Gets the query for this Audience
+
+
+ public
+ getQuery ( ) : ParseQuery
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+
+
+
+
+
+
+ getRegisteredSubclass()
+
+
+
+
+ Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ public
+ static getRegisteredSubclass ( string $parseClassName ) : ParseObject
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ getRelation()
+
+
+
+
+ Access or create a Relation value for a key.
+
+
+ public
+ getRelation ( string $key [ , string $className = null ] ) : ParseRelation
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to access the relation for.
+
+
+
+
+ $className
+ : string
+ = null
+
+
+
+
+
+
+
+
+ Return values
+ ParseRelation
+ —
+ The ParseRelation object if the relation already
+exists for the key or can be created for this key.
+
+
+
+
+
+
+ getTimesUsed()
+
+
+
+
+ Gets the times this Audience has been used
+
+
+ public
+ getTimesUsed ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ getUpdatedAt()
+
+
+
+
+ Get the updatedAt for the object, or null if unsaved.
+
+
+ public
+ getUpdatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ has()
+
+
+
+
+ Check if the object has a given key.
+
+
+ public
+ has ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ hasRegisteredSubclass()
+
+
+
+
+ Check whether there is a subclass registered for a given parse class.
+
+
+ public
+ static hasRegisteredSubclass ( string $parseClassName ) : bool
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ increment()
+
+
+
+
+ Increment a numeric key by a certain value.
+
+
+ public
+ increment ( string $key [ , int $value = 1 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for numeric value on object to increment.
+
+
+
+
+ $value
+ : int
+ = 1
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ isDataAvailable()
+
+
+
+
+ Returns true if the object has been fetched.
+
+
+ public
+ isDataAvailable ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isDirty()
+
+
+
+
+ Check if the object or any of its child objects have unsaved operations.
+
+
+ public
+ isDirty ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isKeyDirty()
+
+
+
+
+ Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ public
+ isKeyDirty ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ query()
+
+
+
+
+ Creates a ParseQuery for the subclass of ParseObject.
+
+
+ public
+ static query ( ) : ParseQuery
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+
+
+
+
+
+
+ registerSubclass()
+
+
+
+
+ Register a subclass. Should be called before any other Parse functions.
+
+
+ public
+ static registerSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Remove a value from an array for an object key.
+
+
+ public
+ remove ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove the value from on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to remove from the array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ revert()
+
+
+
+
+ Revert all unsaved operations.
+
+
+ public
+ revert ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Save Object to Parse.
+
+
+ public
+ save ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ saveAll()
+
+
+
+
+ Save all the objects in the provided array.
+
+
+ public
+ static saveAll ( array<string|int, mixed> $list [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $list
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Validate and set a value for an object key.
+
+
+ public
+ set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set a value for on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setACL()
+
+
+
+
+ Set ACL for this object.
+
+
+ public
+ setACL ( ParseACL $acl ) : mixed
+
+
+
+ Parameters
+
+
+ $acl
+ : ParseACL
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setArray()
+
+
+
+
+ Set an array value for an object key.
+
+
+ public
+ setArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setAssociativeArray()
+
+
+
+
+ Set an associative array value for an object key.
+
+
+ public
+ setAssociativeArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setName()
+
+
+
+
+ Sets the name of this audience
+
+
+ public
+ setName ( string $name ) : mixed
+
+
+
+ Parameters
+
+
+ $name
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setQuery()
+
+
+
+
+ Sets the query for this Audience
+
+
+ public
+ setQuery ( ParseQuery $query ) : mixed
+
+
+
+ Parameters
+
+
+ $query
+ : ParseQuery
+
+
+ Query for this Audience
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDirty()
+
+
+
+
+ Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ protected
+ _isDirty ( bool $considerChildren ) : bool
+
+
+
+ Parameters
+
+
+ $considerChildren
+ : bool
+
+
+ Whether to consider children when checking for dirty state
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ rebuildEstimatedData()
+
+
+
+
+ Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ protected
+ rebuildEstimatedData ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDataAvailable()
+
+
+
+
+ Returns whether or not data is available for a given key
+
+
+ private
+ _isDataAvailable ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check availability of
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ applyOperations()
+
+
+
+
+ Apply operations to a target object.
+
+
+ private
+ applyOperations ( array<string|int, mixed> $operations , array<string|int, mixed> & $target ) : mixed
+
+
+
+ Parameters
+
+
+ $operations
+ : array<string|int, mixed>
+
+
+ Operations set to apply.
+
+
+
+
+ $target
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ canBeSerialized()
+
+
+
+
+ Determine if the current object can be serialized for saving.
+
+
+ private
+ canBeSerialized ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ canBeSerializedAsValue()
+
+
+
+
+ Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ private
+ static canBeSerializedAsValue ( mixed $object ) : bool
+
+
+
+ Parameters
+
+
+ $object
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ deepSave()
+
+
+
+
+ Save object and unsaved children within.
+
+
+ private
+ static deepSave ( ParseObject |array<string|int, mixed> $target [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $target
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyBatch()
+
+
+
+
+ Destroy batch of objects.
+
+
+ private
+ static destroyBatch ( array<string|int, ParseObject > $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, ParseObject >
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ findUnsavedChildren()
+
+
+
+
+ Find unsaved children inside an object.
+
+
+ private
+ static findUnsavedChildren ( ParseObject $object , array<string|int, mixed> & $unsavedChildren , array<string|int, mixed> & $unsavedFiles ) : mixed
+
+
+
+ Parameters
+
+
+ $object
+ : ParseObject
+
+
+
+
+
+
+ $unsavedChildren
+ : array<string|int, mixed>
+
+
+ Array to populate with children.
+
+
+
+
+ $unsavedFiles
+ : array<string|int, mixed>
+
+
+ Array to populate with files.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACLWithCopy()
+
+
+
+
+ Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ private
+ getACLWithCopy ( bool $mayCopy ) : ParseACL |null
+
+
+
+ Parameters
+
+
+ $mayCopy
+ : bool
+
+
+ Whether to return a copy of this acl or not
+
+
+
+
+
+
+
+ Return values
+ ParseACL |null
+ —
+
+
+
+
+
+
+ getSaveJSON()
+
+
+
+
+ Returns JSON object of the unsaved operations.
+
+
+ private
+ getSaveJSON ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getSubclass()
+
+
+
+
+ Gets the Subclass className if exists, otherwise false.
+
+
+ private
+ static getSubclass ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ hasDirtyChildren()
+
+
+
+
+ Determines whether this object has child objects that are dirty
+
+
+ private
+ hasDirtyChildren ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ mergeAfterSave()
+
+
+
+
+ Merge server data after a save completes.
+
+
+ private
+ mergeAfterSave ( array<string|int, mixed> $result ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromObject()
+
+
+
+
+ Merge data from other object.
+
+
+ private
+ mergeFromObject ( ParseObject $other ) : mixed
+
+
+
+ Parameters
+
+
+ $other
+ : ParseObject
+
+
+ Other object to merge data from
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromServer()
+
+
+
+
+ Merges data received from the server.
+
+
+ private
+ mergeFromServer ( array<string|int, mixed> $data [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ toObjectIdArray()
+
+
+
+
+ Creates an array of object ids from a given array of ParseObjects
+
+
+ private
+ static toObjectIdArray ( array<string|int, mixed> $objects ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Objects to create id array from
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ traverse()
+
+
+
+
+ Traverse object to find children.
+
+
+ private
+ static traverse ( bool $deep , ParseObject |array<string|int, mixed> & $object , callable $mapFunction [ , array<string|int, mixed> $seen = [] ] ) : mixed
+
+
+
+ Parameters
+
+
+ $deep
+ : bool
+
+
+ Should this call traverse deeply
+
+
+
+
+ $object
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $mapFunction
+ : callable
+
+
+ Function to call for every item.
+
+
+
+
+ $seen
+ : array<string|int, mixed>
+ = []
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ The result of calling mapFunction on the root object.
+
+
+
+
+
+
+ updateWithFetchedResults()
+
+
+
+
+ Merges an existing array of objects with their fetched counterparts
+
+
+ private
+ static updateWithFetchedResults ( array<string|int, mixed> $objects , array<string|int, mixed> $fetched ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Original objects to update
+
+
+
+
+ $fetched
+ : array<string|int, mixed>
+
+
+ Fetched object data to update with
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseBytes.html b/classes/Parse-ParseBytes.html
new file mode 100644
index 00000000..249cf1ad
--- /dev/null
+++ b/classes/Parse-ParseBytes.html
@@ -0,0 +1,489 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseBytes
+
+
+
+
+
+ implements
+ Encodable
+
+
+
+
+
+ Class ParseBytes - Representation of a Byte array for storage on a Parse Object.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ Encodable
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $byteArray
+
+ : array<string|int, mixed>
+
+Byte array.
+
+
+ _encode()
+
+ : array<string|int, mixed>
+
+Encode to associative array representation.
+
+
+ createFromBase64Data()
+
+ : ParseBytes
+
+Create a ParseBytes object with a given base 64 encoded data string.
+
+
+ createFromByteArray()
+
+ : ParseBytes
+
+Create a ParseBytes object with a given byte array.
+
+
+ setBase64Data()
+
+ : mixed
+
+Decodes and unpacks a given base64 encoded array of data
+
+
+ setByteArray()
+
+ : mixed
+
+Sets a new byte array
+
+
+
+
+
+
+
+
+
+
+
+
+ $byteArray
+
+
+
+
+
+
+ Byte array.
+
+
+ private
+ array<string|int, mixed>
+ $byteArray
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Encode to associative array representation.
+
+
+ public
+ _encode ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ createFromBase64Data()
+
+
+
+
+ Create a ParseBytes object with a given base 64 encoded data string.
+
+
+ public
+ static createFromBase64Data ( string $base64Data ) : ParseBytes
+
+
+
+ Parameters
+
+
+ $base64Data
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseBytes
+ —
+
+
+
+
+
+
+ createFromByteArray()
+
+
+
+
+ Create a ParseBytes object with a given byte array.
+
+
+ public
+ static createFromByteArray ( array<string|int, mixed> $byteArray ) : ParseBytes
+
+
+
+ Parameters
+
+
+ $byteArray
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseBytes
+ —
+
+
+
+
+
+
+ setBase64Data()
+
+
+
+
+ Decodes and unpacks a given base64 encoded array of data
+
+
+ private
+ setBase64Data ( string $base64Data ) : mixed
+
+
+
+ Parameters
+
+
+ $base64Data
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setByteArray()
+
+
+
+
+ Sets a new byte array
+
+
+ private
+ setByteArray ( array<string|int, mixed> $byteArray ) : mixed
+
+
+
+ Parameters
+
+
+ $byteArray
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseClient.html b/classes/Parse-ParseClient.html
new file mode 100644
index 00000000..8800859d
--- /dev/null
+++ b/classes/Parse-ParseClient.html
@@ -0,0 +1,2331 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseClient
+
+
+
+
+
+
+
+
+
+ Class ParseClient - Main class for Parse initialization and communication.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ VERSION_STRING
+
+ = '2.4.0'
+
+Constant for version string to include with requests.
+
+
+ $applicationId
+
+ : string
+
+The application id.
+
+
+ $caFile
+
+ : string
+
+CA file holding one or more certificates to verify a peer
+
+
+ $connectionTimeout
+
+ : int
+
+Number of seconds to wait while trying to connect. Use 0 to wait indefinitely.
+
+
+ $enableCurlExceptions
+
+ : bool
+
+Enable/Disable curl exceptions.
+
+
+ $forceRevocableSession
+
+ : bool
+
+Are revocable sessions enabled?
+
+
+ $httpClient
+
+ : ParseHttpable
+
+Http client for requests
+
+
+ $httpOptions
+
+ : array<string|int, mixed>
+
+Options to pass to the http client.
+
+
+ $masterKey
+
+ : string
+
+The Master Key.
+
+
+ $mountPath
+
+ : string
+
+The mount path for the current parse server
+
+
+ $restKey
+
+ : string|null
+
+The REST API Key.
+
+
+ $serverURL
+
+ : string
+
+The remote Parse Server to communicate with
+
+
+ $storage
+
+ : ParseStorageInterface
+
+The object for managing persistence.
+
+
+ $timeout
+
+ : int
+
+Maximum number of seconds of request/response operation.
+
+
+ _clearMountPath()
+
+ : mixed
+
+Clears the existing mount path.
+
+
+ _clearServerURL()
+
+ : mixed
+
+Clears the existing server url.
+
+
+ _decode()
+
+ : mixed
+
+ParseClient::_decode, internal method for decoding server responses.
+
+
+ _encode()
+
+ : mixed
+
+ParseClient::_encode, internal method for encoding object values.
+
+
+ _encodeArray()
+
+ : array<string|int, mixed>
+
+ParseClient::_encodeArray, internal method for encoding arrays.
+
+
+ _request()
+
+ : mixed
+
+Parse\Client::_request, internal method for communicating with Parse.
+
+
+ _unsetStorage()
+
+ : mixed
+
+ParseClient::_unsetStorage, will null the storage object.
+
+
+ clearHttpClient()
+
+ : mixed
+
+Clears the currently set http client
+
+
+ enableRevocableSessions()
+
+ : mixed
+
+Allows an existing application to start using revocable sessions, without forcing
+all requests for the app to use them. After calling this method, login & signup requests
+will be returned a unique and revocable session token.
+
+
+ getAPIUrl()
+
+ : string
+
+Get remote Parse API url.
+
+
+ getHttpClient()
+
+ : ParseHttpable
+
+Gets the current Http client, or creates one to suite the need
+
+
+ getMountPath()
+
+ : string
+
+Get remote Parse API mount path
+
+
+ getProperDateFormat()
+
+ : string
+
+Get a date value in the format stored on Parse.
+
+
+ getPushDateFormat()
+
+ : string
+
+Get a date value in the format to use in Local Push Scheduling on Parse.
+
+
+ getServerHealth()
+
+ : array<string|int, mixed>
+
+Returns an array of information regarding the current server's health
+
+
+ getStorage()
+
+ : ParseStorageInterface
+
+ParseClient::getStorage, will return the storage object used for
+persistence.
+
+
+ initialize()
+
+ : mixed
+
+Parse\Client::initialize, must be called before using Parse features.
+
+
+ setCAFile()
+
+ : mixed
+
+Sets a CA file to validate peers of our requests with
+
+
+ setConnectionTimeout()
+
+ : mixed
+
+Sets number of seconds to wait while trying to connect. Use 0 to wait indefinitely, null to default behaviour.
+
+
+ setHttpClient()
+
+ : mixed
+
+Sets the Http client to use for requests
+
+
+ setHttpOptions()
+
+ : mixed
+
+Sets http options to pass to the http client
+For curl
+https://www.php.net/manual/en/function.curl-setopt.php
+
+
+ setServerURL()
+
+ : mixed
+
+ParseClient::setServerURL, to change the Parse Server address & mount path for this app
+
+
+ setStorage()
+
+ : mixed
+
+ParseClient::setStorage, will update the storage object used for
+persistence.
+
+
+ setTimeout()
+
+ : mixed
+
+Sets maximum number of seconds of request/response operation.
+
+
+ assertParseInitialized()
+
+ : mixed
+
+Asserts that the sdk has been initialized with a valid application id
+
+
+ assertServerInitialized()
+
+ : mixed
+
+Asserts that the server and mount path have been initialized
+
+
+ createRequestUrl()
+
+ : string
+
+Creates an absolute request url from a relative one
+
+
+ getLastJSONErrorMsg()
+
+ : string
+
+Returns the last error message from a failed json_decode call
+
+
+ getPreparedHttpClient()
+
+ : ParseHttpable
+
+Returns an httpClient prepared for use
+
+
+
+
+
+
+
+
+
+
+ VERSION_STRING
+
+
+
+
+
+ Constant for version string to include with requests.
+
+
+ public
+ string
+ VERSION_STRING
+ = '2.4.0'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $applicationId
+
+
+
+
+
+
+ The application id.
+
+
+ private
+ static string
+ $applicationId
+
+
+
+
+
+
+
+
+
+ $caFile
+
+
+
+
+
+
+ CA file holding one or more certificates to verify a peer
+
+
+ private
+ static string
+ $caFile
+
+
+
+
+
+
+
+
+
+ $connectionTimeout
+
+
+
+
+
+
+ Number of seconds to wait while trying to connect. Use 0 to wait indefinitely.
+
+
+ private
+ static int
+ $connectionTimeout
+
+
+
+
+
+
+
+
+
+ $enableCurlExceptions
+
+
+
+
+
+
+ Enable/Disable curl exceptions.
+
+
+ private
+ static bool
+ $enableCurlExceptions
+
+
+
+
+
+
+
+
+
+ $forceRevocableSession
+
+
+
+
+
+
+ Are revocable sessions enabled?
+
+
+ private
+ static bool
+ $forceRevocableSession
+ = false
+
+
+
+
+
+
+
+
+ $httpClient
+
+
+
+
+
+
+ Http client for requests
+
+
+ private
+ static ParseHttpable
+ $httpClient
+
+
+
+
+
+
+
+
+
+ $httpOptions
+
+
+
+
+
+
+ Options to pass to the http client.
+
+
+ private
+ static array<string|int, mixed>
+ $httpOptions
+
+
+
+
+
+
+
+
+
+ $masterKey
+
+
+
+
+
+
+ The Master Key.
+
+
+ private
+ static string
+ $masterKey
+
+
+
+
+
+
+
+
+
+ $mountPath
+
+
+
+
+
+
+ The mount path for the current parse server
+
+
+ private
+ static string
+ $mountPath
+ = null
+
+
+
+
+
+
+
+
+ $restKey
+
+
+
+
+
+
+ The REST API Key.
+
+
+ private
+ static string|null
+ $restKey
+
+
+
+
+
+
+
+
+
+ $serverURL
+
+
+
+
+
+
+ The remote Parse Server to communicate with
+
+
+ private
+ static string
+ $serverURL
+ = null
+
+
+
+
+
+
+
+
+ $storage
+
+
+
+
+
+
+ The object for managing persistence.
+
+
+ private
+ static ParseStorageInterface
+ $storage
+
+
+
+
+
+
+
+
+
+ $timeout
+
+
+
+
+
+
+ Maximum number of seconds of request/response operation.
+
+
+ private
+ static int
+ $timeout
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _clearMountPath()
+
+
+
+
+ Clears the existing mount path.
+
+
+ public
+ static _clearMountPath ( ) : mixed
+
+ Used primarily for testing purposes.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _clearServerURL()
+
+
+
+
+ Clears the existing server url.
+
+
+ public
+ static _clearServerURL ( ) : mixed
+
+ Used primarily for testing purposes.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _decode()
+
+
+
+
+ ParseClient::_decode, internal method for decoding server responses.
+
+
+ public
+ static _decode ( mixed $data ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ ParseClient::_encode, internal method for encoding object values.
+
+
+ public
+ static _encode ( mixed $value , bool $allowParseObjects ) : mixed
+
+
+
+ Parameters
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+ $allowParseObjects
+ : bool
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encodeArray()
+
+
+
+
+ ParseClient::_encodeArray, internal method for encoding arrays.
+
+
+ public
+ static _encodeArray ( array<string|int, mixed> $value , bool $allowParseObjects ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $value
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $allowParseObjects
+ : bool
+
+
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _request()
+
+
+
+
+ Parse\Client::_request, internal method for communicating with Parse.
+
+
+ public
+ static _request ( string $method , string $relativeUrl [ , null $sessionToken = null ] [ , null $data = null ] [ , bool $useMasterKey = false ] [ , string $contentType = 'application/json' ] [ , bool $returnHeaders = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $method
+ : string
+
+
+ HTTP Method for this request.
+
+
+
+
+ $relativeUrl
+ : string
+
+
+
+
+
+
+ $sessionToken
+ : null
+ = null
+
+
+
+
+
+ $data
+ : null
+ = null
+
+ Data to provide with the request.
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $contentType
+ : string
+ = 'application/json'
+
+ The content type for this request, default is application/json
+
+
+
+
+ $returnHeaders
+ : bool
+ = false
+
+ Allow to return response headers
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ Result from Parse API Call.
+
+
+
+
+
+
+ _unsetStorage()
+
+
+
+
+ ParseClient::_unsetStorage, will null the storage object.
+
+
+ public
+ static _unsetStorage ( ) : mixed
+
+ Without some ability to clear the storage objects, all test cases would
+use the first assigned storage object.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ clearHttpClient()
+
+
+
+
+ Clears the currently set http client
+
+
+ public
+ static clearHttpClient ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ enableRevocableSessions()
+
+
+
+
+ Allows an existing application to start using revocable sessions, without forcing
+all requests for the app to use them. After calling this method, login & signup requests
+will be returned a unique and revocable session token.
+
+
+ public
+ static enableRevocableSessions ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getAPIUrl()
+
+
+
+
+ Get remote Parse API url.
+
+
+ public
+ static getAPIUrl ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getHttpClient()
+
+
+
+
+ Gets the current Http client, or creates one to suite the need
+
+
+ public
+ static getHttpClient ( ) : ParseHttpable
+
+
+
+
+
+
+ Return values
+ ParseHttpable
+ —
+
+
+
+
+
+
+ getMountPath()
+
+
+
+
+ Get remote Parse API mount path
+
+
+ public
+ static getMountPath ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+
+
+ Get a date value in the format stored on Parse.
+
+
+ public
+ static getProperDateFormat ( DateTime $value ) : string
+
+ All the SDKs do some slightly different date handling.
+PHP provides 6 digits for the microseconds (u) so we have to chop 3 off.
+
+
+ Parameters
+
+
+ $value
+ : DateTime
+
+
+ DateTime value to format.
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+
+
+ Get a date value in the format to use in Local Push Scheduling on Parse.
+
+
+ public
+ static getPushDateFormat ( DateTime $value [ , bool $local = false ] ) : string
+
+ All the SDKs do some slightly different date handling.
+Format from Parse doc: an ISO 8601 date without a time zone, i.e. 2014-10-16T12:00:00 .
+
+
+ Parameters
+
+
+ $value
+ : DateTime
+
+
+ DateTime value to format.
+
+
+
+
+ $local
+ : bool
+ = false
+
+ Whether to return the local push time
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getServerHealth()
+
+
+
+
+ Returns an array of information regarding the current server's health
+
+
+ public
+ static getServerHealth ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getStorage()
+
+
+
+
+ ParseClient::getStorage, will return the storage object used for
+persistence.
+
+
+ public
+ static getStorage ( ) : ParseStorageInterface
+
+
+
+
+
+
+ Return values
+ ParseStorageInterface
+ —
+
+
+
+
+
+
+ initialize()
+
+
+
+
+ Parse\Client::initialize, must be called before using Parse features.
+
+
+ public
+ static initialize ( string $app_id , string $rest_key , string $master_key [ , bool $enableCurlExceptions = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $app_id
+ : string
+
+
+
+
+
+
+ $rest_key
+ : string
+
+
+
+
+
+
+ $master_key
+ : string
+
+
+
+
+
+
+ $enableCurlExceptions
+ : bool
+ = true
+
+ Enable or disable Parse curl exceptions
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setCAFile()
+
+
+
+
+ Sets a CA file to validate peers of our requests with
+
+
+ public
+ static setCAFile ( string $caFile ) : mixed
+
+
+
+ Parameters
+
+
+ $caFile
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setConnectionTimeout()
+
+
+
+
+ Sets number of seconds to wait while trying to connect. Use 0 to wait indefinitely, null to default behaviour.
+
+
+ public
+ static setConnectionTimeout ( int|null $connectionTimeout ) : mixed
+
+
+
+ Parameters
+
+
+ $connectionTimeout
+ : int|null
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setHttpClient()
+
+
+
+
+ Sets the Http client to use for requests
+
+
+ public
+ static setHttpClient ( ParseHttpable $httpClient ) : mixed
+
+
+
+ Parameters
+
+
+ $httpClient
+ : ParseHttpable
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setHttpOptions()
+
+
+
+
+ Sets http options to pass to the http client
+For curl
+https://www.php.net/manual/en/function.curl-setopt.php
+
+
+ public
+ static setHttpOptions ( array<string|int, mixed> $httpOptions ) : mixed
+
+ For stream context
+https://www.php.net/manual/en/context.php
+
+
+ Parameters
+
+
+ $httpOptions
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setServerURL()
+
+
+
+
+ ParseClient::setServerURL, to change the Parse Server address & mount path for this app
+
+
+ public
+ static setServerURL ( string $serverURL , string $mountPath ) : mixed
+
+
+
+ Parameters
+
+
+ $serverURL
+ : string
+
+
+
+
+
+
+ $mountPath
+ : string
+
+
+ The mount path for this server
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setStorage()
+
+
+
+
+ ParseClient::setStorage, will update the storage object used for
+persistence.
+
+
+ public
+ static setStorage ( ParseStorageInterface $storageObject ) : mixed
+
+
+
+ Parameters
+
+
+ $storageObject
+ : ParseStorageInterface
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setTimeout()
+
+
+
+
+ Sets maximum number of seconds of request/response operation.
+
+
+ public
+ static setTimeout ( int|null $timeout ) : mixed
+
+ Use 0 to wait indefinitely, null to default behaviour.
+
+
+ Parameters
+
+
+ $timeout
+ : int|null
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ assertParseInitialized()
+
+
+
+
+ Asserts that the sdk has been initialized with a valid application id
+
+
+ private
+ static assertParseInitialized ( ) : mixed
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ assertServerInitialized()
+
+
+
+
+ Asserts that the server and mount path have been initialized
+
+
+ private
+ static assertServerInitialized ( ) : mixed
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ createRequestUrl()
+
+
+
+
+ Creates an absolute request url from a relative one
+
+
+ private
+ static createRequestUrl ( string $relativeUrl ) : string
+
+
+
+ Parameters
+
+
+ $relativeUrl
+ : string
+
+
+ Relative url to create full request url from
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getLastJSONErrorMsg()
+
+
+
+
+ Returns the last error message from a failed json_decode call
+
+
+ private
+ static getLastJSONErrorMsg ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getPreparedHttpClient()
+
+
+
+
+ Returns an httpClient prepared for use
+
+
+ private
+ static getPreparedHttpClient ( ) : ParseHttpable
+
+
+
+
+
+
+ Return values
+ ParseHttpable
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseCloud.html b/classes/Parse-ParseCloud.html
new file mode 100644
index 00000000..4718a8d1
--- /dev/null
+++ b/classes/Parse-ParseCloud.html
@@ -0,0 +1,407 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseCloud
+
+
+
+
+
+
+
+
+
+ Class ParseCloud - Facilitates calling Parse Cloud functions.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ getJobsData()
+
+ : array<string|int, mixed>
+
+Gets data for the current set of cloud jobs
+
+
+ getJobStatus()
+
+ : array<string|int, mixed>|ParseObject
+
+Gets job status by id
+
+
+ run()
+
+ : mixed
+
+Makes a call to a Cloud function.
+
+
+ startJob()
+
+ : string
+
+Starts a given cloud job, which will process asynchronously
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getJobsData()
+
+
+
+
+ Gets data for the current set of cloud jobs
+
+
+ public
+ static getJobsData ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getJobStatus()
+
+
+
+
+ Gets job status by id
+
+
+ public
+ static getJobStatus ( string $jobStatusId ) : array<string|int, mixed>|ParseObject
+
+
+
+ Parameters
+
+
+ $jobStatusId
+ : string
+
+
+ Id of the job status to return
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>|ParseObject
+ —
+
+
+
+
+
+
+ run()
+
+
+
+
+ Makes a call to a Cloud function.
+
+
+ public
+ static run ( string $name [ , array<string|int, mixed> $data = [] ] [ , bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $name
+ : string
+
+
+
+
+
+
+ $data
+ : array<string|int, mixed>
+ = []
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ startJob()
+
+
+
+
+ Starts a given cloud job, which will process asynchronously
+
+
+ public
+ static startJob ( string $jobName [ , array<string|int, mixed> $data = [] ] ) : string
+
+
+
+ Parameters
+
+
+ $jobName
+ : string
+
+
+
+
+
+
+ $data
+ : array<string|int, mixed>
+ = []
+
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+ Id for tracking job status
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseConfig.html b/classes/Parse-ParseConfig.html
new file mode 100644
index 00000000..58398af7
--- /dev/null
+++ b/classes/Parse-ParseConfig.html
@@ -0,0 +1,568 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseConfig
+
+
+
+
+
+
+
+
+
+ Class ParseConfig - For accessing Parse Config settings.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $currentConfig
+
+ : array<string|int, mixed>
+
+Current configuration data
+
+
+ __construct()
+
+ : mixed
+
+ParseConfig constructor.
+
+
+ escape()
+
+ : string|null
+
+Gets a config value with html characters encoded
+
+
+ get()
+
+ : mixed
+
+Gets a config value
+
+
+ getConfig()
+
+ : array<string|int, mixed>
+
+Gets the current config
+
+
+ save()
+
+ : bool
+
+Saves the current config
+
+
+ set()
+
+ : mixed
+
+Sets a config value
+
+
+ setConfig()
+
+ : mixed
+
+Sets the config
+
+
+
+
+
+
+
+
+
+
+
+
+ $currentConfig
+
+
+
+
+
+
+ Current configuration data
+
+
+ private
+ array<string|int, mixed>
+ $currentConfig
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ ParseConfig constructor.
+
+
+ public
+ __construct ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ escape()
+
+
+
+
+ Gets a config value with html characters encoded
+
+
+ public
+ escape ( string $key ) : string|null
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ get()
+
+
+
+
+ Gets a config value
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getConfig()
+
+
+
+
+ Gets the current config
+
+
+ public
+ getConfig ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Saves the current config
+
+
+ public
+ save ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Sets a config value
+
+
+ public
+ set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setConfig()
+
+
+
+
+ Sets the config
+
+
+ protected
+ setConfig ( array<string|int, mixed> $config ) : mixed
+
+
+
+ Parameters
+
+
+ $config
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseException.html b/classes/Parse-ParseException.html
new file mode 100644
index 00000000..1cdf4c25
--- /dev/null
+++ b/classes/Parse-ParseException.html
@@ -0,0 +1,253 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseException
+
+
+ extends Exception
+
+
+
+
+
+
+
+
+
+ Class ParseException - Wrapper for \Exception class.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ __construct()
+
+ : mixed
+
+Constructs a Parse\Exception.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Constructs a Parse\Exception.
+
+
+ public
+ __construct ( string $message , int $code [ , Exception $previous = null ] ) : mixed
+
+
+
+ Parameters
+
+
+ $message
+ : string
+
+
+ Message for the Exception.
+
+
+
+
+ $code
+ : int
+
+
+
+
+
+
+ $previous
+ : Exception
+ = null
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseFile.html b/classes/Parse-ParseFile.html
new file mode 100644
index 00000000..c64d5bc4
--- /dev/null
+++ b/classes/Parse-ParseFile.html
@@ -0,0 +1,1085 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseFile
+
+
+
+
+
+ implements
+ Encodable
+
+
+
+
+
+ Class ParseFile - Representation of a Parse File object.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ Encodable
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $data
+
+ : string
+
+The data.
+
+
+ $mimeType
+
+ : string
+
+The mime type.
+
+
+ $name
+
+ : string
+
+The filename.
+
+
+ $url
+
+ : string
+
+The URL of file data stored on Parse.
+
+
+ _createFromServer()
+
+ : ParseFile
+
+Internal method used when constructing a Parse File from Parse.
+
+
+ _encode()
+
+ : array<string|int, mixed>
+
+Encode to associative array representation.
+
+
+ createFromData()
+
+ : ParseFile
+
+Create a Parse File from data
+i.e. $file = ParseFile::createFromData('hello world!', 'hi.txt');.
+
+
+ createFromFile()
+
+ : ParseFile
+
+Create a Parse File from the contents of a local file
+i.e. $file = ParseFile::createFromFile('/tmp/foo.bar',
+'foo.bar');.
+
+
+ delete()
+
+ : mixed
+
+Send a REST request to delete the ParseFile.
+
+
+ getData()
+
+ : mixed
+
+Return the data for the file, downloading it if not already present.
+
+
+ getMimeType()
+
+ : string|null
+
+Return the mimeType for the file, if set.
+
+
+ getName()
+
+ : string
+
+Return the name for the file
+Upon saving to Parse, the name will change to a unique identifier.
+
+
+ getURL()
+
+ : string|null
+
+Return the URL for the file, if saved.
+
+
+ save()
+
+ : bool
+
+Uploads the file contents to Parse, if not saved.
+
+
+ download()
+
+ : mixed
+
+Attempts to download and return the contents of a ParseFile's url
+
+
+ getMimeTypeForExtension()
+
+ : string
+
+Returns the mimetype for a given extension
+
+
+ upload()
+
+ : mixed
+
+Internally uploads the contents of the file to a Parse Server
+
+
+
+
+
+
+
+
+
+
+
+
+ $data
+
+
+
+
+
+
+ The data.
+
+
+ private
+ string
+ $data
+
+
+
+
+
+
+
+
+
+ $mimeType
+
+
+
+
+
+
+ The mime type.
+
+
+ private
+ string
+ $mimeType
+
+
+
+
+
+
+
+
+
+ $name
+
+
+
+
+
+
+ The filename.
+
+
+ private
+ string
+ $name
+
+
+
+
+
+
+
+
+
+ $url
+
+
+
+
+
+
+ The URL of file data stored on Parse.
+
+
+ private
+ string
+ $url
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _createFromServer()
+
+
+
+
+ Internal method used when constructing a Parse File from Parse.
+
+
+ public
+ static _createFromServer ( string $name , string $url ) : ParseFile
+
+
+
+ Parameters
+
+
+ $name
+ : string
+
+
+
+
+
+
+ $url
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseFile
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Encode to associative array representation.
+
+
+ public
+ _encode ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ createFromData()
+
+
+
+
+ Create a Parse File from data
+i.e. $file = ParseFile::createFromData('hello world!', 'hi.txt');.
+
+
+ public
+ static createFromData ( mixed $contents , string $name [ , string $mimeType = null ] ) : ParseFile
+
+
+
+ Parameters
+
+
+ $contents
+ : mixed
+
+
+
+
+
+
+ $name
+ : string
+
+
+ The file name on Parse, can be used to detect mimeType
+
+
+
+
+ $mimeType
+ : string
+ = null
+
+ Optional, The mime-type to use when saving the file
+
+
+
+
+
+
+
+ Return values
+ ParseFile
+ —
+
+
+
+
+
+
+ createFromFile()
+
+
+
+
+ Create a Parse File from the contents of a local file
+i.e. $file = ParseFile::createFromFile('/tmp/foo.bar',
+'foo.bar');.
+
+
+ public
+ static createFromFile ( string $path , string $name [ , string $mimeType = null ] ) : ParseFile
+
+
+
+ Parameters
+
+
+ $path
+ : string
+
+
+
+
+
+
+ $name
+ : string
+
+
+ Filename to use on Parse, can be used to detect mimeType
+
+
+
+
+ $mimeType
+ : string
+ = null
+
+ Optional, The mime-type to use when saving the file
+
+
+
+
+
+
+
+ Return values
+ ParseFile
+ —
+
+
+
+
+
+
+ delete()
+
+
+
+
+ Send a REST request to delete the ParseFile.
+
+
+ public
+ delete ( [ bool $useMasterKey = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = true
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getData()
+
+
+
+
+ Return the data for the file, downloading it if not already present.
+
+
+ public
+ getData ( ) : mixed
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getMimeType()
+
+
+
+
+ Return the mimeType for the file, if set.
+
+
+ public
+ getMimeType ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ getName()
+
+
+
+
+ Return the name for the file
+Upon saving to Parse, the name will change to a unique identifier.
+
+
+ public
+ getName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getURL()
+
+
+
+
+ Return the URL for the file, if saved.
+
+
+ public
+ getURL ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Uploads the file contents to Parse, if not saved.
+
+
+ public
+ save ( [ bool $useMasterKey = false ] ) : bool
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ download()
+
+
+
+
+ Attempts to download and return the contents of a ParseFile's url
+
+
+ private
+ download ( ) : mixed
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getMimeTypeForExtension()
+
+
+
+
+ Returns the mimetype for a given extension
+
+
+ private
+ getMimeTypeForExtension ( string $extension ) : string
+
+
+
+ Parameters
+
+
+ $extension
+ : string
+
+
+ Extension to return type for
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ upload()
+
+
+
+
+ Internally uploads the contents of the file to a Parse Server
+
+
+ private
+ upload ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ Result from Parse API Call.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseGeoPoint.html b/classes/Parse-ParseGeoPoint.html
new file mode 100644
index 00000000..95fa0013
--- /dev/null
+++ b/classes/Parse-ParseGeoPoint.html
@@ -0,0 +1,597 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseGeoPoint
+
+
+
+
+
+ implements
+ Encodable
+
+
+
+
+
+ Class ParseGeoPoint - Representation of a Parse GeoPoint object.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ Encodable
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $latitude
+
+ : float
+
+The latitude.
+
+
+ $longitude
+
+ : float
+
+The longitude.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse GeoPoint object.
+
+
+ _encode()
+
+ : array<string|int, mixed>
+
+Encode to associative array representation.
+
+
+ getLatitude()
+
+ : float
+
+Returns the Latitude value for this GeoPoint.
+
+
+ getLongitude()
+
+ : float
+
+Returns the Longitude value for this GeoPoint.
+
+
+ setLatitude()
+
+ : mixed
+
+Set the Latitude value for this GeoPoint.
+
+
+ setLongitude()
+
+ : mixed
+
+Set the Longitude value for this GeoPoint.
+
+
+
+
+
+
+
+
+
+
+
+
+ $latitude
+
+
+
+
+
+
+ The latitude.
+
+
+ private
+ float
+ $latitude
+
+
+
+
+
+
+
+
+
+ $longitude
+
+
+
+
+
+
+ The longitude.
+
+
+ private
+ float
+ $longitude
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse GeoPoint object.
+
+
+ public
+ __construct ( float $lat , float $lon ) : mixed
+
+
+
+ Parameters
+
+
+ $lat
+ : float
+
+
+
+
+
+
+ $lon
+ : float
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Encode to associative array representation.
+
+
+ public
+ _encode ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getLatitude()
+
+
+
+
+ Returns the Latitude value for this GeoPoint.
+
+
+ public
+ getLatitude ( ) : float
+
+
+
+
+
+
+ Return values
+ float
+ —
+
+
+
+
+
+
+ getLongitude()
+
+
+
+
+ Returns the Longitude value for this GeoPoint.
+
+
+ public
+ getLongitude ( ) : float
+
+
+
+
+
+
+ Return values
+ float
+ —
+
+
+
+
+
+
+ setLatitude()
+
+
+
+
+ Set the Latitude value for this GeoPoint.
+
+
+ public
+ setLatitude ( float $lat ) : mixed
+
+
+
+ Parameters
+
+
+ $lat
+ : float
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setLongitude()
+
+
+
+
+ Set the Longitude value for this GeoPoint.
+
+
+ public
+ setLongitude ( float $lon ) : mixed
+
+
+
+ Parameters
+
+
+ $lon
+ : float
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseHooks.html b/classes/Parse-ParseHooks.html
new file mode 100644
index 00000000..8e3311cb
--- /dev/null
+++ b/classes/Parse-ParseHooks.html
@@ -0,0 +1,846 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseHooks
+
+
+
+
+
+
+
+
+
+ Class ParseHooks - Representation of a Parse Hooks object.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ createFunction()
+
+ : array<string|int, mixed>
+
+Create a new function webhook.
+
+
+ createTrigger()
+
+ : array<string|int, mixed>
+
+Create a new trigger webhook.
+
+
+ deleteFunction()
+
+ : array<string|int, mixed>
+
+Delete a function webhook.
+
+
+ deleteTrigger()
+
+ : array<string|int, mixed>
+
+Delete a trigger webhook.
+
+
+ editFunction()
+
+ : array<string|int, mixed>
+
+Edit the url of a function webhook that was already created.
+
+
+ editTrigger()
+
+ : array<string|int, mixed>
+
+Edit the url of a trigger webhook that was already crated.
+
+
+ fetchFunction()
+
+ : array<string|int, mixed>
+
+Fetch a single cloud function with a given name.
+
+
+ fetchFunctions()
+
+ : array<string|int, mixed>
+
+Fetch the list of all cloud functions.
+
+
+ fetchTrigger()
+
+ : array<string|int, mixed>
+
+Fetch a single cloud trigger.
+
+
+ fetchTriggers()
+
+ : array<string|int, mixed>
+
+Fetch the list of all cloud triggers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ createFunction()
+
+
+
+
+ Create a new function webhook.
+
+
+ public
+ createFunction ( string $functionName , string $url ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $functionName
+ : string
+
+
+
+
+
+
+ $url
+ : string
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ createTrigger()
+
+
+
+
+ Create a new trigger webhook.
+
+
+ public
+ createTrigger ( string $className , string $triggerName , string $url ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+
+
+
+
+ $triggerName
+ : string
+
+
+
+
+
+
+ $url
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ deleteFunction()
+
+
+
+
+ Delete a function webhook.
+
+
+ public
+ deleteFunction ( string $functionName ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $functionName
+ : string
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ deleteTrigger()
+
+
+
+
+ Delete a trigger webhook.
+
+
+ public
+ deleteTrigger ( string $className , string $triggerName ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+
+
+
+
+ $triggerName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ editFunction()
+
+
+
+
+ Edit the url of a function webhook that was already created.
+
+
+ public
+ editFunction ( string $functionName , string $url ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $functionName
+ : string
+
+
+
+
+
+
+ $url
+ : string
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ editTrigger()
+
+
+
+
+ Edit the url of a trigger webhook that was already crated.
+
+
+ public
+ editTrigger ( string $className , string $triggerName , string $url ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+
+
+
+
+ $triggerName
+ : string
+
+
+
+
+
+
+ $url
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchFunction()
+
+
+
+
+ Fetch a single cloud function with a given name.
+
+
+ public
+ fetchFunction ( string $functionName ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $functionName
+ : string
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchFunctions()
+
+
+
+
+ Fetch the list of all cloud functions.
+
+
+ public
+ fetchFunctions ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchTrigger()
+
+
+
+
+ Fetch a single cloud trigger.
+
+
+ public
+ fetchTrigger ( string $className , string $triggerName ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+
+
+
+
+ $triggerName
+ : string
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchTriggers()
+
+
+
+
+ Fetch the list of all cloud triggers.
+
+
+ public
+ fetchTriggers ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseInstallation.html b/classes/Parse-ParseInstallation.html
new file mode 100644
index 00000000..d6af0a3e
--- /dev/null
+++ b/classes/Parse-ParseInstallation.html
@@ -0,0 +1,5185 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseInstallation
+
+
+ extends ParseObject
+
+
+
+
+
+
+
+
+
+ Class ParseInstallation - Representation of an Installation stored on Parse.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $parseClassName
+
+ : string
+
+Parse Class name
+
+
+ $operationSet
+
+ : array<string|int, mixed>
+
+Set of unsaved operations.
+
+
+ $serverData
+
+ : array<string|int, mixed>
+
+Data as it exists on the server.
+
+
+ $className
+
+ : string
+
+Class name for data on Parse.
+
+
+ $createdAt
+
+ : DateTime
+
+Timestamp when object was created.
+
+
+ $dataAvailability
+
+ : array<string|int, mixed>
+
+Determine if data available for a given key or not.
+
+
+ $estimatedData
+
+ : array<string|int, mixed>
+
+Estimated value of applying operationSet to serverData.
+
+
+ $hasBeenFetched
+
+ : bool
+
+Whether the object has been fully fetched from Parse.
+
+
+ $objectId
+
+ : string
+
+Unique identifier on Parse.
+
+
+ $registeredSubclasses
+
+ : array<string|int, mixed>
+
+Holds the registered subclasses and Parse class names.
+
+
+ $updatedAt
+
+ : DateTime
+
+Timestamp when object was last updated.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse Object.
+
+
+ __get()
+
+ : mixed
+
+Getter to catch direct property calls and pass them to the get function.
+
+
+ __isset()
+
+ : bool
+
+Magic handler to catch isset calls to object properties.
+
+
+ __set()
+
+ : mixed
+
+Setter to catch property calls and protect certain fields.
+
+
+ _encode()
+
+ : string
+
+Return a JSON encoded value of the object.
+
+
+ _mergeAfterFetch()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+ : mixed
+
+Merges data received from the server with a given selected keys.
+
+
+ _mergeMagicFields()
+
+ : mixed
+
+Handle merging of special fields for the object.
+
+
+ _performOperation()
+
+ : mixed
+
+Perform an operation on an object property.
+
+
+ _toPointer()
+
+ : array<string|int, mixed>
+
+Gets a Pointer referencing this Object.
+
+
+ _unregisterSubclass()
+
+ : mixed
+
+Un-register a subclass.
+
+
+ add()
+
+ : mixed
+
+Add a value to an array property.
+
+
+ addUnique()
+
+ : mixed
+
+Add unique values to an array property.
+
+
+ beforeSave()
+
+ : void
+
+Before save stub
+
+
+ clear()
+
+ : mixed
+
+Clear all keys on this object by creating delete operations
+for each key.
+
+
+ create()
+
+ : ParseObject
+
+Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ decode()
+
+ : ParseObject
+
+Decodes and returns a ParseObject from an encoded object
+
+
+ delete()
+
+ : mixed
+
+Delete a key from an object.
+
+
+ destroy()
+
+ : mixed
+
+Delete the object from Parse.
+
+
+ destroyAll()
+
+ : mixed
+
+Delete an array of objects.
+
+
+ encode()
+
+ : string
+
+Returns a JSON encoded array of a ParseObject
+
+
+ exists()
+
+ : bool
+
+Returns true if this object exists on the Server
+
+
+ fetch()
+
+ : ParseObject
+
+Fetch the whole object from the server and update the local object.
+
+
+ fetchAll()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse objects from the server.
+
+
+ fetchAllWithInclude()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ fetchWithInclude()
+
+ : ParseObject
+
+Fetch an array of Parse objects from the server.
+
+
+ get()
+
+ : mixed
+
+Get current value for an object property.
+
+
+ getACL()
+
+ : ParseACL
+
+Get the ACL assigned to the object.
+
+
+ getAllKeys()
+
+ : array<string|int, mixed>
+
+Get values for all keys of an object.
+
+
+ getAppIdentifier()
+
+ : string
+
+Gets the app identifier for this installation
+
+
+ getAppName()
+
+ : string
+
+Get the app name for this installation
+
+
+ getAppVersion()
+
+ : string
+
+Gets the app version of this installation
+
+
+ getBadge()
+
+ : int
+
+Gets the badge number of this installation
+
+
+ getChannels()
+
+ : array<string|int, mixed>
+
+Get channels for this installation
+
+
+ getClassName()
+
+ : string
+
+Get the Parse Class Name for the object.
+
+
+ getCreatedAt()
+
+ : DateTime |null
+
+Get the createdAt for the object, or null if unsaved.
+
+
+ getDeviceToken()
+
+ : string
+
+Gets the device token for this installation
+
+
+ getDeviceType()
+
+ : string
+
+Gets the device type of this installation
+
+
+ getGCMSenderId()
+
+ : string
+
+Gets the GCM sender id of this installation
+
+
+ getInstallationId()
+
+ : string
+
+Gets the installation id for this installation
+
+
+ getLocaleIdentifier()
+
+ : string
+
+Gets the locale id for this installation
+
+
+ getObjectId()
+
+ : string|null
+
+Get the objectId for the object, or null if unsaved.
+
+
+ getParseVersion()
+
+ : string
+
+Gets the parse version for this installation
+
+
+ getPushType()
+
+ : string
+
+Gets the push type of this installation
+
+
+ getRegisteredSubclass()
+
+ : ParseObject
+
+Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ getRelation()
+
+ : ParseRelation
+
+Access or create a Relation value for a key.
+
+
+ getTimeZone()
+
+ : string
+
+Gets the time zone of this installation
+
+
+ getUpdatedAt()
+
+ : DateTime |null
+
+Get the updatedAt for the object, or null if unsaved.
+
+
+ has()
+
+ : bool
+
+Check if the object has a given key.
+
+
+ hasRegisteredSubclass()
+
+ : bool
+
+Check whether there is a subclass registered for a given parse class.
+
+
+ increment()
+
+ : mixed
+
+Increment a numeric key by a certain value.
+
+
+ isDataAvailable()
+
+ : bool
+
+Returns true if the object has been fetched.
+
+
+ isDirty()
+
+ : bool
+
+Check if the object or any of its child objects have unsaved operations.
+
+
+ isKeyDirty()
+
+ : bool
+
+Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ query()
+
+ : ParseQuery
+
+Creates a ParseQuery for the subclass of ParseObject.
+
+
+ registerSubclass()
+
+ : mixed
+
+Register a subclass. Should be called before any other Parse functions.
+
+
+ remove()
+
+ : mixed
+
+Remove a value from an array for an object key.
+
+
+ revert()
+
+ : mixed
+
+Revert all unsaved operations.
+
+
+ save()
+
+ : mixed
+
+Save Object to Parse.
+
+
+ saveAll()
+
+ : mixed
+
+Save all the objects in the provided array.
+
+
+ set()
+
+ : mixed
+
+Validate and set a value for an object key.
+
+
+ setACL()
+
+ : mixed
+
+Set ACL for this object.
+
+
+ setArray()
+
+ : mixed
+
+Set an array value for an object key.
+
+
+ setAssociativeArray()
+
+ : mixed
+
+Set an associative array value for an object key.
+
+
+ _isDirty()
+
+ : bool
+
+Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ rebuildEstimatedData()
+
+ : mixed
+
+Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ _isDataAvailable()
+
+ : bool
+
+Returns whether or not data is available for a given key
+
+
+ applyOperations()
+
+ : mixed
+
+Apply operations to a target object.
+
+
+ canBeSerialized()
+
+ : bool
+
+Determine if the current object can be serialized for saving.
+
+
+ canBeSerializedAsValue()
+
+ : bool
+
+Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ deepSave()
+
+ : mixed
+
+Save object and unsaved children within.
+
+
+ destroyBatch()
+
+ : array<string|int, mixed>
+
+Destroy batch of objects.
+
+
+ findUnsavedChildren()
+
+ : mixed
+
+Find unsaved children inside an object.
+
+
+ getACLWithCopy()
+
+ : ParseACL |null
+
+Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ getSaveJSON()
+
+ : array<string|int, mixed>
+
+Returns JSON object of the unsaved operations.
+
+
+ getSubclass()
+
+ : mixed
+
+Gets the Subclass className if exists, otherwise false.
+
+
+ hasDirtyChildren()
+
+ : bool
+
+Determines whether this object has child objects that are dirty
+
+
+ mergeAfterSave()
+
+ : mixed
+
+Merge server data after a save completes.
+
+
+ mergeFromObject()
+
+ : mixed
+
+Merge data from other object.
+
+
+ mergeFromServer()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ toObjectIdArray()
+
+ : array<string|int, mixed>
+
+Creates an array of object ids from a given array of ParseObjects
+
+
+ traverse()
+
+ : mixed
+
+Traverse object to find children.
+
+
+ updateWithFetchedResults()
+
+ : array<string|int, mixed>
+
+Merges an existing array of objects with their fetched counterparts
+
+
+
+
+
+
+
+
+
+
+
+
+ $parseClassName
+
+
+
+
+
+
+ Parse Class name
+
+
+ public
+ static string
+ $parseClassName
+ = '_Installation'
+
+
+
+
+
+
+
+
+ $operationSet
+
+
+
+
+
+
+ Set of unsaved operations.
+
+
+ protected
+ array<string|int, mixed>
+ $operationSet
+
+
+
+
+
+
+
+
+
+ $serverData
+
+
+
+
+
+
+ Data as it exists on the server.
+
+
+ protected
+ array<string|int, mixed>
+ $serverData
+
+
+
+
+
+
+
+
+
+ $className
+
+
+
+
+
+
+ Class name for data on Parse.
+
+
+ private
+ string
+ $className
+
+
+
+
+
+
+
+
+
+ $createdAt
+
+
+
+
+
+
+ Timestamp when object was created.
+
+
+ private
+ DateTime
+ $createdAt
+
+
+
+
+
+
+
+
+
+ $dataAvailability
+
+
+
+
+
+
+ Determine if data available for a given key or not.
+
+
+ private
+ array<string|int, mixed>
+ $dataAvailability
+
+
+
+
+
+
+
+
+
+ $estimatedData
+
+
+
+
+
+
+ Estimated value of applying operationSet to serverData.
+
+
+ private
+ array<string|int, mixed>
+ $estimatedData
+
+
+
+
+
+
+
+
+
+ $hasBeenFetched
+
+
+
+
+
+
+ Whether the object has been fully fetched from Parse.
+
+
+ private
+ bool
+ $hasBeenFetched
+
+
+
+
+
+
+
+
+
+ $objectId
+
+
+
+
+
+
+ Unique identifier on Parse.
+
+
+ private
+ string
+ $objectId
+
+
+
+
+
+
+
+
+
+ $registeredSubclasses
+
+
+
+
+
+
+ Holds the registered subclasses and Parse class names.
+
+
+ private
+ static array<string|int, mixed>
+ $registeredSubclasses
+ = []
+
+
+
+
+
+
+
+
+ $updatedAt
+
+
+
+
+
+
+ Timestamp when object was last updated.
+
+
+ private
+ DateTime
+ $updatedAt
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse Object.
+
+
+ public
+ __construct ( [ string $className = null ] [ , mixed $objectId = null ] [ , bool $isPointer = false ] ) : mixed
+
+ Creates a pointer object if an objectId is provided,
+otherwise creates a new object.
+
+
+ Parameters
+
+
+ $className
+ : string
+ = null
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : mixed
+ = null
+
+ Object Id for Existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __get()
+
+
+
+
+ Getter to catch direct property calls and pass them to the get function.
+
+
+ public
+ __get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the Object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __isset()
+
+
+
+
+ Magic handler to catch isset calls to object properties.
+
+
+ public
+ __isset ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check on the object.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ __set()
+
+
+
+
+ Setter to catch property calls and protect certain fields.
+
+
+ public
+ __set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Return a JSON encoded value of the object.
+
+
+ public
+ _encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ _mergeAfterFetch()
+
+
+
+
+ Merges data received from the server.
+
+
+ public
+ _mergeAfterFetch ( array<string|int, mixed> $result [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+
+
+
+ Merges data received from the server with a given selected keys.
+
+
+ public
+ _mergeAfterFetchWithSelectedKeys ( array<string|int, mixed> $result , array<string|int, mixed> $selectedKeys ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $selectedKeys
+ : array<string|int, mixed>
+
+
+ Keys to be fetched. Null or empty means all
+data will be fetched.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeMagicFields()
+
+
+
+
+ Handle merging of special fields for the object.
+
+
+ public
+ _mergeMagicFields ( array<string|int, mixed> & $data ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data received from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Perform an operation on an object property.
+
+
+ public
+ _performOperation ( string $key , FieldOperation $operation ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to perform an operation upon.
+
+
+
+
+ $operation
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _toPointer()
+
+
+
+
+ Gets a Pointer referencing this Object.
+
+
+ public
+ _toPointer ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _unregisterSubclass()
+
+
+
+
+ Un-register a subclass.
+
+
+ public
+ static _unregisterSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ add()
+
+
+
+
+ Add a value to an array property.
+
+
+ public
+ add ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object to add a value to.
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ addUnique()
+
+
+
+
+ Add unique values to an array property.
+
+
+ public
+ addUnique ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value list to add uniquely.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ beforeSave()
+
+
+
+
+ Before save stub
+
+
+ public
+ beforeSave ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+ clear()
+
+
+
+
+ Clear all keys on this object by creating delete operations
+for each key.
+
+
+ public
+ clear ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ create()
+
+
+
+
+ Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ public
+ static create ( string $className [ , string $objectId = null ] [ , bool $isPointer = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : string
+ = null
+
+ Unique identifier for existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+ If the object is a pointer.
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ decode()
+
+
+
+
+ Decodes and returns a ParseObject from an encoded object
+
+
+ public
+ static decode ( string|array<string|int, mixed> $encoded ) : ParseObject
+
+
+
+ Parameters
+
+
+ $encoded
+ : string|array<string|int, mixed>
+
+
+ Encoded ParseObject to decode
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ delete()
+
+
+
+
+ Delete a key from an object.
+
+
+ public
+ delete ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove from object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroy()
+
+
+
+
+ Delete the object from Parse.
+
+
+ public
+ destroy ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyAll()
+
+
+
+
+ Delete an array of objects.
+
+
+ public
+ static destroyAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key or not.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ encode()
+
+
+
+
+ Returns a JSON encoded array of a ParseObject
+
+
+ public
+ encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ exists()
+
+
+
+
+ Returns true if this object exists on the Server
+
+
+ public
+ exists ( [ bool $useMasterKey = false ] ) : bool
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ fetch()
+
+
+
+
+ Fetch the whole object from the server and update the local object.
+
+
+ public
+ fetch ( [ bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key and override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ fetchAll()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ static fetchAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchAllWithInclude()
+
+
+
+
+ Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ public
+ static fetchAllWithInclude ( array<string|int, mixed> $objects , mixed $includeKeys [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $includeKeys
+ : mixed
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchWithInclude()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ fetchWithInclude ( array<string|int, mixed> $includeKeys [ , bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $includeKeys
+ : array<string|int, mixed>
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ get()
+
+
+
+
+ Get current value for an object property.
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the estimatedData array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACL()
+
+
+
+
+ Get the ACL assigned to the object.
+
+
+ public
+ getACL ( ) : ParseACL
+
+
+
+
+
+
+ Return values
+ ParseACL
+ —
+
+
+
+
+
+
+ getAllKeys()
+
+
+
+
+ Get values for all keys of an object.
+
+
+ public
+ getAllKeys ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getAppIdentifier()
+
+
+
+
+ Gets the app identifier for this installation
+
+
+ public
+ getAppIdentifier ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getAppName()
+
+
+
+
+ Get the app name for this installation
+
+
+ public
+ getAppName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getAppVersion()
+
+
+
+
+ Gets the app version of this installation
+
+
+ public
+ getAppVersion ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getBadge()
+
+
+
+
+ Gets the badge number of this installation
+
+
+ public
+ getBadge ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ getChannels()
+
+
+
+
+ Get channels for this installation
+
+
+ public
+ getChannels ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getClassName()
+
+
+
+
+ Get the Parse Class Name for the object.
+
+
+ public
+ getClassName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getCreatedAt()
+
+
+
+
+ Get the createdAt for the object, or null if unsaved.
+
+
+ public
+ getCreatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ getDeviceToken()
+
+
+
+
+ Gets the device token for this installation
+
+
+ public
+ getDeviceToken ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getDeviceType()
+
+
+
+
+ Gets the device type of this installation
+
+
+ public
+ getDeviceType ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getGCMSenderId()
+
+
+
+
+ Gets the GCM sender id of this installation
+
+
+ public
+ getGCMSenderId ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getInstallationId()
+
+
+
+
+ Gets the installation id for this installation
+
+
+ public
+ getInstallationId ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getLocaleIdentifier()
+
+
+
+
+ Gets the locale id for this installation
+
+
+ public
+ getLocaleIdentifier ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getObjectId()
+
+
+
+
+ Get the objectId for the object, or null if unsaved.
+
+
+ public
+ getObjectId ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ getParseVersion()
+
+
+
+
+ Gets the parse version for this installation
+
+
+ public
+ getParseVersion ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getPushType()
+
+
+
+
+ Gets the push type of this installation
+
+
+ public
+ getPushType ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getRegisteredSubclass()
+
+
+
+
+ Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ public
+ static getRegisteredSubclass ( string $parseClassName ) : ParseObject
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ getRelation()
+
+
+
+
+ Access or create a Relation value for a key.
+
+
+ public
+ getRelation ( string $key [ , string $className = null ] ) : ParseRelation
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to access the relation for.
+
+
+
+
+ $className
+ : string
+ = null
+
+
+
+
+
+
+
+
+ Return values
+ ParseRelation
+ —
+ The ParseRelation object if the relation already
+exists for the key or can be created for this key.
+
+
+
+
+
+
+ getTimeZone()
+
+
+
+
+ Gets the time zone of this installation
+
+
+ public
+ getTimeZone ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getUpdatedAt()
+
+
+
+
+ Get the updatedAt for the object, or null if unsaved.
+
+
+ public
+ getUpdatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ has()
+
+
+
+
+ Check if the object has a given key.
+
+
+ public
+ has ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ hasRegisteredSubclass()
+
+
+
+
+ Check whether there is a subclass registered for a given parse class.
+
+
+ public
+ static hasRegisteredSubclass ( string $parseClassName ) : bool
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ increment()
+
+
+
+
+ Increment a numeric key by a certain value.
+
+
+ public
+ increment ( string $key [ , int $value = 1 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for numeric value on object to increment.
+
+
+
+
+ $value
+ : int
+ = 1
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ isDataAvailable()
+
+
+
+
+ Returns true if the object has been fetched.
+
+
+ public
+ isDataAvailable ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isDirty()
+
+
+
+
+ Check if the object or any of its child objects have unsaved operations.
+
+
+ public
+ isDirty ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isKeyDirty()
+
+
+
+
+ Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ public
+ isKeyDirty ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ query()
+
+
+
+
+ Creates a ParseQuery for the subclass of ParseObject.
+
+
+ public
+ static query ( ) : ParseQuery
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+
+
+
+
+
+
+ registerSubclass()
+
+
+
+
+ Register a subclass. Should be called before any other Parse functions.
+
+
+ public
+ static registerSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Remove a value from an array for an object key.
+
+
+ public
+ remove ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove the value from on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to remove from the array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ revert()
+
+
+
+
+ Revert all unsaved operations.
+
+
+ public
+ revert ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Save Object to Parse.
+
+
+ public
+ save ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ saveAll()
+
+
+
+
+ Save all the objects in the provided array.
+
+
+ public
+ static saveAll ( array<string|int, mixed> $list [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $list
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Validate and set a value for an object key.
+
+
+ public
+ set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set a value for on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setACL()
+
+
+
+
+ Set ACL for this object.
+
+
+ public
+ setACL ( ParseACL $acl ) : mixed
+
+
+
+ Parameters
+
+
+ $acl
+ : ParseACL
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setArray()
+
+
+
+
+ Set an array value for an object key.
+
+
+ public
+ setArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setAssociativeArray()
+
+
+
+
+ Set an associative array value for an object key.
+
+
+ public
+ setAssociativeArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDirty()
+
+
+
+
+ Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ protected
+ _isDirty ( bool $considerChildren ) : bool
+
+
+
+ Parameters
+
+
+ $considerChildren
+ : bool
+
+
+ Whether to consider children when checking for dirty state
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ rebuildEstimatedData()
+
+
+
+
+ Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ protected
+ rebuildEstimatedData ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDataAvailable()
+
+
+
+
+ Returns whether or not data is available for a given key
+
+
+ private
+ _isDataAvailable ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check availability of
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ applyOperations()
+
+
+
+
+ Apply operations to a target object.
+
+
+ private
+ applyOperations ( array<string|int, mixed> $operations , array<string|int, mixed> & $target ) : mixed
+
+
+
+ Parameters
+
+
+ $operations
+ : array<string|int, mixed>
+
+
+ Operations set to apply.
+
+
+
+
+ $target
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ canBeSerialized()
+
+
+
+
+ Determine if the current object can be serialized for saving.
+
+
+ private
+ canBeSerialized ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ canBeSerializedAsValue()
+
+
+
+
+ Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ private
+ static canBeSerializedAsValue ( mixed $object ) : bool
+
+
+
+ Parameters
+
+
+ $object
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ deepSave()
+
+
+
+
+ Save object and unsaved children within.
+
+
+ private
+ static deepSave ( ParseObject |array<string|int, mixed> $target [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $target
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyBatch()
+
+
+
+
+ Destroy batch of objects.
+
+
+ private
+ static destroyBatch ( array<string|int, ParseObject > $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, ParseObject >
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ findUnsavedChildren()
+
+
+
+
+ Find unsaved children inside an object.
+
+
+ private
+ static findUnsavedChildren ( ParseObject $object , array<string|int, mixed> & $unsavedChildren , array<string|int, mixed> & $unsavedFiles ) : mixed
+
+
+
+ Parameters
+
+
+ $object
+ : ParseObject
+
+
+
+
+
+
+ $unsavedChildren
+ : array<string|int, mixed>
+
+
+ Array to populate with children.
+
+
+
+
+ $unsavedFiles
+ : array<string|int, mixed>
+
+
+ Array to populate with files.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACLWithCopy()
+
+
+
+
+ Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ private
+ getACLWithCopy ( bool $mayCopy ) : ParseACL |null
+
+
+
+ Parameters
+
+
+ $mayCopy
+ : bool
+
+
+ Whether to return a copy of this acl or not
+
+
+
+
+
+
+
+ Return values
+ ParseACL |null
+ —
+
+
+
+
+
+
+ getSaveJSON()
+
+
+
+
+ Returns JSON object of the unsaved operations.
+
+
+ private
+ getSaveJSON ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getSubclass()
+
+
+
+
+ Gets the Subclass className if exists, otherwise false.
+
+
+ private
+ static getSubclass ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ hasDirtyChildren()
+
+
+
+
+ Determines whether this object has child objects that are dirty
+
+
+ private
+ hasDirtyChildren ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ mergeAfterSave()
+
+
+
+
+ Merge server data after a save completes.
+
+
+ private
+ mergeAfterSave ( array<string|int, mixed> $result ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromObject()
+
+
+
+
+ Merge data from other object.
+
+
+ private
+ mergeFromObject ( ParseObject $other ) : mixed
+
+
+
+ Parameters
+
+
+ $other
+ : ParseObject
+
+
+ Other object to merge data from
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromServer()
+
+
+
+
+ Merges data received from the server.
+
+
+ private
+ mergeFromServer ( array<string|int, mixed> $data [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ toObjectIdArray()
+
+
+
+
+ Creates an array of object ids from a given array of ParseObjects
+
+
+ private
+ static toObjectIdArray ( array<string|int, mixed> $objects ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Objects to create id array from
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ traverse()
+
+
+
+
+ Traverse object to find children.
+
+
+ private
+ static traverse ( bool $deep , ParseObject |array<string|int, mixed> & $object , callable $mapFunction [ , array<string|int, mixed> $seen = [] ] ) : mixed
+
+
+
+ Parameters
+
+
+ $deep
+ : bool
+
+
+ Should this call traverse deeply
+
+
+
+
+ $object
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $mapFunction
+ : callable
+
+
+ Function to call for every item.
+
+
+
+
+ $seen
+ : array<string|int, mixed>
+ = []
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ The result of calling mapFunction on the root object.
+
+
+
+
+
+
+ updateWithFetchedResults()
+
+
+
+
+ Merges an existing array of objects with their fetched counterparts
+
+
+ private
+ static updateWithFetchedResults ( array<string|int, mixed> $objects , array<string|int, mixed> $fetched ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Original objects to update
+
+
+
+
+ $fetched
+ : array<string|int, mixed>
+
+
+ Fetched object data to update with
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseLogs.html b/classes/Parse-ParseLogs.html
new file mode 100644
index 00000000..4ed6748e
--- /dev/null
+++ b/classes/Parse-ParseLogs.html
@@ -0,0 +1,428 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseLogs
+
+
+
+
+
+
+
+
+
+ Class ParseLogs - Allows access to server side parse script logs
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ getErrorLogs()
+
+ : array<string|int, mixed>
+
+Returns error logs
+
+
+ getInfoLogs()
+
+ : array<string|int, mixed>
+
+Returns info logs
+
+
+ getScriptLogs()
+
+ : array<string|int, mixed>
+
+Requests script logs from the server
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getErrorLogs()
+
+
+
+
+ Returns error logs
+
+
+ public
+ static getErrorLogs ( [ int $size = 100 ] [ , null $from = null ] [ , null $until = null ] [ , null $order = null ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $size
+ : int
+ = 100
+
+ Lines to return, 100 by default
+
+
+
+
+ $from
+ : null
+ = null
+
+ Earliest logs to return from, default is 1 week ago
+
+
+
+
+ $until
+ : null
+ = null
+
+ Latest logs to return from, defaults to current time
+
+
+
+
+ $order
+ : null
+ = null
+
+ Order to sort logs by (asc/desc), defaults to descending
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getInfoLogs()
+
+
+
+
+ Returns info logs
+
+
+ public
+ static getInfoLogs ( [ int $size = 100 ] [ , null $from = null ] [ , null $until = null ] [ , null $order = null ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $size
+ : int
+ = 100
+
+ Lines to return, 100 by default
+
+
+
+
+ $from
+ : null
+ = null
+
+ Earliest logs to return from, default is 1 week ago
+
+
+
+
+ $until
+ : null
+ = null
+
+ Latest logs to return from, defaults to current time
+
+
+
+
+ $order
+ : null
+ = null
+
+ Order to sort logs by (asc/desc), defaults to descending
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getScriptLogs()
+
+
+
+
+ Requests script logs from the server
+
+
+ public
+ static getScriptLogs ( [ string $level = 'info' ] [ , int $size = 100 ] [ , null $from = null ] [ , null $until = null ] [ , null $order = null ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $level
+ : string
+ = 'info'
+
+ Level of logs to return (info/error), default is info
+
+
+
+
+ $size
+ : int
+ = 100
+
+ Number of rows to return, default is 100
+
+
+
+
+ $from
+ : null
+ = null
+
+ Earliest logs to return from, defaults to 1 week ago
+
+
+
+
+ $until
+ : null
+ = null
+
+ Latest logs to return from, defaults to current time
+
+
+
+
+ $order
+ : null
+ = null
+
+ Order to sort logs by (asc/desc), defaults to descending
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseMemoryStorage.html b/classes/Parse-ParseMemoryStorage.html
new file mode 100644
index 00000000..075b9f34
--- /dev/null
+++ b/classes/Parse-ParseMemoryStorage.html
@@ -0,0 +1,571 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseMemoryStorage
+
+
+
+
+
+ implements
+ ParseStorageInterface
+
+
+
+
+
+ Class ParseMemoryStorage - Uses non-persisted memory for storage.
+
+ This is used by default if a PHP Session is not active.
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ ParseStorageInterface
+ Class ParseStorageInterface - Specifies an interface for implementing persistence.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $storage
+
+ : array<string|int, mixed>
+
+Memory storage
+
+
+ clear()
+
+ : null
+
+Clear all the values in storage.
+
+
+ get()
+
+ : mixed
+
+Gets the value for a key from storage.
+
+
+ getAll()
+
+ : array<string|int, mixed>
+
+Get all key-value pairs from storage.
+
+
+ getKeys()
+
+ : array<string|int, mixed>
+
+Get all keys in storage.
+
+
+ remove()
+
+ : void
+
+Remove a key from storage.
+
+
+ save()
+
+ : null
+
+Save the data, if necessary. Not implemented.
+
+
+ set()
+
+ : void
+
+Sets a key-value pair in storage.
+
+
+
+
+
+
+
+
+
+
+
+
+ $storage
+
+
+
+
+
+
+ Memory storage
+
+
+ private
+ array<string|int, mixed>
+ $storage
+ = []
+
+
+
+
+
+
+
+
+
+
+
+
+ clear()
+
+
+
+
+ Clear all the values in storage.
+
+
+ public
+ clear ( ) : null
+
+
+
+
+
+
+ Return values
+ null
+ —
+
+
+
+
+
+
+ get()
+
+
+
+
+ Gets the value for a key from storage.
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to get the value for
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getAll()
+
+
+
+
+ Get all key-value pairs from storage.
+
+
+ public
+ getAll ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getKeys()
+
+
+
+
+ Get all keys in storage.
+
+
+ public
+ getKeys ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Remove a key from storage.
+
+
+ public
+ remove ( string $key ) : void
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Save the data, if necessary. Not implemented.
+
+
+ public
+ save ( ) : null
+
+
+
+
+
+
+ Return values
+ null
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Sets a key-value pair in storage.
+
+
+ public
+ set ( string $key , mixed $value ) : void
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseObject.html b/classes/Parse-ParseObject.html
new file mode 100644
index 00000000..d2ff95b1
--- /dev/null
+++ b/classes/Parse-ParseObject.html
@@ -0,0 +1,4664 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseObject
+
+
+
+
+
+ implements
+ Encodable
+
+
+
+
+
+ Class ParseObject - Representation of an object stored on Parse.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ Encodable
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $parseClassName
+
+ : string
+
+Parse Class name, overridden by classes subclassing ParseObject
+
+
+ $operationSet
+
+ : array<string|int, mixed>
+
+Set of unsaved operations.
+
+
+ $serverData
+
+ : array<string|int, mixed>
+
+Data as it exists on the server.
+
+
+ $className
+
+ : string
+
+Class name for data on Parse.
+
+
+ $createdAt
+
+ : DateTime
+
+Timestamp when object was created.
+
+
+ $dataAvailability
+
+ : array<string|int, mixed>
+
+Determine if data available for a given key or not.
+
+
+ $estimatedData
+
+ : array<string|int, mixed>
+
+Estimated value of applying operationSet to serverData.
+
+
+ $hasBeenFetched
+
+ : bool
+
+Whether the object has been fully fetched from Parse.
+
+
+ $objectId
+
+ : string
+
+Unique identifier on Parse.
+
+
+ $registeredSubclasses
+
+ : array<string|int, mixed>
+
+Holds the registered subclasses and Parse class names.
+
+
+ $updatedAt
+
+ : DateTime
+
+Timestamp when object was last updated.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse Object.
+
+
+ __get()
+
+ : mixed
+
+Getter to catch direct property calls and pass them to the get function.
+
+
+ __isset()
+
+ : bool
+
+Magic handler to catch isset calls to object properties.
+
+
+ __set()
+
+ : mixed
+
+Setter to catch property calls and protect certain fields.
+
+
+ _encode()
+
+ : string
+
+Return a JSON encoded value of the object.
+
+
+ _mergeAfterFetch()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+ : mixed
+
+Merges data received from the server with a given selected keys.
+
+
+ _mergeMagicFields()
+
+ : mixed
+
+Handle merging of special fields for the object.
+
+
+ _performOperation()
+
+ : mixed
+
+Perform an operation on an object property.
+
+
+ _toPointer()
+
+ : array<string|int, mixed>
+
+Gets a Pointer referencing this Object.
+
+
+ _unregisterSubclass()
+
+ : mixed
+
+Un-register a subclass.
+
+
+ add()
+
+ : mixed
+
+Add a value to an array property.
+
+
+ addUnique()
+
+ : mixed
+
+Add unique values to an array property.
+
+
+ beforeSave()
+
+ : void
+
+Before save stub
+
+
+ clear()
+
+ : mixed
+
+Clear all keys on this object by creating delete operations
+for each key.
+
+
+ create()
+
+ : ParseObject
+
+Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ decode()
+
+ : ParseObject
+
+Decodes and returns a ParseObject from an encoded object
+
+
+ delete()
+
+ : mixed
+
+Delete a key from an object.
+
+
+ destroy()
+
+ : mixed
+
+Delete the object from Parse.
+
+
+ destroyAll()
+
+ : mixed
+
+Delete an array of objects.
+
+
+ encode()
+
+ : string
+
+Returns a JSON encoded array of a ParseObject
+
+
+ exists()
+
+ : bool
+
+Returns true if this object exists on the Server
+
+
+ fetch()
+
+ : ParseObject
+
+Fetch the whole object from the server and update the local object.
+
+
+ fetchAll()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse objects from the server.
+
+
+ fetchAllWithInclude()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ fetchWithInclude()
+
+ : ParseObject
+
+Fetch an array of Parse objects from the server.
+
+
+ get()
+
+ : mixed
+
+Get current value for an object property.
+
+
+ getACL()
+
+ : ParseACL
+
+Get the ACL assigned to the object.
+
+
+ getAllKeys()
+
+ : array<string|int, mixed>
+
+Get values for all keys of an object.
+
+
+ getClassName()
+
+ : string
+
+Get the Parse Class Name for the object.
+
+
+ getCreatedAt()
+
+ : DateTime |null
+
+Get the createdAt for the object, or null if unsaved.
+
+
+ getObjectId()
+
+ : string|null
+
+Get the objectId for the object, or null if unsaved.
+
+
+ getRegisteredSubclass()
+
+ : ParseObject
+
+Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ getRelation()
+
+ : ParseRelation
+
+Access or create a Relation value for a key.
+
+
+ getUpdatedAt()
+
+ : DateTime |null
+
+Get the updatedAt for the object, or null if unsaved.
+
+
+ has()
+
+ : bool
+
+Check if the object has a given key.
+
+
+ hasRegisteredSubclass()
+
+ : bool
+
+Check whether there is a subclass registered for a given parse class.
+
+
+ increment()
+
+ : mixed
+
+Increment a numeric key by a certain value.
+
+
+ isDataAvailable()
+
+ : bool
+
+Returns true if the object has been fetched.
+
+
+ isDirty()
+
+ : bool
+
+Check if the object or any of its child objects have unsaved operations.
+
+
+ isKeyDirty()
+
+ : bool
+
+Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ query()
+
+ : ParseQuery
+
+Creates a ParseQuery for the subclass of ParseObject.
+
+
+ registerSubclass()
+
+ : mixed
+
+Register a subclass. Should be called before any other Parse functions.
+
+
+ remove()
+
+ : mixed
+
+Remove a value from an array for an object key.
+
+
+ revert()
+
+ : mixed
+
+Revert all unsaved operations.
+
+
+ save()
+
+ : mixed
+
+Save Object to Parse.
+
+
+ saveAll()
+
+ : mixed
+
+Save all the objects in the provided array.
+
+
+ set()
+
+ : mixed
+
+Validate and set a value for an object key.
+
+
+ setACL()
+
+ : mixed
+
+Set ACL for this object.
+
+
+ setArray()
+
+ : mixed
+
+Set an array value for an object key.
+
+
+ setAssociativeArray()
+
+ : mixed
+
+Set an associative array value for an object key.
+
+
+ _isDirty()
+
+ : bool
+
+Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ rebuildEstimatedData()
+
+ : mixed
+
+Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ _isDataAvailable()
+
+ : bool
+
+Returns whether or not data is available for a given key
+
+
+ applyOperations()
+
+ : mixed
+
+Apply operations to a target object.
+
+
+ canBeSerialized()
+
+ : bool
+
+Determine if the current object can be serialized for saving.
+
+
+ canBeSerializedAsValue()
+
+ : bool
+
+Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ deepSave()
+
+ : mixed
+
+Save object and unsaved children within.
+
+
+ destroyBatch()
+
+ : array<string|int, mixed>
+
+Destroy batch of objects.
+
+
+ findUnsavedChildren()
+
+ : mixed
+
+Find unsaved children inside an object.
+
+
+ getACLWithCopy()
+
+ : ParseACL |null
+
+Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ getSaveJSON()
+
+ : array<string|int, mixed>
+
+Returns JSON object of the unsaved operations.
+
+
+ getSubclass()
+
+ : mixed
+
+Gets the Subclass className if exists, otherwise false.
+
+
+ hasDirtyChildren()
+
+ : bool
+
+Determines whether this object has child objects that are dirty
+
+
+ mergeAfterSave()
+
+ : mixed
+
+Merge server data after a save completes.
+
+
+ mergeFromObject()
+
+ : mixed
+
+Merge data from other object.
+
+
+ mergeFromServer()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ toObjectIdArray()
+
+ : array<string|int, mixed>
+
+Creates an array of object ids from a given array of ParseObjects
+
+
+ traverse()
+
+ : mixed
+
+Traverse object to find children.
+
+
+ updateWithFetchedResults()
+
+ : array<string|int, mixed>
+
+Merges an existing array of objects with their fetched counterparts
+
+
+
+
+
+
+
+
+
+
+
+
+ $parseClassName
+
+
+
+
+
+
+ Parse Class name, overridden by classes subclassing ParseObject
+
+
+ public
+ static string
+ $parseClassName
+
+
+
+
+
+
+
+
+
+ $operationSet
+
+
+
+
+
+
+ Set of unsaved operations.
+
+
+ protected
+ array<string|int, mixed>
+ $operationSet
+
+
+
+
+
+
+
+
+
+ $serverData
+
+
+
+
+
+
+ Data as it exists on the server.
+
+
+ protected
+ array<string|int, mixed>
+ $serverData
+
+
+
+
+
+
+
+
+
+ $className
+
+
+
+
+
+
+ Class name for data on Parse.
+
+
+ private
+ string
+ $className
+
+
+
+
+
+
+
+
+
+ $createdAt
+
+
+
+
+
+
+ Timestamp when object was created.
+
+
+ private
+ DateTime
+ $createdAt
+
+
+
+
+
+
+
+
+
+ $dataAvailability
+
+
+
+
+
+
+ Determine if data available for a given key or not.
+
+
+ private
+ array<string|int, mixed>
+ $dataAvailability
+
+
+
+
+
+
+
+
+
+ $estimatedData
+
+
+
+
+
+
+ Estimated value of applying operationSet to serverData.
+
+
+ private
+ array<string|int, mixed>
+ $estimatedData
+
+
+
+
+
+
+
+
+
+ $hasBeenFetched
+
+
+
+
+
+
+ Whether the object has been fully fetched from Parse.
+
+
+ private
+ bool
+ $hasBeenFetched
+
+
+
+
+
+
+
+
+
+ $objectId
+
+
+
+
+
+
+ Unique identifier on Parse.
+
+
+ private
+ string
+ $objectId
+
+
+
+
+
+
+
+
+
+ $registeredSubclasses
+
+
+
+
+
+
+ Holds the registered subclasses and Parse class names.
+
+
+ private
+ static array<string|int, mixed>
+ $registeredSubclasses
+ = []
+
+
+
+
+
+
+
+
+ $updatedAt
+
+
+
+
+
+
+ Timestamp when object was last updated.
+
+
+ private
+ DateTime
+ $updatedAt
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse Object.
+
+
+ public
+ __construct ( [ string $className = null ] [ , mixed $objectId = null ] [ , bool $isPointer = false ] ) : mixed
+
+ Creates a pointer object if an objectId is provided,
+otherwise creates a new object.
+
+
+ Parameters
+
+
+ $className
+ : string
+ = null
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : mixed
+ = null
+
+ Object Id for Existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __get()
+
+
+
+
+ Getter to catch direct property calls and pass them to the get function.
+
+
+ public
+ __get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the Object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __isset()
+
+
+
+
+ Magic handler to catch isset calls to object properties.
+
+
+ public
+ __isset ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check on the object.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ __set()
+
+
+
+
+ Setter to catch property calls and protect certain fields.
+
+
+ public
+ __set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Return a JSON encoded value of the object.
+
+
+ public
+ _encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ _mergeAfterFetch()
+
+
+
+
+ Merges data received from the server.
+
+
+ public
+ _mergeAfterFetch ( array<string|int, mixed> $result [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+
+
+
+ Merges data received from the server with a given selected keys.
+
+
+ public
+ _mergeAfterFetchWithSelectedKeys ( array<string|int, mixed> $result , array<string|int, mixed> $selectedKeys ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $selectedKeys
+ : array<string|int, mixed>
+
+
+ Keys to be fetched. Null or empty means all
+data will be fetched.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeMagicFields()
+
+
+
+
+ Handle merging of special fields for the object.
+
+
+ public
+ _mergeMagicFields ( array<string|int, mixed> & $data ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data received from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Perform an operation on an object property.
+
+
+ public
+ _performOperation ( string $key , FieldOperation $operation ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to perform an operation upon.
+
+
+
+
+ $operation
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _toPointer()
+
+
+
+
+ Gets a Pointer referencing this Object.
+
+
+ public
+ _toPointer ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _unregisterSubclass()
+
+
+
+
+ Un-register a subclass.
+
+
+ public
+ static _unregisterSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ add()
+
+
+
+
+ Add a value to an array property.
+
+
+ public
+ add ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object to add a value to.
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ addUnique()
+
+
+
+
+ Add unique values to an array property.
+
+
+ public
+ addUnique ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value list to add uniquely.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ beforeSave()
+
+
+
+
+ Before save stub
+
+
+ public
+ beforeSave ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+ clear()
+
+
+
+
+ Clear all keys on this object by creating delete operations
+for each key.
+
+
+ public
+ clear ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ create()
+
+
+
+
+ Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ public
+ static create ( string $className [ , string $objectId = null ] [ , bool $isPointer = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : string
+ = null
+
+ Unique identifier for existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+ If the object is a pointer.
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ decode()
+
+
+
+
+ Decodes and returns a ParseObject from an encoded object
+
+
+ public
+ static decode ( string|array<string|int, mixed> $encoded ) : ParseObject
+
+
+
+ Parameters
+
+
+ $encoded
+ : string|array<string|int, mixed>
+
+
+ Encoded ParseObject to decode
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ delete()
+
+
+
+
+ Delete a key from an object.
+
+
+ public
+ delete ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove from object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroy()
+
+
+
+
+ Delete the object from Parse.
+
+
+ public
+ destroy ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyAll()
+
+
+
+
+ Delete an array of objects.
+
+
+ public
+ static destroyAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key or not.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ encode()
+
+
+
+
+ Returns a JSON encoded array of a ParseObject
+
+
+ public
+ encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ exists()
+
+
+
+
+ Returns true if this object exists on the Server
+
+
+ public
+ exists ( [ bool $useMasterKey = false ] ) : bool
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ fetch()
+
+
+
+
+ Fetch the whole object from the server and update the local object.
+
+
+ public
+ fetch ( [ bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key and override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ fetchAll()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ static fetchAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchAllWithInclude()
+
+
+
+
+ Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ public
+ static fetchAllWithInclude ( array<string|int, mixed> $objects , mixed $includeKeys [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $includeKeys
+ : mixed
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchWithInclude()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ fetchWithInclude ( array<string|int, mixed> $includeKeys [ , bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $includeKeys
+ : array<string|int, mixed>
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ get()
+
+
+
+
+ Get current value for an object property.
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the estimatedData array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACL()
+
+
+
+
+ Get the ACL assigned to the object.
+
+
+ public
+ getACL ( ) : ParseACL
+
+
+
+
+
+
+ Return values
+ ParseACL
+ —
+
+
+
+
+
+
+ getAllKeys()
+
+
+
+
+ Get values for all keys of an object.
+
+
+ public
+ getAllKeys ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getClassName()
+
+
+
+
+ Get the Parse Class Name for the object.
+
+
+ public
+ getClassName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getCreatedAt()
+
+
+
+
+ Get the createdAt for the object, or null if unsaved.
+
+
+ public
+ getCreatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ getObjectId()
+
+
+
+
+ Get the objectId for the object, or null if unsaved.
+
+
+ public
+ getObjectId ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ getRegisteredSubclass()
+
+
+
+
+ Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ public
+ static getRegisteredSubclass ( string $parseClassName ) : ParseObject
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ getRelation()
+
+
+
+
+ Access or create a Relation value for a key.
+
+
+ public
+ getRelation ( string $key [ , string $className = null ] ) : ParseRelation
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to access the relation for.
+
+
+
+
+ $className
+ : string
+ = null
+
+
+
+
+
+
+
+
+ Return values
+ ParseRelation
+ —
+ The ParseRelation object if the relation already
+exists for the key or can be created for this key.
+
+
+
+
+
+
+ getUpdatedAt()
+
+
+
+
+ Get the updatedAt for the object, or null if unsaved.
+
+
+ public
+ getUpdatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ has()
+
+
+
+
+ Check if the object has a given key.
+
+
+ public
+ has ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ hasRegisteredSubclass()
+
+
+
+
+ Check whether there is a subclass registered for a given parse class.
+
+
+ public
+ static hasRegisteredSubclass ( string $parseClassName ) : bool
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ increment()
+
+
+
+
+ Increment a numeric key by a certain value.
+
+
+ public
+ increment ( string $key [ , int $value = 1 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for numeric value on object to increment.
+
+
+
+
+ $value
+ : int
+ = 1
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ isDataAvailable()
+
+
+
+
+ Returns true if the object has been fetched.
+
+
+ public
+ isDataAvailable ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isDirty()
+
+
+
+
+ Check if the object or any of its child objects have unsaved operations.
+
+
+ public
+ isDirty ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isKeyDirty()
+
+
+
+
+ Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ public
+ isKeyDirty ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ query()
+
+
+
+
+ Creates a ParseQuery for the subclass of ParseObject.
+
+
+ public
+ static query ( ) : ParseQuery
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+
+
+
+
+
+
+ registerSubclass()
+
+
+
+
+ Register a subclass. Should be called before any other Parse functions.
+
+
+ public
+ static registerSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Remove a value from an array for an object key.
+
+
+ public
+ remove ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove the value from on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to remove from the array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ revert()
+
+
+
+
+ Revert all unsaved operations.
+
+
+ public
+ revert ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Save Object to Parse.
+
+
+ public
+ save ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ saveAll()
+
+
+
+
+ Save all the objects in the provided array.
+
+
+ public
+ static saveAll ( array<string|int, mixed> $list [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $list
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Validate and set a value for an object key.
+
+
+ public
+ set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set a value for on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setACL()
+
+
+
+
+ Set ACL for this object.
+
+
+ public
+ setACL ( ParseACL $acl ) : mixed
+
+
+
+ Parameters
+
+
+ $acl
+ : ParseACL
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setArray()
+
+
+
+
+ Set an array value for an object key.
+
+
+ public
+ setArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setAssociativeArray()
+
+
+
+
+ Set an associative array value for an object key.
+
+
+ public
+ setAssociativeArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDirty()
+
+
+
+
+ Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ protected
+ _isDirty ( bool $considerChildren ) : bool
+
+
+
+ Parameters
+
+
+ $considerChildren
+ : bool
+
+
+ Whether to consider children when checking for dirty state
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ rebuildEstimatedData()
+
+
+
+
+ Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ protected
+ rebuildEstimatedData ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDataAvailable()
+
+
+
+
+ Returns whether or not data is available for a given key
+
+
+ private
+ _isDataAvailable ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check availability of
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ applyOperations()
+
+
+
+
+ Apply operations to a target object.
+
+
+ private
+ applyOperations ( array<string|int, mixed> $operations , array<string|int, mixed> & $target ) : mixed
+
+
+
+ Parameters
+
+
+ $operations
+ : array<string|int, mixed>
+
+
+ Operations set to apply.
+
+
+
+
+ $target
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ canBeSerialized()
+
+
+
+
+ Determine if the current object can be serialized for saving.
+
+
+ private
+ canBeSerialized ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ canBeSerializedAsValue()
+
+
+
+
+ Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ private
+ static canBeSerializedAsValue ( mixed $object ) : bool
+
+
+
+ Parameters
+
+
+ $object
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ deepSave()
+
+
+
+
+ Save object and unsaved children within.
+
+
+ private
+ static deepSave ( ParseObject |array<string|int, mixed> $target [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $target
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyBatch()
+
+
+
+
+ Destroy batch of objects.
+
+
+ private
+ static destroyBatch ( array<string|int, ParseObject > $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, ParseObject >
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ findUnsavedChildren()
+
+
+
+
+ Find unsaved children inside an object.
+
+
+ private
+ static findUnsavedChildren ( ParseObject $object , array<string|int, mixed> & $unsavedChildren , array<string|int, mixed> & $unsavedFiles ) : mixed
+
+
+
+ Parameters
+
+
+ $object
+ : ParseObject
+
+
+
+
+
+
+ $unsavedChildren
+ : array<string|int, mixed>
+
+
+ Array to populate with children.
+
+
+
+
+ $unsavedFiles
+ : array<string|int, mixed>
+
+
+ Array to populate with files.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACLWithCopy()
+
+
+
+
+ Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ private
+ getACLWithCopy ( bool $mayCopy ) : ParseACL |null
+
+
+
+ Parameters
+
+
+ $mayCopy
+ : bool
+
+
+ Whether to return a copy of this acl or not
+
+
+
+
+
+
+
+ Return values
+ ParseACL |null
+ —
+
+
+
+
+
+
+ getSaveJSON()
+
+
+
+
+ Returns JSON object of the unsaved operations.
+
+
+ private
+ getSaveJSON ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getSubclass()
+
+
+
+
+ Gets the Subclass className if exists, otherwise false.
+
+
+ private
+ static getSubclass ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ hasDirtyChildren()
+
+
+
+
+ Determines whether this object has child objects that are dirty
+
+
+ private
+ hasDirtyChildren ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ mergeAfterSave()
+
+
+
+
+ Merge server data after a save completes.
+
+
+ private
+ mergeAfterSave ( array<string|int, mixed> $result ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromObject()
+
+
+
+
+ Merge data from other object.
+
+
+ private
+ mergeFromObject ( ParseObject $other ) : mixed
+
+
+
+ Parameters
+
+
+ $other
+ : ParseObject
+
+
+ Other object to merge data from
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromServer()
+
+
+
+
+ Merges data received from the server.
+
+
+ private
+ mergeFromServer ( array<string|int, mixed> $data [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ toObjectIdArray()
+
+
+
+
+ Creates an array of object ids from a given array of ParseObjects
+
+
+ private
+ static toObjectIdArray ( array<string|int, mixed> $objects ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Objects to create id array from
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ traverse()
+
+
+
+
+ Traverse object to find children.
+
+
+ private
+ static traverse ( bool $deep , ParseObject |array<string|int, mixed> & $object , callable $mapFunction [ , array<string|int, mixed> $seen = [] ] ) : mixed
+
+
+
+ Parameters
+
+
+ $deep
+ : bool
+
+
+ Should this call traverse deeply
+
+
+
+
+ $object
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $mapFunction
+ : callable
+
+
+ Function to call for every item.
+
+
+
+
+ $seen
+ : array<string|int, mixed>
+ = []
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ The result of calling mapFunction on the root object.
+
+
+
+
+
+
+ updateWithFetchedResults()
+
+
+
+
+ Merges an existing array of objects with their fetched counterparts
+
+
+ private
+ static updateWithFetchedResults ( array<string|int, mixed> $objects , array<string|int, mixed> $fetched ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Original objects to update
+
+
+
+
+ $fetched
+ : array<string|int, mixed>
+
+
+ Fetched object data to update with
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParsePolygon.html b/classes/Parse-ParsePolygon.html
new file mode 100644
index 00000000..91e16634
--- /dev/null
+++ b/classes/Parse-ParsePolygon.html
@@ -0,0 +1,442 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParsePolygon
+
+
+
+
+
+ implements
+ Encodable
+
+
+
+
+
+ ParsePolygon - Representation of a Parse Polygon object.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ Encodable
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $coordinates
+
+ : array<string|int, mixed>
+
+The coordinates.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse Polygon object.
+
+
+ _encode()
+
+ : array<string|int, mixed>
+
+Encode to associative array representation.
+
+
+ getCoordinates()
+
+ : array<string|int, mixed>
+
+Returns the Coordinates value for this Polygon.
+
+
+ setCoordinates()
+
+ : mixed
+
+Set the Coordinates value for this Polygon.
+
+
+
+
+
+
+
+
+
+
+
+
+ $coordinates
+
+
+
+
+
+
+ The coordinates.
+
+
+ private
+ array<string|int, mixed>
+ $coordinates
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse Polygon object.
+
+
+ public
+ __construct ( array<string|int, mixed> $coords ) : mixed
+
+
+
+ Parameters
+
+
+ $coords
+ : array<string|int, mixed>
+
+
+ GeoPoints or Coordinates.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Encode to associative array representation.
+
+
+ public
+ _encode ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getCoordinates()
+
+
+
+
+ Returns the Coordinates value for this Polygon.
+
+
+ public
+ getCoordinates ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ setCoordinates()
+
+
+
+
+ Set the Coordinates value for this Polygon.
+
+
+ public
+ setCoordinates ( array<string|int, mixed> $coords ) : mixed
+
+
+
+ Parameters
+
+
+ $coords
+ : array<string|int, mixed>
+
+
+ GeoPoints or Coordinates.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParsePush.html b/classes/Parse-ParsePush.html
new file mode 100644
index 00000000..295dd245
--- /dev/null
+++ b/classes/Parse-ParsePush.html
@@ -0,0 +1,374 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParsePush
+
+
+
+
+
+
+
+
+
+ Class ParsePush - Handles sending push notifications with Parse.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ getStatus()
+
+ : null|ParsePushStatus
+
+Returns the PushStatus for a response from ParsePush::send
+
+
+ hasStatus()
+
+ : bool
+
+Returns whether or not the given response has a push status
+Checks to see if X-Push-Status-Id is present in $response
+
+
+ send()
+
+ : mixed
+
+Sends a push notification.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getStatus()
+
+
+
+
+ Returns the PushStatus for a response from ParsePush::send
+
+
+ public
+ static getStatus ( array<string|int, mixed> $response ) : null|ParsePushStatus
+
+
+
+ Parameters
+
+
+ $response
+ : array<string|int, mixed>
+
+
+ Response from ParsePush::send
+
+
+
+
+
+
+
+ Return values
+ null|ParsePushStatus
+ —
+
+
+
+
+
+
+ hasStatus()
+
+
+
+
+ Returns whether or not the given response has a push status
+Checks to see if X-Push-Status-Id is present in $response
+
+
+ public
+ static hasStatus ( array<string|int, mixed> $response ) : bool
+
+
+
+ Parameters
+
+
+ $response
+ : array<string|int, mixed>
+
+
+ Response from ParsePush::send
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ send()
+
+
+
+
+ Sends a push notification.
+
+
+ public
+ static send ( array<string|int, mixed> $data [ , bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ The data of the push notification. Valid fields
+are:
+channels - An Array of channels to push to.
+push_time - A Date object for when to send the push.
+expiration_time - A Date object for when to expire
+the push.
+expiration_interval - The seconds from now to expire the push.
+where - A ParseQuery over ParseInstallation that is used to match
+a set of installations to push to.
+data - The data to send as part of the push
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key for the request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParsePushStatus.html b/classes/Parse-ParsePushStatus.html
new file mode 100644
index 00000000..278a27d8
--- /dev/null
+++ b/classes/Parse-ParsePushStatus.html
@@ -0,0 +1,5404 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParsePushStatus
+
+
+ extends ParseObject
+
+
+
+
+
+
+
+
+
+ Class ParsePushStatus - Representation of PushStatus for push notifications
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ STATUS_FAILED
+
+ = 'failed'
+
+
+
+
+ STATUS_PENDING
+
+ = 'pending'
+
+
+
+
+ STATUS_RUNNING
+
+ = 'running'
+
+
+
+
+ STATUS_SCHEDULED
+
+ = 'scheduled'
+
+
+
+
+ STATUS_SUCCEEDED
+
+ = 'succeeded'
+
+
+
+
+ $parseClassName
+
+ : string
+
+Parse Class name
+
+
+ $operationSet
+
+ : array<string|int, mixed>
+
+Set of unsaved operations.
+
+
+ $serverData
+
+ : array<string|int, mixed>
+
+Data as it exists on the server.
+
+
+ $className
+
+ : string
+
+Class name for data on Parse.
+
+
+ $createdAt
+
+ : DateTime
+
+Timestamp when object was created.
+
+
+ $dataAvailability
+
+ : array<string|int, mixed>
+
+Determine if data available for a given key or not.
+
+
+ $estimatedData
+
+ : array<string|int, mixed>
+
+Estimated value of applying operationSet to serverData.
+
+
+ $hasBeenFetched
+
+ : bool
+
+Whether the object has been fully fetched from Parse.
+
+
+ $objectId
+
+ : string
+
+Unique identifier on Parse.
+
+
+ $registeredSubclasses
+
+ : array<string|int, mixed>
+
+Holds the registered subclasses and Parse class names.
+
+
+ $updatedAt
+
+ : DateTime
+
+Timestamp when object was last updated.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse Object.
+
+
+ __get()
+
+ : mixed
+
+Getter to catch direct property calls and pass them to the get function.
+
+
+ __isset()
+
+ : bool
+
+Magic handler to catch isset calls to object properties.
+
+
+ __set()
+
+ : mixed
+
+Setter to catch property calls and protect certain fields.
+
+
+ _encode()
+
+ : string
+
+Return a JSON encoded value of the object.
+
+
+ _mergeAfterFetch()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+ : mixed
+
+Merges data received from the server with a given selected keys.
+
+
+ _mergeMagicFields()
+
+ : mixed
+
+Handle merging of special fields for the object.
+
+
+ _performOperation()
+
+ : mixed
+
+Perform an operation on an object property.
+
+
+ _toPointer()
+
+ : array<string|int, mixed>
+
+Gets a Pointer referencing this Object.
+
+
+ _unregisterSubclass()
+
+ : mixed
+
+Un-register a subclass.
+
+
+ add()
+
+ : mixed
+
+Add a value to an array property.
+
+
+ addUnique()
+
+ : mixed
+
+Add unique values to an array property.
+
+
+ beforeSave()
+
+ : void
+
+Before save stub
+
+
+ clear()
+
+ : mixed
+
+Clear all keys on this object by creating delete operations
+for each key.
+
+
+ create()
+
+ : ParseObject
+
+Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ decode()
+
+ : ParseObject
+
+Decodes and returns a ParseObject from an encoded object
+
+
+ delete()
+
+ : mixed
+
+Delete a key from an object.
+
+
+ destroy()
+
+ : mixed
+
+Delete the object from Parse.
+
+
+ destroyAll()
+
+ : mixed
+
+Delete an array of objects.
+
+
+ encode()
+
+ : string
+
+Returns a JSON encoded array of a ParseObject
+
+
+ exists()
+
+ : bool
+
+Returns true if this object exists on the Server
+
+
+ fetch()
+
+ : ParseObject
+
+Fetch the whole object from the server and update the local object.
+
+
+ fetchAll()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse objects from the server.
+
+
+ fetchAllWithInclude()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ fetchWithInclude()
+
+ : ParseObject
+
+Fetch an array of Parse objects from the server.
+
+
+ get()
+
+ : mixed
+
+Get current value for an object property.
+
+
+ getACL()
+
+ : ParseACL
+
+Get the ACL assigned to the object.
+
+
+ getAllKeys()
+
+ : array<string|int, mixed>
+
+Get values for all keys of an object.
+
+
+ getClassName()
+
+ : string
+
+Get the Parse Class Name for the object.
+
+
+ getCreatedAt()
+
+ : DateTime |null
+
+Get the createdAt for the object, or null if unsaved.
+
+
+ getFromId()
+
+ : ParsePushStatus |null
+
+Returns a push status object or null from an id
+
+
+ getObjectId()
+
+ : string|null
+
+Get the objectId for the object, or null if unsaved.
+
+
+ getPushesFailed()
+
+ : int
+
+Gets the number of pushes failed
+
+
+ getPushesSent()
+
+ : int
+
+Gets the number of pushes sent
+
+
+ getPushHash()
+
+ : string
+
+Gets the hash for this push
+
+
+ getPushPayload()
+
+ : array<string|int, mixed>
+
+Gets the payload
+
+
+ getPushQuery()
+
+ : ParseQuery
+
+Gets the query used to send this push
+
+
+ getPushSource()
+
+ : string
+
+Gets the source of this push
+
+
+ getPushStatus()
+
+ : string
+
+Gets the status of this push
+
+
+ getPushTime()
+
+ : DateTime
+
+Gets the time this push was sent at
+
+
+ getRegisteredSubclass()
+
+ : ParseObject
+
+Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ getRelation()
+
+ : ParseRelation
+
+Access or create a Relation value for a key.
+
+
+ getUpdatedAt()
+
+ : DateTime |null
+
+Get the updatedAt for the object, or null if unsaved.
+
+
+ has()
+
+ : bool
+
+Check if the object has a given key.
+
+
+ hasFailed()
+
+ : bool
+
+Indicates whether this push has failed
+
+
+ hasRegisteredSubclass()
+
+ : bool
+
+Check whether there is a subclass registered for a given parse class.
+
+
+ hasSucceeded()
+
+ : bool
+
+Indicates whether this push has succeeded
+
+
+ increment()
+
+ : mixed
+
+Increment a numeric key by a certain value.
+
+
+ isDataAvailable()
+
+ : bool
+
+Returns true if the object has been fetched.
+
+
+ isDirty()
+
+ : bool
+
+Check if the object or any of its child objects have unsaved operations.
+
+
+ isKeyDirty()
+
+ : bool
+
+Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ isPending()
+
+ : bool
+
+Indicates whether this push is pending
+
+
+ isRunning()
+
+ : bool
+
+Indicates whether this push is running
+
+
+ isScheduled()
+
+ : bool
+
+Indicates whether this push is scheduled
+
+
+ query()
+
+ : ParseQuery
+
+Creates a ParseQuery for the subclass of ParseObject.
+
+
+ registerSubclass()
+
+ : mixed
+
+Register a subclass. Should be called before any other Parse functions.
+
+
+ remove()
+
+ : mixed
+
+Remove a value from an array for an object key.
+
+
+ revert()
+
+ : mixed
+
+Revert all unsaved operations.
+
+
+ save()
+
+ : mixed
+
+Save Object to Parse.
+
+
+ saveAll()
+
+ : mixed
+
+Save all the objects in the provided array.
+
+
+ set()
+
+ : mixed
+
+Validate and set a value for an object key.
+
+
+ setACL()
+
+ : mixed
+
+Set ACL for this object.
+
+
+ setArray()
+
+ : mixed
+
+Set an array value for an object key.
+
+
+ setAssociativeArray()
+
+ : mixed
+
+Set an associative array value for an object key.
+
+
+ _isDirty()
+
+ : bool
+
+Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ rebuildEstimatedData()
+
+ : mixed
+
+Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ _isDataAvailable()
+
+ : bool
+
+Returns whether or not data is available for a given key
+
+
+ applyOperations()
+
+ : mixed
+
+Apply operations to a target object.
+
+
+ canBeSerialized()
+
+ : bool
+
+Determine if the current object can be serialized for saving.
+
+
+ canBeSerializedAsValue()
+
+ : bool
+
+Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ deepSave()
+
+ : mixed
+
+Save object and unsaved children within.
+
+
+ destroyBatch()
+
+ : array<string|int, mixed>
+
+Destroy batch of objects.
+
+
+ findUnsavedChildren()
+
+ : mixed
+
+Find unsaved children inside an object.
+
+
+ getACLWithCopy()
+
+ : ParseACL |null
+
+Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ getSaveJSON()
+
+ : array<string|int, mixed>
+
+Returns JSON object of the unsaved operations.
+
+
+ getSubclass()
+
+ : mixed
+
+Gets the Subclass className if exists, otherwise false.
+
+
+ hasDirtyChildren()
+
+ : bool
+
+Determines whether this object has child objects that are dirty
+
+
+ mergeAfterSave()
+
+ : mixed
+
+Merge server data after a save completes.
+
+
+ mergeFromObject()
+
+ : mixed
+
+Merge data from other object.
+
+
+ mergeFromServer()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ toObjectIdArray()
+
+ : array<string|int, mixed>
+
+Creates an array of object ids from a given array of ParseObjects
+
+
+ traverse()
+
+ : mixed
+
+Traverse object to find children.
+
+
+ updateWithFetchedResults()
+
+ : array<string|int, mixed>
+
+Merges an existing array of objects with their fetched counterparts
+
+
+
+
+
+
+
+
+
+
+ STATUS_FAILED
+
+
+
+
+
+
+
+ public
+ mixed
+ STATUS_FAILED
+ = 'failed'
+
+
+
+
+
+
+
+
+
+ STATUS_PENDING
+
+
+
+
+
+
+
+ public
+ mixed
+ STATUS_PENDING
+ = 'pending'
+
+
+
+
+
+
+
+
+
+ STATUS_RUNNING
+
+
+
+
+
+
+
+ public
+ mixed
+ STATUS_RUNNING
+ = 'running'
+
+
+
+
+
+
+
+
+
+ STATUS_SCHEDULED
+
+
+
+
+
+
+
+ public
+ mixed
+ STATUS_SCHEDULED
+ = 'scheduled'
+
+
+
+
+
+
+
+
+
+ STATUS_SUCCEEDED
+
+
+
+
+
+
+
+ public
+ mixed
+ STATUS_SUCCEEDED
+ = 'succeeded'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $parseClassName
+
+
+
+
+
+
+ Parse Class name
+
+
+ public
+ static string
+ $parseClassName
+ = '_PushStatus'
+
+
+
+
+
+
+
+
+ $operationSet
+
+
+
+
+
+
+ Set of unsaved operations.
+
+
+ protected
+ array<string|int, mixed>
+ $operationSet
+
+
+
+
+
+
+
+
+
+ $serverData
+
+
+
+
+
+
+ Data as it exists on the server.
+
+
+ protected
+ array<string|int, mixed>
+ $serverData
+
+
+
+
+
+
+
+
+
+ $className
+
+
+
+
+
+
+ Class name for data on Parse.
+
+
+ private
+ string
+ $className
+
+
+
+
+
+
+
+
+
+ $createdAt
+
+
+
+
+
+
+ Timestamp when object was created.
+
+
+ private
+ DateTime
+ $createdAt
+
+
+
+
+
+
+
+
+
+ $dataAvailability
+
+
+
+
+
+
+ Determine if data available for a given key or not.
+
+
+ private
+ array<string|int, mixed>
+ $dataAvailability
+
+
+
+
+
+
+
+
+
+ $estimatedData
+
+
+
+
+
+
+ Estimated value of applying operationSet to serverData.
+
+
+ private
+ array<string|int, mixed>
+ $estimatedData
+
+
+
+
+
+
+
+
+
+ $hasBeenFetched
+
+
+
+
+
+
+ Whether the object has been fully fetched from Parse.
+
+
+ private
+ bool
+ $hasBeenFetched
+
+
+
+
+
+
+
+
+
+ $objectId
+
+
+
+
+
+
+ Unique identifier on Parse.
+
+
+ private
+ string
+ $objectId
+
+
+
+
+
+
+
+
+
+ $registeredSubclasses
+
+
+
+
+
+
+ Holds the registered subclasses and Parse class names.
+
+
+ private
+ static array<string|int, mixed>
+ $registeredSubclasses
+ = []
+
+
+
+
+
+
+
+
+ $updatedAt
+
+
+
+
+
+
+ Timestamp when object was last updated.
+
+
+ private
+ DateTime
+ $updatedAt
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse Object.
+
+
+ public
+ __construct ( [ string $className = null ] [ , mixed $objectId = null ] [ , bool $isPointer = false ] ) : mixed
+
+ Creates a pointer object if an objectId is provided,
+otherwise creates a new object.
+
+
+ Parameters
+
+
+ $className
+ : string
+ = null
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : mixed
+ = null
+
+ Object Id for Existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __get()
+
+
+
+
+ Getter to catch direct property calls and pass them to the get function.
+
+
+ public
+ __get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the Object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __isset()
+
+
+
+
+ Magic handler to catch isset calls to object properties.
+
+
+ public
+ __isset ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check on the object.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ __set()
+
+
+
+
+ Setter to catch property calls and protect certain fields.
+
+
+ public
+ __set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Return a JSON encoded value of the object.
+
+
+ public
+ _encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ _mergeAfterFetch()
+
+
+
+
+ Merges data received from the server.
+
+
+ public
+ _mergeAfterFetch ( array<string|int, mixed> $result [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+
+
+
+ Merges data received from the server with a given selected keys.
+
+
+ public
+ _mergeAfterFetchWithSelectedKeys ( array<string|int, mixed> $result , array<string|int, mixed> $selectedKeys ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $selectedKeys
+ : array<string|int, mixed>
+
+
+ Keys to be fetched. Null or empty means all
+data will be fetched.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeMagicFields()
+
+
+
+
+ Handle merging of special fields for the object.
+
+
+ public
+ _mergeMagicFields ( array<string|int, mixed> & $data ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data received from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Perform an operation on an object property.
+
+
+ public
+ _performOperation ( string $key , FieldOperation $operation ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to perform an operation upon.
+
+
+
+
+ $operation
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _toPointer()
+
+
+
+
+ Gets a Pointer referencing this Object.
+
+
+ public
+ _toPointer ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _unregisterSubclass()
+
+
+
+
+ Un-register a subclass.
+
+
+ public
+ static _unregisterSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ add()
+
+
+
+
+ Add a value to an array property.
+
+
+ public
+ add ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object to add a value to.
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ addUnique()
+
+
+
+
+ Add unique values to an array property.
+
+
+ public
+ addUnique ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value list to add uniquely.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ beforeSave()
+
+
+
+
+ Before save stub
+
+
+ public
+ beforeSave ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+ clear()
+
+
+
+
+ Clear all keys on this object by creating delete operations
+for each key.
+
+
+ public
+ clear ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ create()
+
+
+
+
+ Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ public
+ static create ( string $className [ , string $objectId = null ] [ , bool $isPointer = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : string
+ = null
+
+ Unique identifier for existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+ If the object is a pointer.
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ decode()
+
+
+
+
+ Decodes and returns a ParseObject from an encoded object
+
+
+ public
+ static decode ( string|array<string|int, mixed> $encoded ) : ParseObject
+
+
+
+ Parameters
+
+
+ $encoded
+ : string|array<string|int, mixed>
+
+
+ Encoded ParseObject to decode
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ delete()
+
+
+
+
+ Delete a key from an object.
+
+
+ public
+ delete ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove from object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroy()
+
+
+
+
+ Delete the object from Parse.
+
+
+ public
+ destroy ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyAll()
+
+
+
+
+ Delete an array of objects.
+
+
+ public
+ static destroyAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key or not.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ encode()
+
+
+
+
+ Returns a JSON encoded array of a ParseObject
+
+
+ public
+ encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ exists()
+
+
+
+
+ Returns true if this object exists on the Server
+
+
+ public
+ exists ( [ bool $useMasterKey = false ] ) : bool
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ fetch()
+
+
+
+
+ Fetch the whole object from the server and update the local object.
+
+
+ public
+ fetch ( [ bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key and override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ fetchAll()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ static fetchAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchAllWithInclude()
+
+
+
+
+ Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ public
+ static fetchAllWithInclude ( array<string|int, mixed> $objects , mixed $includeKeys [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $includeKeys
+ : mixed
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchWithInclude()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ fetchWithInclude ( array<string|int, mixed> $includeKeys [ , bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $includeKeys
+ : array<string|int, mixed>
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ get()
+
+
+
+
+ Get current value for an object property.
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the estimatedData array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACL()
+
+
+
+
+ Get the ACL assigned to the object.
+
+
+ public
+ getACL ( ) : ParseACL
+
+
+
+
+
+
+ Return values
+ ParseACL
+ —
+
+
+
+
+
+
+ getAllKeys()
+
+
+
+
+ Get values for all keys of an object.
+
+
+ public
+ getAllKeys ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getClassName()
+
+
+
+
+ Get the Parse Class Name for the object.
+
+
+ public
+ getClassName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getCreatedAt()
+
+
+
+
+ Get the createdAt for the object, or null if unsaved.
+
+
+ public
+ getCreatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ getFromId()
+
+
+
+
+ Returns a push status object or null from an id
+
+
+ public
+ static getFromId ( string $id ) : ParsePushStatus |null
+
+
+
+ Parameters
+
+
+ $id
+ : string
+
+
+ Id to get this push status by
+
+
+
+
+
+
+
+ Return values
+ ParsePushStatus |null
+ —
+
+
+
+
+
+
+ getObjectId()
+
+
+
+
+ Get the objectId for the object, or null if unsaved.
+
+
+ public
+ getObjectId ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ getPushesFailed()
+
+
+
+
+ Gets the number of pushes failed
+
+
+ public
+ getPushesFailed ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ getPushesSent()
+
+
+
+
+ Gets the number of pushes sent
+
+
+ public
+ getPushesSent ( ) : int
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ getPushHash()
+
+
+
+
+ Gets the hash for this push
+
+
+ public
+ getPushHash ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getPushPayload()
+
+
+
+
+ Gets the payload
+
+
+ public
+ getPushPayload ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getPushQuery()
+
+
+
+
+ Gets the query used to send this push
+
+
+ public
+ getPushQuery ( ) : ParseQuery
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+
+
+
+
+
+
+ getPushSource()
+
+
+
+
+ Gets the source of this push
+
+
+ public
+ getPushSource ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getPushStatus()
+
+
+
+
+ Gets the status of this push
+
+
+ public
+ getPushStatus ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getPushTime()
+
+
+
+
+ Gets the time this push was sent at
+
+
+ public
+ getPushTime ( ) : DateTime
+
+
+
+
+
+
+ Return values
+ DateTime
+ —
+
+
+
+
+
+
+ getRegisteredSubclass()
+
+
+
+
+ Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ public
+ static getRegisteredSubclass ( string $parseClassName ) : ParseObject
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ getRelation()
+
+
+
+
+ Access or create a Relation value for a key.
+
+
+ public
+ getRelation ( string $key [ , string $className = null ] ) : ParseRelation
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to access the relation for.
+
+
+
+
+ $className
+ : string
+ = null
+
+
+
+
+
+
+
+
+ Return values
+ ParseRelation
+ —
+ The ParseRelation object if the relation already
+exists for the key or can be created for this key.
+
+
+
+
+
+
+ getUpdatedAt()
+
+
+
+
+ Get the updatedAt for the object, or null if unsaved.
+
+
+ public
+ getUpdatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ has()
+
+
+
+
+ Check if the object has a given key.
+
+
+ public
+ has ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ hasFailed()
+
+
+
+
+ Indicates whether this push has failed
+
+
+ public
+ hasFailed ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ hasRegisteredSubclass()
+
+
+
+
+ Check whether there is a subclass registered for a given parse class.
+
+
+ public
+ static hasRegisteredSubclass ( string $parseClassName ) : bool
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ hasSucceeded()
+
+
+
+
+ Indicates whether this push has succeeded
+
+
+ public
+ hasSucceeded ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ increment()
+
+
+
+
+ Increment a numeric key by a certain value.
+
+
+ public
+ increment ( string $key [ , int $value = 1 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for numeric value on object to increment.
+
+
+
+
+ $value
+ : int
+ = 1
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ isDataAvailable()
+
+
+
+
+ Returns true if the object has been fetched.
+
+
+ public
+ isDataAvailable ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isDirty()
+
+
+
+
+ Check if the object or any of its child objects have unsaved operations.
+
+
+ public
+ isDirty ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isKeyDirty()
+
+
+
+
+ Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ public
+ isKeyDirty ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isPending()
+
+
+
+
+ Indicates whether this push is pending
+
+
+ public
+ isPending ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isRunning()
+
+
+
+
+ Indicates whether this push is running
+
+
+ public
+ isRunning ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isScheduled()
+
+
+
+
+ Indicates whether this push is scheduled
+
+
+ public
+ isScheduled ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ query()
+
+
+
+
+ Creates a ParseQuery for the subclass of ParseObject.
+
+
+ public
+ static query ( ) : ParseQuery
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+
+
+
+
+
+
+ registerSubclass()
+
+
+
+
+ Register a subclass. Should be called before any other Parse functions.
+
+
+ public
+ static registerSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Remove a value from an array for an object key.
+
+
+ public
+ remove ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove the value from on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to remove from the array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ revert()
+
+
+
+
+ Revert all unsaved operations.
+
+
+ public
+ revert ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Save Object to Parse.
+
+
+ public
+ save ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ saveAll()
+
+
+
+
+ Save all the objects in the provided array.
+
+
+ public
+ static saveAll ( array<string|int, mixed> $list [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $list
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Validate and set a value for an object key.
+
+
+ public
+ set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set a value for on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setACL()
+
+
+
+
+ Set ACL for this object.
+
+
+ public
+ setACL ( ParseACL $acl ) : mixed
+
+
+
+ Parameters
+
+
+ $acl
+ : ParseACL
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setArray()
+
+
+
+
+ Set an array value for an object key.
+
+
+ public
+ setArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setAssociativeArray()
+
+
+
+
+ Set an associative array value for an object key.
+
+
+ public
+ setAssociativeArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDirty()
+
+
+
+
+ Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ protected
+ _isDirty ( bool $considerChildren ) : bool
+
+
+
+ Parameters
+
+
+ $considerChildren
+ : bool
+
+
+ Whether to consider children when checking for dirty state
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ rebuildEstimatedData()
+
+
+
+
+ Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ protected
+ rebuildEstimatedData ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDataAvailable()
+
+
+
+
+ Returns whether or not data is available for a given key
+
+
+ private
+ _isDataAvailable ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check availability of
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ applyOperations()
+
+
+
+
+ Apply operations to a target object.
+
+
+ private
+ applyOperations ( array<string|int, mixed> $operations , array<string|int, mixed> & $target ) : mixed
+
+
+
+ Parameters
+
+
+ $operations
+ : array<string|int, mixed>
+
+
+ Operations set to apply.
+
+
+
+
+ $target
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ canBeSerialized()
+
+
+
+
+ Determine if the current object can be serialized for saving.
+
+
+ private
+ canBeSerialized ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ canBeSerializedAsValue()
+
+
+
+
+ Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ private
+ static canBeSerializedAsValue ( mixed $object ) : bool
+
+
+
+ Parameters
+
+
+ $object
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ deepSave()
+
+
+
+
+ Save object and unsaved children within.
+
+
+ private
+ static deepSave ( ParseObject |array<string|int, mixed> $target [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $target
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyBatch()
+
+
+
+
+ Destroy batch of objects.
+
+
+ private
+ static destroyBatch ( array<string|int, ParseObject > $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, ParseObject >
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ findUnsavedChildren()
+
+
+
+
+ Find unsaved children inside an object.
+
+
+ private
+ static findUnsavedChildren ( ParseObject $object , array<string|int, mixed> & $unsavedChildren , array<string|int, mixed> & $unsavedFiles ) : mixed
+
+
+
+ Parameters
+
+
+ $object
+ : ParseObject
+
+
+
+
+
+
+ $unsavedChildren
+ : array<string|int, mixed>
+
+
+ Array to populate with children.
+
+
+
+
+ $unsavedFiles
+ : array<string|int, mixed>
+
+
+ Array to populate with files.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACLWithCopy()
+
+
+
+
+ Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ private
+ getACLWithCopy ( bool $mayCopy ) : ParseACL |null
+
+
+
+ Parameters
+
+
+ $mayCopy
+ : bool
+
+
+ Whether to return a copy of this acl or not
+
+
+
+
+
+
+
+ Return values
+ ParseACL |null
+ —
+
+
+
+
+
+
+ getSaveJSON()
+
+
+
+
+ Returns JSON object of the unsaved operations.
+
+
+ private
+ getSaveJSON ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getSubclass()
+
+
+
+
+ Gets the Subclass className if exists, otherwise false.
+
+
+ private
+ static getSubclass ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ hasDirtyChildren()
+
+
+
+
+ Determines whether this object has child objects that are dirty
+
+
+ private
+ hasDirtyChildren ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ mergeAfterSave()
+
+
+
+
+ Merge server data after a save completes.
+
+
+ private
+ mergeAfterSave ( array<string|int, mixed> $result ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromObject()
+
+
+
+
+ Merge data from other object.
+
+
+ private
+ mergeFromObject ( ParseObject $other ) : mixed
+
+
+
+ Parameters
+
+
+ $other
+ : ParseObject
+
+
+ Other object to merge data from
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromServer()
+
+
+
+
+ Merges data received from the server.
+
+
+ private
+ mergeFromServer ( array<string|int, mixed> $data [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ toObjectIdArray()
+
+
+
+
+ Creates an array of object ids from a given array of ParseObjects
+
+
+ private
+ static toObjectIdArray ( array<string|int, mixed> $objects ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Objects to create id array from
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ traverse()
+
+
+
+
+ Traverse object to find children.
+
+
+ private
+ static traverse ( bool $deep , ParseObject |array<string|int, mixed> & $object , callable $mapFunction [ , array<string|int, mixed> $seen = [] ] ) : mixed
+
+
+
+ Parameters
+
+
+ $deep
+ : bool
+
+
+ Should this call traverse deeply
+
+
+
+
+ $object
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $mapFunction
+ : callable
+
+
+ Function to call for every item.
+
+
+
+
+ $seen
+ : array<string|int, mixed>
+ = []
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ The result of calling mapFunction on the root object.
+
+
+
+
+
+
+ updateWithFetchedResults()
+
+
+
+
+ Merges an existing array of objects with their fetched counterparts
+
+
+ private
+ static updateWithFetchedResults ( array<string|int, mixed> $objects , array<string|int, mixed> $fetched ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Original objects to update
+
+
+
+
+ $fetched
+ : array<string|int, mixed>
+
+
+ Fetched object data to update with
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseQuery.html b/classes/Parse-ParseQuery.html
new file mode 100644
index 00000000..b9925db9
--- /dev/null
+++ b/classes/Parse-ParseQuery.html
@@ -0,0 +1,5053 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseQuery
+
+
+
+
+
+
+
+
+
+ Class ParseQuery - Handles querying data from Parse.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $className
+
+ : string
+
+Class name for data stored on Parse.
+
+
+ $count
+
+ : int
+
+Determines if the query is a count query or a results query.
+
+
+ $excludes
+
+ : array<string|int, mixed>
+
+Exclude keys.
+
+
+ $includeReadPreference
+
+ : string
+
+The read preference for the queries to include pointers.
+
+
+ $includes
+
+ : array<string|int, mixed>
+
+Include nested objects.
+
+
+ $limit
+
+ : int
+
+Limit of results, defaults to 100 when not explicitly set.
+
+
+ $orderBy
+
+ : array<string|int, mixed>
+
+Order By keys.
+
+
+ $readPreference
+
+ : string
+
+The read preference for the main query.
+
+
+ $selectedKeys
+
+ : array<string|int, mixed>
+
+Include certain keys only.
+
+
+ $skip
+
+ : int
+
+Skip from the beginning of the search results.
+
+
+ $subqueryReadPreference
+
+ : string
+
+The read preference for the sub queries.
+
+
+ $where
+
+ : array<string|int, mixed>
+
+Where constraints.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse Query for a given Parse Class.
+
+
+ _getOptions()
+
+ : array<string|int, mixed>
+
+Returns an associative array of the query constraints.
+
+
+ _setConditions()
+
+ : mixed
+
+Sets the conditions of this parse query from an array
+
+
+ addAscending()
+
+ : ParseQuery
+
+Set the query orderBy to ascending for the given key(s). It can also add
+secondary sort descriptors without overwriting the existing order.
+
+
+ addDescending()
+
+ : ParseQuery
+
+Set the query orderBy to descending for a given key(s). It can also add
+secondary sort descriptors without overwriting the existing order.
+
+
+ aggregate()
+
+ : array<string|int, mixed>
+
+Execute an aggregate query and returns aggregate results.
+
+
+ andQueries()
+
+ : ParseQuery
+
+Constructs a ParseQuery object that is the AND of the passed in queries objects.
+
+
+ ascending()
+
+ : ParseQuery
+
+Set the query orderBy to ascending for the given key(s). It overwrites the
+existing order criteria.
+
+
+ containedBy()
+
+ : ParseQuery
+
+Adds a constraint to the query that requires a particular key's value to
+be contained by the provided list of values. Get objects where all array elements match.
+
+
+ containedIn()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+be contained in the provided list of values.
+
+
+ contains()
+
+ : ParseQuery
+
+Adds a constraint for finding string values that contain a provided
+string. This may be slow for large datasets.
+
+
+ containsAll()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+contain each one of the provided list of values.
+
+
+ containsAllStartingWith()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+contain each one of the provided list of values starting with the given string.
+
+
+ count()
+
+ : int
+
+Execute a count query and return the count.
+
+
+ descending()
+
+ : ParseQuery
+
+Set the query orderBy to descending for a given key(s). It overwrites the
+existing order criteria.
+
+
+ distinct()
+
+ : array<string|int, mixed>
+
+Execute a distinct query and return unique values.
+
+
+ doesNotExist()
+
+ : ParseQuery
+
+Add a constraint for finding objects that not contain the given key.
+
+
+ doesNotMatchKeyInQuery()
+
+ : ParseQuery
+
+Add a constraint that requires that a key's value not match a value in an
+object returned by the given query.
+
+
+ doesNotMatchQuery()
+
+ : ParseQuery
+
+Add a constraint that requires that a key's value not matches a ParseQuery
+constraint.
+
+
+ each()
+
+ : mixed
+
+Iterates over each result of a query, calling a callback for each one. The
+items are processed in an unspecified order. The query may not have any
+sort order, and may not use limit or skip.
+
+
+ endsWith()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+end with the provided value.
+
+
+ equalTo()
+
+ : ParseQuery
+
+Set a constraint for a field matching a given value.
+
+
+ excludeKey()
+
+ : ParseQuery
+
+Restricts the fields of the returned Parse.Objects to all keys except the
+provided keys. Exclude takes precedence over select and include.
+
+
+ exists()
+
+ : ParseQuery
+
+Add a constraint for finding objects that contain the given key.
+
+
+ find()
+
+ : array<string|int, ParseObject >
+
+Execute a find query and return the results.
+
+
+ first()
+
+ : array<string|int, mixed>|ParseObject
+
+Execute a query to get only the first result.
+
+
+ fullText()
+
+ : ParseQuery
+
+Adds a constraint for finding string values that contain a provided
+string using Full Text Search
+
+
+ get()
+
+ : array<string|int, mixed>|ParseObject
+
+Execute a query to retrieve a specific object.
+
+
+ greaterThan()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+be greater than the provided value.
+
+
+ greaterThanOrEqualTo()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+be greater than or equal to the provided value.
+
+
+ greaterThanOrEqualToRelativeTime()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+be greater than or equal to the provided relative time string.
+
+
+ greaterThanRelativeTime()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+be greater than the provided relative time string.
+
+
+ handleQueryResult()
+
+ : array<string|int, mixed>
+
+Handles result from ParseClient::_request
+
+
+ includeAllKeys()
+
+ : ParseQuery
+
+Includes all nested Parse.Objects.
+
+
+ includeKey()
+
+ : ParseQuery
+
+Include nested Parse Objects for the provided key. You can use dot
+notation to specify which fields in the included object are also fetch.
+
+
+ lessThan()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+be less than the provided value.
+
+
+ lessThanOrEqualTo()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+be less than or equal to the provided value.
+
+
+ lessThanOrEqualToRelativeTime()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+be less than or equal to the provided date string.
+
+
+ lessThanRelativeTime()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+be less than the provided relative time string.
+
+
+ limit()
+
+ : ParseQuery
+
+Set the limit parameter as a query constraint.
+
+
+ matches()
+
+ : ParseQuery
+
+Adds a regular expression constraint for finding string values that match
+the provided regular expression.
+
+
+ matchesKeyInQuery()
+
+ : ParseQuery
+
+Add a constraint that requires that a key's value matches a value in an
+object returned by the given query.
+
+
+ matchesQuery()
+
+ : ParseQuery
+
+Add a constraint that requires that a key's value matches a ParseQuery
+constraint.
+
+
+ near()
+
+ : ParseQuery
+
+Add a proximity based constraint for finding objects with key point
+values near the point given.
+
+
+ norQueries()
+
+ : ParseQuery
+
+Constructs a ParseQuery object that is the NOR of the passed in queries objects.
+
+
+ notContainedIn()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+not be contained in the provided list of values.
+
+
+ notEqualTo()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+be not equal to the provided value.
+
+
+ orQueries()
+
+ : ParseQuery
+
+Constructs a ParseQuery object that is the OR of the passed in queries objects.
+
+
+ polygonContains()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's
+coordinates that contains a ParseGeoPoint
+
+
+ readPreference()
+
+ : ParseQuery
+
+Changes the read preference that the backend will use when performing the query to the database.
+
+
+ relatedTo()
+
+ : ParseQuery
+
+Add constraint for parse relation.
+
+
+ select()
+
+ : ParseQuery
+
+Restrict the fields of the returned Parse Objects to include only the
+provided keys. If this is called multiple times, then all of the keys
+specified in each of the calls will be included.
+
+
+ skip()
+
+ : ParseQuery
+
+Set the skip parameter as a query constraint.
+
+
+ startsWith()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's value to
+start with the provided value.
+
+
+ withCount()
+
+ : ParseQuery
+
+The response will include the total number of objects satisfying this query,
+dispite limit / skip. Might be useful for pagination.
+
+
+ withinGeoBox()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's
+coordinates be contained within a given rectangular geographic bounding
+box.
+
+
+ withinKilometers()
+
+ : ParseQuery
+
+Add a proximity based constraint for finding objects with key point
+values near the point given and within the maximum distance given.
+
+
+ withinMiles()
+
+ : ParseQuery
+
+Add a proximity based constraint for finding objects with key point
+values near the point given and within the maximum distance given.
+
+
+ withinPolygon()
+
+ : ParseQuery
+
+Add a constraint to the query that requires a particular key's
+coordinates be contained within and on the bounds of a given polygon
+Supports closed and open (last point is connected to first) paths
+
+
+ withinRadians()
+
+ : ParseQuery
+
+Add a proximity based constraint for finding objects with key point
+values near the point given and within the maximum distance given.
+
+
+ _and()
+
+ : ParseQuery
+
+Add constraint that at all of the passed in queries matches.
+
+
+ _matchClassname()
+
+ : string
+
+All queries must have same class name.
+
+
+ _mergeQueries()
+
+ : ParseQuery
+
+Combines queries for NOR, AND, OR queries.
+
+
+ _nor()
+
+ : ParseQuery
+
+Add constraint that at none of the passed in queries matches.
+
+
+ _or()
+
+ : ParseQuery
+
+Add constraint that at least one of the passed in queries matches.
+
+
+ addCondition()
+
+ : mixed
+
+Helper for condition queries.
+
+
+ buildQueryString()
+
+ : string
+
+Build query string from query constraints.
+
+
+ quote()
+
+ : string
+
+Converts a string into a regex that matches it.
+
+
+ regexStartWith()
+
+ : string
+
+Converts a string into a regex that matches it at the beginning
+
+
+
+
+
+
+
+
+
+
+
+
+ $className
+
+
+
+
+
+
+ Class name for data stored on Parse.
+
+
+ private
+ string
+ $className
+
+
+
+
+
+
+
+
+
+ $count
+
+
+
+
+
+
+ Determines if the query is a count query or a results query.
+
+
+ private
+ int
+ $count
+
+
+
+
+
+
+
+
+
+ $excludes
+
+
+
+
+
+
+ Exclude keys.
+
+
+ private
+ array<string|int, mixed>
+ $excludes
+ = []
+
+
+
+
+
+
+
+
+ $includeReadPreference
+
+
+
+
+
+
+ The read preference for the queries to include pointers.
+
+
+ private
+ string
+ $includeReadPreference
+
+
+
+
+
+
+
+
+
+ $includes
+
+
+
+
+
+
+ Include nested objects.
+
+
+ private
+ array<string|int, mixed>
+ $includes
+ = []
+
+
+
+
+
+
+
+
+ $limit
+
+
+
+
+
+
+ Limit of results, defaults to 100 when not explicitly set.
+
+
+ private
+ int
+ $limit
+ = -1
+
+
+
+
+
+
+
+
+ $orderBy
+
+
+
+
+
+
+ Order By keys.
+
+
+ private
+ array<string|int, mixed>
+ $orderBy
+ = []
+
+
+
+
+
+
+
+
+ $readPreference
+
+
+
+
+
+
+ The read preference for the main query.
+
+
+ private
+ string
+ $readPreference
+
+
+
+
+
+
+
+
+
+ $selectedKeys
+
+
+
+
+
+
+ Include certain keys only.
+
+
+ private
+ array<string|int, mixed>
+ $selectedKeys
+ = []
+
+
+
+
+
+
+
+
+ $skip
+
+
+
+
+
+
+ Skip from the beginning of the search results.
+
+
+ private
+ int
+ $skip
+ = 0
+
+
+
+
+
+
+
+
+ $subqueryReadPreference
+
+
+
+
+
+
+ The read preference for the sub queries.
+
+
+ private
+ string
+ $subqueryReadPreference
+
+
+
+
+
+
+
+
+
+ $where
+
+
+
+
+
+
+ Where constraints.
+
+
+ private
+ array<string|int, mixed>
+ $where
+ = []
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse Query for a given Parse Class.
+
+
+ public
+ __construct ( mixed $className ) : mixed
+
+
+
+ Parameters
+
+
+ $className
+ : mixed
+
+
+ Class Name of data on Parse.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _getOptions()
+
+
+
+
+ Returns an associative array of the query constraints.
+
+
+ public
+ _getOptions ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _setConditions()
+
+
+
+
+ Sets the conditions of this parse query from an array
+
+
+ public
+ _setConditions ( array<string|int, mixed> $conditions ) : mixed
+
+
+
+ Parameters
+
+
+ $conditions
+ : array<string|int, mixed>
+
+
+ Array of Conditions to set
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ addAscending()
+
+
+
+
+ Set the query orderBy to ascending for the given key(s). It can also add
+secondary sort descriptors without overwriting the existing order.
+
+
+ public
+ addAscending ( mixed $key ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : mixed
+
+
+ Key(s) to sort by, which is a string or an array of strings.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ addDescending()
+
+
+
+
+ Set the query orderBy to descending for a given key(s). It can also add
+secondary sort descriptors without overwriting the existing order.
+
+
+ public
+ addDescending ( mixed $key ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : mixed
+
+
+ Key(s) to sort by, which is a string or an array of strings.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ aggregate()
+
+
+
+
+ Execute an aggregate query and returns aggregate results.
+
+
+ public
+ aggregate ( array<string|int, mixed> $pipeline ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $pipeline
+ : array<string|int, mixed>
+
+
+ stages to process query
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ andQueries()
+
+
+
+
+ Constructs a ParseQuery object that is the AND of the passed in queries objects.
+
+
+ public
+ static andQueries ( array<string|int, mixed> $queryObjects ) : ParseQuery
+
+ All queries must have same class name.
+
+
+ Parameters
+
+
+ $queryObjects
+ : array<string|int, mixed>
+
+
+ Array of ParseQuery objects to AND.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+ If all queries don't have same class.
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ The query that is the AND of the passed in queries.
+
+
+
+
+
+
+ ascending()
+
+
+
+
+ Set the query orderBy to ascending for the given key(s). It overwrites the
+existing order criteria.
+
+
+ public
+ ascending ( mixed $key ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : mixed
+
+
+ Key(s) to sort by, which is a string or an array of strings.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ containedBy()
+
+
+
+
+ Adds a constraint to the query that requires a particular key's value to
+be contained by the provided list of values. Get objects where all array elements match.
+
+
+ public
+ containedBy ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The values that will match.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ containedIn()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+be contained in the provided list of values.
+
+
+ public
+ containedIn ( string $key , array<string|int, mixed> $values ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $values
+ : array<string|int, mixed>
+
+
+ The values that will match.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ contains()
+
+
+
+
+ Adds a constraint for finding string values that contain a provided
+string. This may be slow for large datasets.
+
+
+ public
+ contains ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The substring that the value must contain.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ containsAll()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+contain each one of the provided list of values.
+
+
+ public
+ containsAll ( string $key , array<string|int, mixed> $values ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to check. This key's value must be an array.
+
+
+
+
+ $values
+ : array<string|int, mixed>
+
+
+ The values that will match.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ containsAllStartingWith()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+contain each one of the provided list of values starting with the given string.
+
+
+ public
+ containsAllStartingWith ( string $key , array<string|int, mixed> $values ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to check. This key's value must be an array.
+
+
+
+
+ $values
+ : array<string|int, mixed>
+
+
+ The values that will match as starting string.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ count()
+
+
+
+
+ Execute a count query and return the count.
+
+
+ public
+ count ( [ bool $useMasterKey = false ] ) : int
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ If the query should use the master key
+
+
+
+
+
+
+
+ Return values
+ int
+ —
+
+
+
+
+
+
+ descending()
+
+
+
+
+ Set the query orderBy to descending for a given key(s). It overwrites the
+existing order criteria.
+
+
+ public
+ descending ( mixed $key ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : mixed
+
+
+ Key(s) to sort by, which is a string or an array of strings.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ distinct()
+
+
+
+
+ Execute a distinct query and return unique values.
+
+
+ public
+ distinct ( string $key ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ field to find distinct values
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ doesNotExist()
+
+
+
+
+ Add a constraint for finding objects that not contain the given key.
+
+
+ public
+ doesNotExist ( string $key ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key that should not exist.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ doesNotMatchKeyInQuery()
+
+
+
+
+ Add a constraint that requires that a key's value not match a value in an
+object returned by the given query.
+
+
+ public
+ doesNotMatchKeyInQuery ( string $key , string $queryKey , ParseQuery $query ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key that contains teh value that is being
+excluded.
+
+
+
+
+ $queryKey
+ : string
+
+
+ The key in objects returned by the query to
+match against.
+
+
+
+
+ $query
+ : ParseQuery
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ doesNotMatchQuery()
+
+
+
+
+ Add a constraint that requires that a key's value not matches a ParseQuery
+constraint.
+
+
+ public
+ doesNotMatchQuery ( string $key , ParseQuery $query ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key that the contains the object not to
+match the query.
+
+
+
+
+ $query
+ : ParseQuery
+
+
+ The query that should not match.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ each()
+
+
+
+
+ Iterates over each result of a query, calling a callback for each one. The
+items are processed in an unspecified order. The query may not have any
+sort order, and may not use limit or skip.
+
+
+ public
+ each ( callable $callback [ , bool $useMasterKey = false ] [ , int $batchSize = 100 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $callback
+ : callable
+
+
+ Callback that will be called with each result
+of the query.
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+
+
+
+
+ $batchSize
+ : int
+ = 100
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+ If query has sort, skip, or limit.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ endsWith()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+end with the provided value.
+
+
+ public
+ endsWith ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The substring that the value must end with.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ equalTo()
+
+
+
+
+ Set a constraint for a field matching a given value.
+
+
+ public
+ equalTo ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set up an equals constraint.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value the key must equal.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ excludeKey()
+
+
+
+
+ Restricts the fields of the returned Parse.Objects to all keys except the
+provided keys. Exclude takes precedence over select and include.
+
+
+ public
+ excludeKey ( mixed $key ) : ParseQuery
+
+ (Requires Parse Server 3.6.0+)
+
+
+ Parameters
+
+
+ $key
+ : mixed
+
+
+ The name(s) of the key(s) to exclude. It could be
+string, or an Array of string.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ exists()
+
+
+
+
+ Add a constraint for finding objects that contain the given key.
+
+
+ public
+ exists ( string $key ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key that should exist.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ find()
+
+
+
+
+ Execute a find query and return the results.
+
+
+ public
+ find ( [ bool $useMasterKey = false ] [ , bool $decodeObjects = true ] ) : array<string|int, ParseObject >
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+
+
+
+
+ $decodeObjects
+ : bool
+ = true
+
+ If set to false, will return raw data instead of ParseObject instances
+
+
+
+
+
+
+
+ Return values
+ array<string|int, ParseObject >
+ —
+
+
+
+
+
+
+ first()
+
+
+
+
+ Execute a query to get only the first result.
+
+
+ public
+ first ( [ bool $useMasterKey = false ] [ , bool $decodeObjects = true ] ) : array<string|int, mixed>|ParseObject
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ If the query should use the master key
+
+
+
+
+ $decodeObjects
+ : bool
+ = true
+
+ If set to false, will return raw data instead of ParseObject instances
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>|ParseObject
+ —
+ Returns the first object or an empty array
+
+
+
+
+
+
+ fullText()
+
+
+
+
+ Adds a constraint for finding string values that contain a provided
+string using Full Text Search
+
+
+ public
+ fullText ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The substring that the value must contain.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ get()
+
+
+
+
+ Execute a query to retrieve a specific object.
+
+
+ public
+ get ( string $objectId [ , bool $useMasterKey = false ] ) : array<string|int, mixed>|ParseObject
+
+
+
+ Parameters
+
+
+ $objectId
+ : string
+
+
+ Unique object id to retrieve.
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ If the query should use the master key
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>|ParseObject
+ —
+ Returns the selected object or an empty array
+
+
+
+
+
+
+ greaterThan()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+be greater than the provided value.
+
+
+ public
+ greaterThan ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The value that provides an Lower bound.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ greaterThanOrEqualTo()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+be greater than or equal to the provided value.
+
+
+ public
+ greaterThanOrEqualTo ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The value that provides a lower bound.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ greaterThanOrEqualToRelativeTime()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+be greater than or equal to the provided relative time string.
+
+
+ public
+ greaterThanOrEqualToRelativeTime ( string $key , string $relativeTime ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $relativeTime
+ : string
+
+
+ The relative time that provides a lower bound
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ greaterThanRelativeTime()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+be greater than the provided relative time string.
+
+
+ public
+ greaterThanRelativeTime ( string $key , string $relativeTime ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $relativeTime
+ : string
+
+
+ The relative time that provides a lower bound
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ handleQueryResult()
+
+
+
+
+ Handles result from ParseClient::_request
+
+
+ public
+ handleQueryResult ( array<string|int, mixed> $result , bool $decodeObjects ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Array of ParseObject raw data.
+
+
+
+
+ $decodeObjects
+ : bool
+
+
+ If set to false, will return raw data instead of ParseObject instances
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+ Array of ParseObjects or raw data.
+
+
+
+
+
+
+ includeAllKeys()
+
+
+
+
+ Includes all nested Parse.Objects.
+
+
+ public
+ includeAllKeys ( ) : ParseQuery
+
+ Requires Parse Server 3.0.0+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ includeKey()
+
+
+
+
+ Include nested Parse Objects for the provided key. You can use dot
+notation to specify which fields in the included object are also fetch.
+
+
+ public
+ includeKey ( mixed $key ) : ParseQuery
+
+ You can include all nested Parse Objects by passing in '*'. (Requires Parse Server 3.0.0+)
+
+
+ Parameters
+
+
+ $key
+ : mixed
+
+
+ The name(s) of the key(s) to include. It could be
+string, or an Array of string.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ lessThan()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+be less than the provided value.
+
+
+ public
+ lessThan ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The value that provides an Upper bound.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ lessThanOrEqualTo()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+be less than or equal to the provided value.
+
+
+ public
+ lessThanOrEqualTo ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The value that provides an upper bound.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ lessThanOrEqualToRelativeTime()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+be less than or equal to the provided date string.
+
+
+ public
+ lessThanOrEqualToRelativeTime ( string $key , string $relativeTime ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $relativeTime
+ : string
+
+
+ The relative time that provides an upper bound
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ lessThanRelativeTime()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+be less than the provided relative time string.
+
+
+ public
+ lessThanRelativeTime ( string $key , string $relativeTime ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $relativeTime
+ : string
+
+
+ The relative time that provides an upper bound
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ limit()
+
+
+
+
+ Set the limit parameter as a query constraint.
+
+
+ public
+ limit ( int $n ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $n
+ : int
+
+
+ Number of objects to return from the query.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ matches()
+
+
+
+
+ Adds a regular expression constraint for finding string values that match
+the provided regular expression.
+
+
+ public
+ matches ( string $key , string $regex [ , string $modifiers = '' ] ) : ParseQuery
+
+ This may be slow for large datasets.
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key that the string to match is stored in.
+
+
+
+
+ $regex
+ : string
+
+
+ The regular expression pattern to match.
+
+
+
+
+ $modifiers
+ : string
+ = ''
+
+ Modifies the search, supports i, m
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ matchesKeyInQuery()
+
+
+
+
+ Add a constraint that requires that a key's value matches a value in an
+object returned by the given query.
+
+
+ public
+ matchesKeyInQuery ( string $key , string $queryKey , ParseQuery $query ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key that contains the value that is being
+matched.
+
+
+
+
+ $queryKey
+ : string
+
+
+ The key in objects returned by the query to
+match against.
+
+
+
+
+ $query
+ : ParseQuery
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ matchesQuery()
+
+
+
+
+ Add a constraint that requires that a key's value matches a ParseQuery
+constraint.
+
+
+ public
+ matchesQuery ( string $key , ParseQuery $query ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key that the contains the object to match
+the query.
+
+
+
+
+ $query
+ : ParseQuery
+
+
+ The query that should match.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ near()
+
+
+
+
+ Add a proximity based constraint for finding objects with key point
+values near the point given.
+
+
+ public
+ near ( string $key , ParseGeoPoint $point ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key that the ParseGeoPoint is stored in.
+
+
+
+
+ $point
+ : ParseGeoPoint
+
+
+ The reference ParseGeoPoint that is used.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ norQueries()
+
+
+
+
+ Constructs a ParseQuery object that is the NOR of the passed in queries objects.
+
+
+ public
+ static norQueries ( array<string|int, mixed> $queryObjects ) : ParseQuery
+
+ All queries must have same class name.
+
+
+ Parameters
+
+
+ $queryObjects
+ : array<string|int, mixed>
+
+
+ Array of ParseQuery objects to NOR.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+ If all queries don't have same class.
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ The query that is the NOR of the passed in queries.
+
+
+
+
+
+
+ notContainedIn()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+not be contained in the provided list of values.
+
+
+ public
+ notContainedIn ( string $key , array<string|int, mixed> $values ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $values
+ : array<string|int, mixed>
+
+
+ The values that will not match.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ notEqualTo()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+be not equal to the provided value.
+
+
+ public
+ notEqualTo ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The value that must not be equalled.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ orQueries()
+
+
+
+
+ Constructs a ParseQuery object that is the OR of the passed in queries objects.
+
+
+ public
+ static orQueries ( array<string|int, mixed> $queryObjects ) : ParseQuery
+
+ All queries must have same class name.
+
+
+ Parameters
+
+
+ $queryObjects
+ : array<string|int, mixed>
+
+
+ Array of ParseQuery objects to OR.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+ If all queries don't have same class.
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ The query that is the OR of the passed in queries.
+
+
+
+
+
+
+ polygonContains()
+
+
+
+
+ Add a constraint to the query that requires a particular key's
+coordinates that contains a ParseGeoPoint
+
+
+ public
+ polygonContains ( string $key , ParseGeoPoint $point ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key of the ParsePolygon
+
+
+
+
+ $point
+ : ParseGeoPoint
+
+
+ The point that will be contained.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ readPreference()
+
+
+
+
+ Changes the read preference that the backend will use when performing the query to the database.
+
+
+ public
+ readPreference ( string $readPreference [ , string $includeReadPreference = null ] [ , string $subqueryReadPreference = null ] ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $readPreference
+ : string
+
+
+ The read preference for the main query.
+
+
+
+
+ $includeReadPreference
+ : string
+ = null
+
+ The read preference for the queries to include pointers.
+
+
+
+
+ $subqueryReadPreference
+ : string
+ = null
+
+ The read preference for the sub queries.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+
+
+ Add constraint for parse relation.
+
+
+ public
+ relatedTo ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ select()
+
+
+
+
+ Restrict the fields of the returned Parse Objects to include only the
+provided keys. If this is called multiple times, then all of the keys
+specified in each of the calls will be included.
+
+
+ public
+ select ( mixed $key ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : mixed
+
+
+ The name(s) of the key(s) to include. It could be
+string, or an Array of string.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ skip()
+
+
+
+
+ Set the skip parameter as a query constraint.
+
+
+ public
+ skip ( int $n ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $n
+ : int
+
+
+ Number of objects to skip from start of results.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ startsWith()
+
+
+
+
+ Add a constraint to the query that requires a particular key's value to
+start with the provided value.
+
+
+ public
+ startsWith ( string $key , mixed $value ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The substring that the value must start with.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ withCount()
+
+
+
+
+ The response will include the total number of objects satisfying this query,
+dispite limit / skip. Might be useful for pagination.
+
+
+ public
+ withCount ( [ bool $includeCount = true ] ) : ParseQuery
+
+ Note: the results will be an object
+results
: holding {ParseObject} array and count
: integer holding total number
+
+
+ Parameters
+
+
+ $includeCount
+ : bool
+ = true
+
+ If response should include count, true by default.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ withinGeoBox()
+
+
+
+
+ Add a constraint to the query that requires a particular key's
+coordinates be contained within a given rectangular geographic bounding
+box.
+
+
+ public
+ withinGeoBox ( string $key , ParseGeoPoint $southwest , ParseGeoPoint $northeast ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key of the ParseGeoPoint
+
+
+
+
+ $southwest
+ : ParseGeoPoint
+
+
+ The lower-left corner of the box.
+
+
+
+
+ $northeast
+ : ParseGeoPoint
+
+
+ The upper-right corner of the box.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ withinKilometers()
+
+
+
+
+ Add a proximity based constraint for finding objects with key point
+values near the point given and within the maximum distance given.
+
+
+ public
+ withinKilometers ( string $key , ParseGeoPoint $point , int $maxDistance [ , bool $sort = true ] ) : ParseQuery
+
+ Radius of earth used is 6371.0 kilometers.
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key of the ParseGeoPoint
+
+
+
+
+ $point
+ : ParseGeoPoint
+
+
+ The ParseGeoPoint that is used.
+
+
+
+
+ $maxDistance
+ : int
+
+
+ Maximum distance (in kilometers)
+
+
+
+
+ $sort
+ : bool
+ = true
+
+ Return objects sorted by distance
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ withinMiles()
+
+
+
+
+ Add a proximity based constraint for finding objects with key point
+values near the point given and within the maximum distance given.
+
+
+ public
+ withinMiles ( string $key , ParseGeoPoint $point , int $maxDistance [ , bool $sort = true ] ) : ParseQuery
+
+ Radius of earth used is 3958.8 miles.
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key of the ParseGeoPoint
+
+
+
+
+ $point
+ : ParseGeoPoint
+
+
+ The ParseGeoPoint that is used.
+
+
+
+
+ $maxDistance
+ : int
+
+
+ Maximum distance (in miles)
+
+
+
+
+ $sort
+ : bool
+ = true
+
+ Return objects sorted by distance
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ withinPolygon()
+
+
+
+
+ Add a constraint to the query that requires a particular key's
+coordinates be contained within and on the bounds of a given polygon
+Supports closed and open (last point is connected to first) paths
+
+
+ public
+ withinPolygon ( string $key , array<string|int, mixed> $points ) : ParseQuery
+
+ Polygon must have at least 3 points
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key of the ParseGeoPoint
+
+
+
+
+ $points
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ withinRadians()
+
+
+
+
+ Add a proximity based constraint for finding objects with key point
+values near the point given and within the maximum distance given.
+
+
+ public
+ withinRadians ( string $key , ParseGeoPoint $point , int $maxDistance [ , bool $sort = true ] ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key of the ParseGeoPoint
+
+
+
+
+ $point
+ : ParseGeoPoint
+
+
+ The ParseGeoPoint that is used.
+
+
+
+
+ $maxDistance
+ : int
+
+
+ Maximum distance (in radians)
+
+
+
+
+ $sort
+ : bool
+ = true
+
+ Return objects sorted by distance
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns this query, so you can chain this call.
+
+
+
+
+
+
+ _and()
+
+
+
+
+ Add constraint that at all of the passed in queries matches.
+
+
+ private
+ _and ( array<string|int, mixed> $queries ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $queries
+ : array<string|int, mixed>
+
+
+ The list of queries to OR.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ _matchClassname()
+
+
+
+
+ All queries must have same class name.
+
+
+ private
+ static _matchClassname ( array<string|int, mixed> $queryObjects ) : string
+
+
+
+ Parameters
+
+
+ $queryObjects
+ : array<string|int, mixed>
+
+
+ Array of ParseQuery objects.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+ If all queries don't have same class.
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ _mergeQueries()
+
+
+
+
+ Combines queries for NOR, AND, OR queries.
+
+
+ private
+ _mergeQueries ( string $key , array<string|int, mixed> $queries ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The condition $and, $or, $nor.
+
+
+
+
+ $queries
+ : array<string|int, mixed>
+
+
+ The list of queries to combine.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ _nor()
+
+
+
+
+ Add constraint that at none of the passed in queries matches.
+
+
+ private
+ _nor ( array<string|int, mixed> $queries ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $queries
+ : array<string|int, mixed>
+
+
+ The list of queries to NOR.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ _or()
+
+
+
+
+ Add constraint that at least one of the passed in queries matches.
+
+
+ private
+ _or ( array<string|int, mixed> $queries ) : ParseQuery
+
+
+
+ Parameters
+
+
+ $queries
+ : array<string|int, mixed>
+
+
+ The list of queries to OR.
+
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ Returns the query, so you can chain this call.
+
+
+
+
+
+
+ addCondition()
+
+
+
+
+ Helper for condition queries.
+
+
+ private
+ addCondition ( string $key , string $condition , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to where constraints
+
+
+
+
+ $condition
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+ The condition value, can be a string or an array of strings
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ buildQueryString()
+
+
+
+
+ Build query string from query constraints.
+
+
+ private
+ buildQueryString ( array<string|int, mixed> $queryOptions ) : string
+
+
+
+ Parameters
+
+
+ $queryOptions
+ : array<string|int, mixed>
+
+
+ Associative array of the query constraints.
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ quote()
+
+
+
+
+ Converts a string into a regex that matches it.
+
+
+ private
+ quote ( mixed $s ) : string
+
+ Surrounding with \Q .. \E does this, we just need to escape \E's in
+the text separately.
+
+
+ Parameters
+
+
+ $s
+ : mixed
+
+
+ The string or array being replaced.
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+ Returns the string converted.
+
+
+
+
+
+
+ regexStartWith()
+
+
+
+
+ Converts a string into a regex that matches it at the beginning
+
+
+ private
+ regexStartWith ( mixed $s ) : string
+
+
+
+ Parameters
+
+
+ $s
+ : mixed
+
+
+ The string or array being replaced.
+
+
+
+
+
+
+
+ Return values
+ string
+ —
+ Returns the string converted.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseRelation.html b/classes/Parse-ParseRelation.html
new file mode 100644
index 00000000..e673bb54
--- /dev/null
+++ b/classes/Parse-ParseRelation.html
@@ -0,0 +1,723 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseRelation
+
+
+
+
+
+ implements
+ Encodable
+
+
+
+
+
+ Class ParseRelation - A class that is used to access all of the children of a many-to-many relationship.
+
+ Each instance of ParseRelation is associated with a particular parent object and key.
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ Encodable
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $key
+
+ : string
+
+The key of the relation in the parent object.
+
+
+ $parent
+
+ : ParseObject
+
+The parent of this relation.
+
+
+ $targetClassName
+
+ : string
+
+The className of the target objects.
+
+
+ __construct()
+
+ : mixed
+
+Creates a new Relation for the given parent object, key and class name of target objects.
+
+
+ _encode()
+
+ : array<string|int, mixed>
+
+Return an encoded array of this relation.
+
+
+ add()
+
+ : mixed
+
+Adds a ParseObject or an array of ParseObjects to the relation.
+
+
+ getQuery()
+
+ : ParseQuery
+
+Gets a query that can be used to query the objects in this relation.
+
+
+ getTargetClass()
+
+ : string
+
+Returns the target classname for the relation.
+
+
+ remove()
+
+ : mixed
+
+Removes a ParseObject or an array of ParseObjects from this relation.
+
+
+ setParent()
+
+ : mixed
+
+Set the parent object for the relation.
+
+
+ setTargetClass()
+
+ : mixed
+
+Set the target classname for the relation.
+
+
+
+
+
+
+
+
+
+
+
+
+ $key
+
+
+
+
+
+
+ The key of the relation in the parent object.
+
+
+ private
+ string
+ $key
+
+
+
+
+
+
+
+
+
+ $parent
+
+
+
+
+
+
+ The parent of this relation.
+
+
+ private
+ ParseObject
+ $parent
+
+
+
+
+
+
+
+
+
+ $targetClassName
+
+
+
+
+
+
+ The className of the target objects.
+
+
+ private
+ string
+ $targetClassName
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Creates a new Relation for the given parent object, key and class name of target objects.
+
+
+ public
+ __construct ( ParseObject $parent , string $key [ , string $targetClassName = null ] ) : mixed
+
+
+
+ Parameters
+
+
+ $parent
+ : ParseObject
+
+
+ The parent of this relation.
+
+
+
+
+ $key
+ : string
+
+
+ The key of the relation in the parent object.
+
+
+
+
+ $targetClassName
+ : string
+ = null
+
+ The className of the target objects.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Return an encoded array of this relation.
+
+
+ public
+ _encode ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ add()
+
+
+
+
+ Adds a ParseObject or an array of ParseObjects to the relation.
+
+
+ public
+ add ( mixed $objects ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : mixed
+
+
+ The item or items to add.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getQuery()
+
+
+
+
+ Gets a query that can be used to query the objects in this relation.
+
+
+ public
+ getQuery ( ) : ParseQuery
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+ That restricts the results to objects in this relations.
+
+
+
+
+
+
+ getTargetClass()
+
+
+
+
+ Returns the target classname for the relation.
+
+
+ public
+ getTargetClass ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Removes a ParseObject or an array of ParseObjects from this relation.
+
+
+ public
+ remove ( mixed $objects ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : mixed
+
+
+ The item or items to remove.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setParent()
+
+
+
+
+ Set the parent object for the relation.
+
+
+ public
+ setParent ( ParseObject $parent ) : mixed
+
+
+
+ Parameters
+
+
+ $parent
+ : ParseObject
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setTargetClass()
+
+
+
+
+ Set the target classname for the relation.
+
+
+ public
+ setTargetClass ( string $className ) : mixed
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseRole.html b/classes/Parse-ParseRole.html
new file mode 100644
index 00000000..33d18168
--- /dev/null
+++ b/classes/Parse-ParseRole.html
@@ -0,0 +1,4927 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseRole
+
+
+ extends ParseObject
+
+
+
+
+
+
+
+
+
+ Class ParseRole - Representation of an access Role.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $parseClassName
+
+ : string
+
+Parse Class name
+
+
+ $operationSet
+
+ : array<string|int, mixed>
+
+Set of unsaved operations.
+
+
+ $serverData
+
+ : array<string|int, mixed>
+
+Data as it exists on the server.
+
+
+ $className
+
+ : string
+
+Class name for data on Parse.
+
+
+ $createdAt
+
+ : DateTime
+
+Timestamp when object was created.
+
+
+ $dataAvailability
+
+ : array<string|int, mixed>
+
+Determine if data available for a given key or not.
+
+
+ $estimatedData
+
+ : array<string|int, mixed>
+
+Estimated value of applying operationSet to serverData.
+
+
+ $hasBeenFetched
+
+ : bool
+
+Whether the object has been fully fetched from Parse.
+
+
+ $objectId
+
+ : string
+
+Unique identifier on Parse.
+
+
+ $registeredSubclasses
+
+ : array<string|int, mixed>
+
+Holds the registered subclasses and Parse class names.
+
+
+ $updatedAt
+
+ : DateTime
+
+Timestamp when object was last updated.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse Object.
+
+
+ __get()
+
+ : mixed
+
+Getter to catch direct property calls and pass them to the get function.
+
+
+ __isset()
+
+ : bool
+
+Magic handler to catch isset calls to object properties.
+
+
+ __set()
+
+ : mixed
+
+Setter to catch property calls and protect certain fields.
+
+
+ _encode()
+
+ : string
+
+Return a JSON encoded value of the object.
+
+
+ _mergeAfterFetch()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+ : mixed
+
+Merges data received from the server with a given selected keys.
+
+
+ _mergeMagicFields()
+
+ : mixed
+
+Handle merging of special fields for the object.
+
+
+ _performOperation()
+
+ : mixed
+
+Perform an operation on an object property.
+
+
+ _toPointer()
+
+ : array<string|int, mixed>
+
+Gets a Pointer referencing this Object.
+
+
+ _unregisterSubclass()
+
+ : mixed
+
+Un-register a subclass.
+
+
+ add()
+
+ : mixed
+
+Add a value to an array property.
+
+
+ addUnique()
+
+ : mixed
+
+Add unique values to an array property.
+
+
+ beforeSave()
+
+ : void
+
+Before save stub
+
+
+ clear()
+
+ : mixed
+
+Clear all keys on this object by creating delete operations
+for each key.
+
+
+ create()
+
+ : ParseObject
+
+Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ createRole()
+
+ : ParseRole
+
+Create a ParseRole object with a given name and ACL.
+
+
+ decode()
+
+ : ParseObject
+
+Decodes and returns a ParseObject from an encoded object
+
+
+ delete()
+
+ : mixed
+
+Delete a key from an object.
+
+
+ destroy()
+
+ : mixed
+
+Delete the object from Parse.
+
+
+ destroyAll()
+
+ : mixed
+
+Delete an array of objects.
+
+
+ encode()
+
+ : string
+
+Returns a JSON encoded array of a ParseObject
+
+
+ exists()
+
+ : bool
+
+Returns true if this object exists on the Server
+
+
+ fetch()
+
+ : ParseObject
+
+Fetch the whole object from the server and update the local object.
+
+
+ fetchAll()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse objects from the server.
+
+
+ fetchAllWithInclude()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ fetchWithInclude()
+
+ : ParseObject
+
+Fetch an array of Parse objects from the server.
+
+
+ get()
+
+ : mixed
+
+Get current value for an object property.
+
+
+ getACL()
+
+ : ParseACL
+
+Get the ACL assigned to the object.
+
+
+ getAllKeys()
+
+ : array<string|int, mixed>
+
+Get values for all keys of an object.
+
+
+ getClassName()
+
+ : string
+
+Get the Parse Class Name for the object.
+
+
+ getCreatedAt()
+
+ : DateTime |null
+
+Get the createdAt for the object, or null if unsaved.
+
+
+ getName()
+
+ : string
+
+Returns the role name.
+
+
+ getObjectId()
+
+ : string|null
+
+Get the objectId for the object, or null if unsaved.
+
+
+ getRegisteredSubclass()
+
+ : ParseObject
+
+Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ getRelation()
+
+ : ParseRelation
+
+Access or create a Relation value for a key.
+
+
+ getRoles()
+
+ : ParseRelation
+
+Gets the ParseRelation for the ParseRoles which are direct children of
+ this role. These roles' users are granted any privileges that this role
+ has been granted.
+
+
+ getUpdatedAt()
+
+ : DateTime |null
+
+Get the updatedAt for the object, or null if unsaved.
+
+
+ getUsers()
+
+ : ParseRelation
+
+Gets the ParseRelation for the ParseUsers which are direct children of
+ this role. These users are granted any privileges that this role
+ has been granted.
+
+
+ has()
+
+ : bool
+
+Check if the object has a given key.
+
+
+ hasRegisteredSubclass()
+
+ : bool
+
+Check whether there is a subclass registered for a given parse class.
+
+
+ increment()
+
+ : mixed
+
+Increment a numeric key by a certain value.
+
+
+ isDataAvailable()
+
+ : bool
+
+Returns true if the object has been fetched.
+
+
+ isDirty()
+
+ : bool
+
+Check if the object or any of its child objects have unsaved operations.
+
+
+ isKeyDirty()
+
+ : bool
+
+Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ query()
+
+ : ParseQuery
+
+Creates a ParseQuery for the subclass of ParseObject.
+
+
+ registerSubclass()
+
+ : mixed
+
+Register a subclass. Should be called before any other Parse functions.
+
+
+ remove()
+
+ : mixed
+
+Remove a value from an array for an object key.
+
+
+ revert()
+
+ : mixed
+
+Revert all unsaved operations.
+
+
+ save()
+
+ : mixed
+
+Handles pre-saving of this role
+Calls ParseObject::save to finish
+
+
+ saveAll()
+
+ : mixed
+
+Save all the objects in the provided array.
+
+
+ set()
+
+ : mixed
+
+Validate and set a value for an object key.
+
+
+ setACL()
+
+ : mixed
+
+Set ACL for this object.
+
+
+ setArray()
+
+ : mixed
+
+Set an array value for an object key.
+
+
+ setAssociativeArray()
+
+ : mixed
+
+Set an associative array value for an object key.
+
+
+ setName()
+
+ : mixed
+
+Sets the role name.
+
+
+ _isDirty()
+
+ : bool
+
+Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ rebuildEstimatedData()
+
+ : mixed
+
+Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ _isDataAvailable()
+
+ : bool
+
+Returns whether or not data is available for a given key
+
+
+ applyOperations()
+
+ : mixed
+
+Apply operations to a target object.
+
+
+ canBeSerialized()
+
+ : bool
+
+Determine if the current object can be serialized for saving.
+
+
+ canBeSerializedAsValue()
+
+ : bool
+
+Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ deepSave()
+
+ : mixed
+
+Save object and unsaved children within.
+
+
+ destroyBatch()
+
+ : array<string|int, mixed>
+
+Destroy batch of objects.
+
+
+ findUnsavedChildren()
+
+ : mixed
+
+Find unsaved children inside an object.
+
+
+ getACLWithCopy()
+
+ : ParseACL |null
+
+Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ getSaveJSON()
+
+ : array<string|int, mixed>
+
+Returns JSON object of the unsaved operations.
+
+
+ getSubclass()
+
+ : mixed
+
+Gets the Subclass className if exists, otherwise false.
+
+
+ hasDirtyChildren()
+
+ : bool
+
+Determines whether this object has child objects that are dirty
+
+
+ mergeAfterSave()
+
+ : mixed
+
+Merge server data after a save completes.
+
+
+ mergeFromObject()
+
+ : mixed
+
+Merge data from other object.
+
+
+ mergeFromServer()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ toObjectIdArray()
+
+ : array<string|int, mixed>
+
+Creates an array of object ids from a given array of ParseObjects
+
+
+ traverse()
+
+ : mixed
+
+Traverse object to find children.
+
+
+ updateWithFetchedResults()
+
+ : array<string|int, mixed>
+
+Merges an existing array of objects with their fetched counterparts
+
+
+
+
+
+
+
+
+
+
+
+
+ $parseClassName
+
+
+
+
+
+
+ Parse Class name
+
+
+ public
+ static string
+ $parseClassName
+ = '_Role'
+
+
+
+
+
+
+
+
+ $operationSet
+
+
+
+
+
+
+ Set of unsaved operations.
+
+
+ protected
+ array<string|int, mixed>
+ $operationSet
+
+
+
+
+
+
+
+
+
+ $serverData
+
+
+
+
+
+
+ Data as it exists on the server.
+
+
+ protected
+ array<string|int, mixed>
+ $serverData
+
+
+
+
+
+
+
+
+
+ $className
+
+
+
+
+
+
+ Class name for data on Parse.
+
+
+ private
+ string
+ $className
+
+
+
+
+
+
+
+
+
+ $createdAt
+
+
+
+
+
+
+ Timestamp when object was created.
+
+
+ private
+ DateTime
+ $createdAt
+
+
+
+
+
+
+
+
+
+ $dataAvailability
+
+
+
+
+
+
+ Determine if data available for a given key or not.
+
+
+ private
+ array<string|int, mixed>
+ $dataAvailability
+
+
+
+
+
+
+
+
+
+ $estimatedData
+
+
+
+
+
+
+ Estimated value of applying operationSet to serverData.
+
+
+ private
+ array<string|int, mixed>
+ $estimatedData
+
+
+
+
+
+
+
+
+
+ $hasBeenFetched
+
+
+
+
+
+
+ Whether the object has been fully fetched from Parse.
+
+
+ private
+ bool
+ $hasBeenFetched
+
+
+
+
+
+
+
+
+
+ $objectId
+
+
+
+
+
+
+ Unique identifier on Parse.
+
+
+ private
+ string
+ $objectId
+
+
+
+
+
+
+
+
+
+ $registeredSubclasses
+
+
+
+
+
+
+ Holds the registered subclasses and Parse class names.
+
+
+ private
+ static array<string|int, mixed>
+ $registeredSubclasses
+ = []
+
+
+
+
+
+
+
+
+ $updatedAt
+
+
+
+
+
+
+ Timestamp when object was last updated.
+
+
+ private
+ DateTime
+ $updatedAt
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse Object.
+
+
+ public
+ __construct ( [ string $className = null ] [ , mixed $objectId = null ] [ , bool $isPointer = false ] ) : mixed
+
+ Creates a pointer object if an objectId is provided,
+otherwise creates a new object.
+
+
+ Parameters
+
+
+ $className
+ : string
+ = null
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : mixed
+ = null
+
+ Object Id for Existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __get()
+
+
+
+
+ Getter to catch direct property calls and pass them to the get function.
+
+
+ public
+ __get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the Object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __isset()
+
+
+
+
+ Magic handler to catch isset calls to object properties.
+
+
+ public
+ __isset ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check on the object.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ __set()
+
+
+
+
+ Setter to catch property calls and protect certain fields.
+
+
+ public
+ __set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Return a JSON encoded value of the object.
+
+
+ public
+ _encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ _mergeAfterFetch()
+
+
+
+
+ Merges data received from the server.
+
+
+ public
+ _mergeAfterFetch ( array<string|int, mixed> $result [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+
+
+
+ Merges data received from the server with a given selected keys.
+
+
+ public
+ _mergeAfterFetchWithSelectedKeys ( array<string|int, mixed> $result , array<string|int, mixed> $selectedKeys ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $selectedKeys
+ : array<string|int, mixed>
+
+
+ Keys to be fetched. Null or empty means all
+data will be fetched.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeMagicFields()
+
+
+
+
+ Handle merging of special fields for the object.
+
+
+ public
+ _mergeMagicFields ( array<string|int, mixed> & $data ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data received from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Perform an operation on an object property.
+
+
+ public
+ _performOperation ( string $key , FieldOperation $operation ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to perform an operation upon.
+
+
+
+
+ $operation
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _toPointer()
+
+
+
+
+ Gets a Pointer referencing this Object.
+
+
+ public
+ _toPointer ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _unregisterSubclass()
+
+
+
+
+ Un-register a subclass.
+
+
+ public
+ static _unregisterSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ add()
+
+
+
+
+ Add a value to an array property.
+
+
+ public
+ add ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object to add a value to.
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ addUnique()
+
+
+
+
+ Add unique values to an array property.
+
+
+ public
+ addUnique ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value list to add uniquely.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ beforeSave()
+
+
+
+
+ Before save stub
+
+
+ public
+ beforeSave ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+ clear()
+
+
+
+
+ Clear all keys on this object by creating delete operations
+for each key.
+
+
+ public
+ clear ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ create()
+
+
+
+
+ Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ public
+ static create ( string $className [ , string $objectId = null ] [ , bool $isPointer = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : string
+ = null
+
+ Unique identifier for existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+ If the object is a pointer.
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ createRole()
+
+
+
+
+ Create a ParseRole object with a given name and ACL.
+
+
+ public
+ static createRole ( string $name , ParseACL $acl ) : ParseRole
+
+
+
+ Parameters
+
+
+ $name
+ : string
+
+
+
+
+
+
+ $acl
+ : ParseACL
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseRole
+ —
+
+
+
+
+
+
+ decode()
+
+
+
+
+ Decodes and returns a ParseObject from an encoded object
+
+
+ public
+ static decode ( string|array<string|int, mixed> $encoded ) : ParseObject
+
+
+
+ Parameters
+
+
+ $encoded
+ : string|array<string|int, mixed>
+
+
+ Encoded ParseObject to decode
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ delete()
+
+
+
+
+ Delete a key from an object.
+
+
+ public
+ delete ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove from object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroy()
+
+
+
+
+ Delete the object from Parse.
+
+
+ public
+ destroy ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyAll()
+
+
+
+
+ Delete an array of objects.
+
+
+ public
+ static destroyAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key or not.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ encode()
+
+
+
+
+ Returns a JSON encoded array of a ParseObject
+
+
+ public
+ encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ exists()
+
+
+
+
+ Returns true if this object exists on the Server
+
+
+ public
+ exists ( [ bool $useMasterKey = false ] ) : bool
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ fetch()
+
+
+
+
+ Fetch the whole object from the server and update the local object.
+
+
+ public
+ fetch ( [ bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key and override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ fetchAll()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ static fetchAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchAllWithInclude()
+
+
+
+
+ Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ public
+ static fetchAllWithInclude ( array<string|int, mixed> $objects , mixed $includeKeys [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $includeKeys
+ : mixed
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchWithInclude()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ fetchWithInclude ( array<string|int, mixed> $includeKeys [ , bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $includeKeys
+ : array<string|int, mixed>
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ get()
+
+
+
+
+ Get current value for an object property.
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the estimatedData array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACL()
+
+
+
+
+ Get the ACL assigned to the object.
+
+
+ public
+ getACL ( ) : ParseACL
+
+
+
+
+
+
+ Return values
+ ParseACL
+ —
+
+
+
+
+
+
+ getAllKeys()
+
+
+
+
+ Get values for all keys of an object.
+
+
+ public
+ getAllKeys ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getClassName()
+
+
+
+
+ Get the Parse Class Name for the object.
+
+
+ public
+ getClassName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getCreatedAt()
+
+
+
+
+ Get the createdAt for the object, or null if unsaved.
+
+
+ public
+ getCreatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ getName()
+
+
+
+
+ Returns the role name.
+
+
+ public
+ getName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getObjectId()
+
+
+
+
+ Get the objectId for the object, or null if unsaved.
+
+
+ public
+ getObjectId ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ getRegisteredSubclass()
+
+
+
+
+ Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ public
+ static getRegisteredSubclass ( string $parseClassName ) : ParseObject
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ getRelation()
+
+
+
+
+ Access or create a Relation value for a key.
+
+
+ public
+ getRelation ( string $key [ , string $className = null ] ) : ParseRelation
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to access the relation for.
+
+
+
+
+ $className
+ : string
+ = null
+
+
+
+
+
+
+
+
+ Return values
+ ParseRelation
+ —
+ The ParseRelation object if the relation already
+exists for the key or can be created for this key.
+
+
+
+
+
+
+ getRoles()
+
+
+
+
+ Gets the ParseRelation for the ParseRoles which are direct children of
+ this role. These roles' users are granted any privileges that this role
+ has been granted.
+
+
+ public
+ getRoles ( ) : ParseRelation
+
+
+
+
+
+
+ Return values
+ ParseRelation
+ —
+
+
+
+
+
+
+ getUpdatedAt()
+
+
+
+
+ Get the updatedAt for the object, or null if unsaved.
+
+
+ public
+ getUpdatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ getUsers()
+
+
+
+
+ Gets the ParseRelation for the ParseUsers which are direct children of
+ this role. These users are granted any privileges that this role
+ has been granted.
+
+
+ public
+ getUsers ( ) : ParseRelation
+
+
+
+
+
+
+ Return values
+ ParseRelation
+ —
+
+
+
+
+
+
+ has()
+
+
+
+
+ Check if the object has a given key.
+
+
+ public
+ has ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ hasRegisteredSubclass()
+
+
+
+
+ Check whether there is a subclass registered for a given parse class.
+
+
+ public
+ static hasRegisteredSubclass ( string $parseClassName ) : bool
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ increment()
+
+
+
+
+ Increment a numeric key by a certain value.
+
+
+ public
+ increment ( string $key [ , int $value = 1 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for numeric value on object to increment.
+
+
+
+
+ $value
+ : int
+ = 1
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ isDataAvailable()
+
+
+
+
+ Returns true if the object has been fetched.
+
+
+ public
+ isDataAvailable ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isDirty()
+
+
+
+
+ Check if the object or any of its child objects have unsaved operations.
+
+
+ public
+ isDirty ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isKeyDirty()
+
+
+
+
+ Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ public
+ isKeyDirty ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ query()
+
+
+
+
+ Creates a ParseQuery for the subclass of ParseObject.
+
+
+ public
+ static query ( ) : ParseQuery
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+
+
+
+
+
+
+ registerSubclass()
+
+
+
+
+ Register a subclass. Should be called before any other Parse functions.
+
+
+ public
+ static registerSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Remove a value from an array for an object key.
+
+
+ public
+ remove ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove the value from on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to remove from the array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ revert()
+
+
+
+
+ Revert all unsaved operations.
+
+
+ public
+ revert ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Handles pre-saving of this role
+Calls ParseObject::save to finish
+
+
+ public
+ save ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ saveAll()
+
+
+
+
+ Save all the objects in the provided array.
+
+
+ public
+ static saveAll ( array<string|int, mixed> $list [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $list
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Validate and set a value for an object key.
+
+
+ public
+ set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set a value for on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setACL()
+
+
+
+
+ Set ACL for this object.
+
+
+ public
+ setACL ( ParseACL $acl ) : mixed
+
+
+
+ Parameters
+
+
+ $acl
+ : ParseACL
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setArray()
+
+
+
+
+ Set an array value for an object key.
+
+
+ public
+ setArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setAssociativeArray()
+
+
+
+
+ Set an associative array value for an object key.
+
+
+ public
+ setAssociativeArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setName()
+
+
+
+
+ Sets the role name.
+
+
+ public
+ setName ( string $name ) : mixed
+
+
+
+ Parameters
+
+
+ $name
+ : string
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDirty()
+
+
+
+
+ Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ protected
+ _isDirty ( bool $considerChildren ) : bool
+
+
+
+ Parameters
+
+
+ $considerChildren
+ : bool
+
+
+ Whether to consider children when checking for dirty state
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ rebuildEstimatedData()
+
+
+
+
+ Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ protected
+ rebuildEstimatedData ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDataAvailable()
+
+
+
+
+ Returns whether or not data is available for a given key
+
+
+ private
+ _isDataAvailable ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check availability of
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ applyOperations()
+
+
+
+
+ Apply operations to a target object.
+
+
+ private
+ applyOperations ( array<string|int, mixed> $operations , array<string|int, mixed> & $target ) : mixed
+
+
+
+ Parameters
+
+
+ $operations
+ : array<string|int, mixed>
+
+
+ Operations set to apply.
+
+
+
+
+ $target
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ canBeSerialized()
+
+
+
+
+ Determine if the current object can be serialized for saving.
+
+
+ private
+ canBeSerialized ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ canBeSerializedAsValue()
+
+
+
+
+ Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ private
+ static canBeSerializedAsValue ( mixed $object ) : bool
+
+
+
+ Parameters
+
+
+ $object
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ deepSave()
+
+
+
+
+ Save object and unsaved children within.
+
+
+ private
+ static deepSave ( ParseObject |array<string|int, mixed> $target [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $target
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyBatch()
+
+
+
+
+ Destroy batch of objects.
+
+
+ private
+ static destroyBatch ( array<string|int, ParseObject > $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, ParseObject >
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ findUnsavedChildren()
+
+
+
+
+ Find unsaved children inside an object.
+
+
+ private
+ static findUnsavedChildren ( ParseObject $object , array<string|int, mixed> & $unsavedChildren , array<string|int, mixed> & $unsavedFiles ) : mixed
+
+
+
+ Parameters
+
+
+ $object
+ : ParseObject
+
+
+
+
+
+
+ $unsavedChildren
+ : array<string|int, mixed>
+
+
+ Array to populate with children.
+
+
+
+
+ $unsavedFiles
+ : array<string|int, mixed>
+
+
+ Array to populate with files.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACLWithCopy()
+
+
+
+
+ Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ private
+ getACLWithCopy ( bool $mayCopy ) : ParseACL |null
+
+
+
+ Parameters
+
+
+ $mayCopy
+ : bool
+
+
+ Whether to return a copy of this acl or not
+
+
+
+
+
+
+
+ Return values
+ ParseACL |null
+ —
+
+
+
+
+
+
+ getSaveJSON()
+
+
+
+
+ Returns JSON object of the unsaved operations.
+
+
+ private
+ getSaveJSON ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getSubclass()
+
+
+
+
+ Gets the Subclass className if exists, otherwise false.
+
+
+ private
+ static getSubclass ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ hasDirtyChildren()
+
+
+
+
+ Determines whether this object has child objects that are dirty
+
+
+ private
+ hasDirtyChildren ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ mergeAfterSave()
+
+
+
+
+ Merge server data after a save completes.
+
+
+ private
+ mergeAfterSave ( array<string|int, mixed> $result ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromObject()
+
+
+
+
+ Merge data from other object.
+
+
+ private
+ mergeFromObject ( ParseObject $other ) : mixed
+
+
+
+ Parameters
+
+
+ $other
+ : ParseObject
+
+
+ Other object to merge data from
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromServer()
+
+
+
+
+ Merges data received from the server.
+
+
+ private
+ mergeFromServer ( array<string|int, mixed> $data [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ toObjectIdArray()
+
+
+
+
+ Creates an array of object ids from a given array of ParseObjects
+
+
+ private
+ static toObjectIdArray ( array<string|int, mixed> $objects ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Objects to create id array from
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ traverse()
+
+
+
+
+ Traverse object to find children.
+
+
+ private
+ static traverse ( bool $deep , ParseObject |array<string|int, mixed> & $object , callable $mapFunction [ , array<string|int, mixed> $seen = [] ] ) : mixed
+
+
+
+ Parameters
+
+
+ $deep
+ : bool
+
+
+ Should this call traverse deeply
+
+
+
+
+ $object
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $mapFunction
+ : callable
+
+
+ Function to call for every item.
+
+
+
+
+ $seen
+ : array<string|int, mixed>
+ = []
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ The result of calling mapFunction on the root object.
+
+
+
+
+
+
+ updateWithFetchedResults()
+
+
+
+
+ Merges an existing array of objects with their fetched counterparts
+
+
+ private
+ static updateWithFetchedResults ( array<string|int, mixed> $objects , array<string|int, mixed> $fetched ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Original objects to update
+
+
+
+
+ $fetched
+ : array<string|int, mixed>
+
+
+ Fetched object data to update with
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseSchema.html b/classes/Parse-ParseSchema.html
new file mode 100644
index 00000000..c3dae530
--- /dev/null
+++ b/classes/Parse-ParseSchema.html
@@ -0,0 +1,2348 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseSchema
+
+
+
+
+
+
+
+
+
+ Class ParseSchema - Handles schemas data from Parse.
+
+ All the schemas methods need use of the master key for your application.
+
+
+
+
+
+
+ see
+
+
+ http://docs.parseplatform.org/rest/guide/#schema
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $ARRAY
+
+ : string
+
+Array data type
+
+
+ $BOOLEAN
+
+ : string
+
+Boolean data type
+
+
+ $DATE
+
+ : string
+
+Date data type
+
+
+ $FILE
+
+ : string
+
+File data type
+
+
+ $GEO_POINT
+
+ : string
+
+GeoPoint data type
+
+
+ $NUMBER
+
+ : string
+
+Number data type
+
+
+ $OBJECT
+
+ : string
+
+Object data type
+
+
+ $POINTER
+
+ : string
+
+Pointer data type
+
+
+ $POLYGON
+
+ : string
+
+Polygon data type
+
+
+ $RELATION
+
+ : string
+
+Relation data type
+
+
+ $STRING
+
+ : string
+
+String data type
+
+
+ $className
+
+ : string
+
+Class name for data stored on Parse.
+
+
+ $fields
+
+ : array<string|int, mixed>
+
+Fields to create.
+
+
+ $indexes
+
+ : array<string|int, mixed>
+
+Indexes to create.
+
+
+ $useMasterKey
+
+ : bool
+
+Force to use master key in Schema Methods.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse Schema.
+
+
+ addArray()
+
+ : ParseSchema
+
+Adding Array Field.
+
+
+ addBoolean()
+
+ : ParseSchema
+
+Adding Boolean Field.
+
+
+ addDate()
+
+ : ParseSchema
+
+Adding Date Field.
+
+
+ addField()
+
+ : ParseSchema
+
+Adding a Field to Create / Update a Schema.
+
+
+ addFile()
+
+ : ParseSchema
+
+Adding File Field.
+
+
+ addGeoPoint()
+
+ : ParseSchema
+
+Adding GeoPoint Field.
+
+
+ addIndex()
+
+ : ParseSchema
+
+Adding an Index to Create / Update a Schema.
+
+
+ addNumber()
+
+ : ParseSchema
+
+Adding Number Field.
+
+
+ addObject()
+
+ : ParseSchema
+
+Adding Object Field.
+
+
+ addPointer()
+
+ : ParseSchema
+
+Adding Pointer Field.
+
+
+ addPolygon()
+
+ : ParseSchema
+
+Adding Polygon Field.
+
+
+ addRelation()
+
+ : ParseSchema
+
+Adding Relation Field.
+
+
+ addString()
+
+ : ParseSchema
+
+Adding String Field.
+
+
+ all()
+
+ : array<string|int, mixed>
+
+Get all the Schema data on Parse.
+
+
+ assertClassName()
+
+ : mixed
+
+Assert if ClassName has filled.
+
+
+ assertTypes()
+
+ : mixed
+
+Assert types of fields.
+
+
+ delete()
+
+ : array<string|int, mixed>
+
+Removing a Schema from Parse.
+
+
+ deleteField()
+
+ : mixed
+
+Deleting a Field to Update on a Schema.
+
+
+ deleteIndex()
+
+ : mixed
+
+Deleting an Index to Update on a Schema.
+
+
+ get()
+
+ : array<string|int, mixed>
+
+Get the Schema from Parse.
+
+
+ purge()
+
+ : mixed
+
+Removes all objects from a Schema (class) in Parse.
+
+
+ save()
+
+ : array<string|int, mixed>
+
+Create a new Schema on Parse.
+
+
+ update()
+
+ : array<string|int, mixed>
+
+Update a Schema from Parse.
+
+
+
+
+
+
+
+
+
+
+
+
+ $ARRAY
+
+
+
+
+
+
+ Array data type
+
+
+ public
+ static string
+ $ARRAY
+ = 'Array'
+
+
+
+
+
+
+
+
+ $BOOLEAN
+
+
+
+
+
+
+ Boolean data type
+
+
+ public
+ static string
+ $BOOLEAN
+ = 'Boolean'
+
+
+
+
+
+
+
+
+ $DATE
+
+
+
+
+
+
+ Date data type
+
+
+ public
+ static string
+ $DATE
+ = 'Date'
+
+
+
+
+
+
+
+
+ $FILE
+
+
+
+
+
+
+ File data type
+
+
+ public
+ static string
+ $FILE
+ = 'File'
+
+
+
+
+
+
+
+
+ $GEO_POINT
+
+
+
+
+
+
+ GeoPoint data type
+
+
+ public
+ static string
+ $GEO_POINT
+ = 'GeoPoint'
+
+
+
+
+
+
+
+
+ $NUMBER
+
+
+
+
+
+
+ Number data type
+
+
+ public
+ static string
+ $NUMBER
+ = 'Number'
+
+
+
+
+
+
+
+
+ $OBJECT
+
+
+
+
+
+
+ Object data type
+
+
+ public
+ static string
+ $OBJECT
+ = 'Object'
+
+
+
+
+
+
+
+
+ $POINTER
+
+
+
+
+
+
+ Pointer data type
+
+
+ public
+ static string
+ $POINTER
+ = 'Pointer'
+
+
+
+
+
+
+
+
+ $POLYGON
+
+
+
+
+
+
+ Polygon data type
+
+
+ public
+ static string
+ $POLYGON
+ = 'Polygon'
+
+
+
+
+
+
+
+
+ $RELATION
+
+
+
+
+
+
+ Relation data type
+
+
+ public
+ static string
+ $RELATION
+ = 'Relation'
+
+
+
+
+
+
+
+
+ $STRING
+
+
+
+
+
+
+ String data type
+
+
+ public
+ static string
+ $STRING
+ = 'String'
+
+
+
+
+
+
+
+
+ $className
+
+
+
+
+
+
+ Class name for data stored on Parse.
+
+
+ private
+ string
+ $className
+
+
+
+
+
+
+
+
+
+ $fields
+
+
+
+
+
+
+ Fields to create.
+
+
+ private
+ array<string|int, mixed>
+ $fields
+ = []
+
+
+
+
+
+
+
+
+ $indexes
+
+
+
+
+
+
+ Indexes to create.
+
+
+ private
+ array<string|int, mixed>
+ $indexes
+ = []
+
+
+
+
+
+
+
+
+ $useMasterKey
+
+
+
+
+
+
+ Force to use master key in Schema Methods.
+
+
+ private
+ bool
+ $useMasterKey
+ = true
+
+
+
+
+
+
+
+ see
+
+
+ http://docs.parseplatform.org/rest/guide/#schema
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse Schema.
+
+
+ public
+ __construct ( [ string|null $className = null ] ) : mixed
+
+
+
+ Parameters
+
+
+ $className
+ : string|null
+ = null
+
+ Class Name of data on Parse.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ addArray()
+
+
+
+
+ Adding Array Field.
+
+
+ public
+ addArray ( [ string $fieldName = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will created on Parse
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addBoolean()
+
+
+
+
+ Adding Boolean Field.
+
+
+ public
+ addBoolean ( [ string $fieldName = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will created on Parse
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addDate()
+
+
+
+
+ Adding Date Field.
+
+
+ public
+ addDate ( [ string $fieldName = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will created on Parse
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addField()
+
+
+
+
+ Adding a Field to Create / Update a Schema.
+
+
+ public
+ addField ( [ string $fieldName = null ] [ , string $fieldType = 'String' ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field that will be created on Parse
+
+
+
+
+ $fieldType
+ : string
+ = 'String'
+
+ Can be a (String|Number|Boolean|Date|File|GeoPoint|Array|Object|Pointer|Relation)
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addFile()
+
+
+
+
+ Adding File Field.
+
+
+ public
+ addFile ( [ string $fieldName = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will created on Parse
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addGeoPoint()
+
+
+
+
+ Adding GeoPoint Field.
+
+
+ public
+ addGeoPoint ( [ string $fieldName = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will created on Parse
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addIndex()
+
+
+
+
+ Adding an Index to Create / Update a Schema.
+
+
+ public
+ addIndex ( string $indexName , string $index ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $indexName
+ : string
+
+
+ Name of the index that will be created on Parse
+
+
+
+
+ $index
+ : string
+
+
+ Key / Value to be saved
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ indexes return self to create index on Parse
+
+
+
+
+
+
+ addNumber()
+
+
+
+
+ Adding Number Field.
+
+
+ public
+ addNumber ( [ string $fieldName = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will created on Parse
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addObject()
+
+
+
+
+ Adding Object Field.
+
+
+ public
+ addObject ( [ string $fieldName = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will created on Parse
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addPointer()
+
+
+
+
+ Adding Pointer Field.
+
+
+ public
+ addPointer ( [ string $fieldName = null ] [ , string $targetClass = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will created on Parse
+
+
+
+
+ $targetClass
+ : string
+ = null
+
+ Name of the target Pointer Class
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addPolygon()
+
+
+
+
+ Adding Polygon Field.
+
+
+ public
+ addPolygon ( [ string $fieldName = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will created on Parse
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addRelation()
+
+
+
+
+ Adding Relation Field.
+
+
+ public
+ addRelation ( [ string $fieldName = null ] [ , string $targetClass = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will created on Parse
+
+
+
+
+ $targetClass
+ : string
+ = null
+
+ Name of the target Pointer Class
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ addString()
+
+
+
+
+ Adding String Field.
+
+
+ public
+ addString ( [ string $fieldName = null ] ) : ParseSchema
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field that will be created on Parse
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseSchema
+ —
+ fields return self to create field on Parse
+
+
+
+
+
+
+ all()
+
+
+
+
+ Get all the Schema data on Parse.
+
+
+ public
+ all ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ assertClassName()
+
+
+
+
+ Assert if ClassName has filled.
+
+
+ public
+ assertClassName ( ) : mixed
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ assertTypes()
+
+
+
+
+ Assert types of fields.
+
+
+ public
+ assertTypes ( [ string $type = null ] ) : mixed
+
+
+
+ Parameters
+
+
+ $type
+ : string
+ = null
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ InvalidArgumentException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ delete()
+
+
+
+
+ Removing a Schema from Parse.
+
+
+ public
+ delete ( ) : array<string|int, mixed>
+
+ You can only remove a schema from your app if it is empty (has 0 objects).
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ deleteField()
+
+
+
+
+ Deleting a Field to Update on a Schema.
+
+
+ public
+ deleteField ( [ string $fieldName = null ] ) : mixed
+
+
+
+ Parameters
+
+
+ $fieldName
+ : string
+ = null
+
+ Name of the field will be deleted
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ deleteIndex()
+
+
+
+
+ Deleting an Index to Update on a Schema.
+
+
+ public
+ deleteIndex ( [ string $indexName = null ] ) : mixed
+
+
+
+ Parameters
+
+
+ $indexName
+ : string
+ = null
+
+ Name of the index that will be deleted
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ get()
+
+
+
+
+ Get the Schema from Parse.
+
+
+ public
+ get ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ purge()
+
+
+
+
+ Removes all objects from a Schema (class) in Parse.
+
+
+ public
+ purge ( ) : mixed
+
+ EXERCISE CAUTION, running this will delete all objects for this schema and cannot be reversed
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Create a new Schema on Parse.
+
+
+ public
+ save ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ update()
+
+
+
+
+ Update a Schema from Parse.
+
+
+ public
+ update ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseServerInfo.html b/classes/Parse-ParseServerInfo.html
new file mode 100644
index 00000000..ba661105
--- /dev/null
+++ b/classes/Parse-ParseServerInfo.html
@@ -0,0 +1,755 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseServerInfo
+
+
+
+
+
+
+
+
+
+ Class ParseFeatures - Representation of server-side features
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $serverFeatures
+
+ : array<string|int, mixed>
+
+Reported server features and configs
+
+
+ $serverVersion
+
+ : string
+
+Reported server version
+
+
+ _setServerVersion()
+
+ : mixed
+
+Sets the current server version.
+
+
+ get()
+
+ : mixed
+
+Get a specific feature set from the server
+
+
+ getCloudCodeFeatures()
+
+ : array<string|int, mixed>
+
+Gets features available for cloudCode
+
+
+ getFeatures()
+
+ : array<string|int, mixed>
+
+Gets features for the current server
+
+
+ getGlobalConfigFeatures()
+
+ : array<string|int, mixed>
+
+Gets features available for globalConfig
+
+
+ getHooksFeatures()
+
+ : array<string|int, mixed>
+
+Gets features available for hooks
+
+
+ getLogsFeatures()
+
+ : array<string|int, mixed>
+
+Gets features available for logs
+
+
+ getPushFeatures()
+
+ : array<string|int, mixed>
+
+Gets features available for push
+
+
+ getSchemasFeatures()
+
+ : array<string|int, mixed>
+
+Gets features available for schemas
+
+
+ getVersion()
+
+ : string
+
+Gets the reported version of the current server
+
+
+ getServerInfo()
+
+ : array<string|int, mixed>
+
+Requests, sets and returns server features and version
+
+
+
+
+
+
+
+
+
+
+
+
+ $serverFeatures
+
+
+
+
+
+
+ Reported server features and configs
+
+
+ private
+ static array<string|int, mixed>
+ $serverFeatures
+
+
+
+
+
+
+
+
+
+ $serverVersion
+
+
+
+
+
+
+ Reported server version
+
+
+ private
+ static string
+ $serverVersion
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _setServerVersion()
+
+
+
+
+ Sets the current server version.
+
+
+ public
+ static _setServerVersion ( string $version ) : mixed
+
+ Allows setting the server version to avoid making an additional request
+if the version is obtained elsewhere.
+
+
+ Parameters
+
+
+ $version
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ get()
+
+
+
+
+ Get a specific feature set from the server
+
+
+ public
+ static get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getCloudCodeFeatures()
+
+
+
+
+ Gets features available for cloudCode
+
+
+ public
+ static getCloudCodeFeatures ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getFeatures()
+
+
+
+
+ Gets features for the current server
+
+
+ public
+ static getFeatures ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getGlobalConfigFeatures()
+
+
+
+
+ Gets features available for globalConfig
+
+
+ public
+ static getGlobalConfigFeatures ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getHooksFeatures()
+
+
+
+
+ Gets features available for hooks
+
+
+ public
+ static getHooksFeatures ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getLogsFeatures()
+
+
+
+
+ Gets features available for logs
+
+
+ public
+ static getLogsFeatures ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getPushFeatures()
+
+
+
+
+ Gets features available for push
+
+
+ public
+ static getPushFeatures ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getSchemasFeatures()
+
+
+
+
+ Gets features available for schemas
+
+
+ public
+ static getSchemasFeatures ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getVersion()
+
+
+
+
+ Gets the reported version of the current server
+
+
+ public
+ static getVersion ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getServerInfo()
+
+
+
+
+ Requests, sets and returns server features and version
+
+
+ private
+ static getServerInfo ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseSession.html b/classes/Parse-ParseSession.html
new file mode 100644
index 00000000..60178024
--- /dev/null
+++ b/classes/Parse-ParseSession.html
@@ -0,0 +1,4978 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseSession
+
+
+ extends ParseObject
+
+
+
+
+
+
+
+
+
+ Class ParseSession - Representation of an expiring user session.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $parseClassName
+
+ : string
+
+Parse Class name
+
+
+ $operationSet
+
+ : array<string|int, mixed>
+
+Set of unsaved operations.
+
+
+ $serverData
+
+ : array<string|int, mixed>
+
+Data as it exists on the server.
+
+
+ $_sessionToken
+
+ : null|string
+
+Session token string
+
+
+ $className
+
+ : string
+
+Class name for data on Parse.
+
+
+ $createdAt
+
+ : DateTime
+
+Timestamp when object was created.
+
+
+ $dataAvailability
+
+ : array<string|int, mixed>
+
+Determine if data available for a given key or not.
+
+
+ $estimatedData
+
+ : array<string|int, mixed>
+
+Estimated value of applying operationSet to serverData.
+
+
+ $hasBeenFetched
+
+ : bool
+
+Whether the object has been fully fetched from Parse.
+
+
+ $objectId
+
+ : string
+
+Unique identifier on Parse.
+
+
+ $registeredSubclasses
+
+ : array<string|int, mixed>
+
+Holds the registered subclasses and Parse class names.
+
+
+ $updatedAt
+
+ : DateTime
+
+Timestamp when object was last updated.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse Object.
+
+
+ __get()
+
+ : mixed
+
+Getter to catch direct property calls and pass them to the get function.
+
+
+ __isset()
+
+ : bool
+
+Magic handler to catch isset calls to object properties.
+
+
+ __set()
+
+ : mixed
+
+Setter to catch property calls and protect certain fields.
+
+
+ _encode()
+
+ : string
+
+Return a JSON encoded value of the object.
+
+
+ _isRevocable()
+
+ : bool
+
+Determines whether a session token is revocable.
+
+
+ _mergeAfterFetch()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+ : mixed
+
+Merges data received from the server with a given selected keys.
+
+
+ _mergeMagicFields()
+
+ : mixed
+
+Handle merging of special fields for the object.
+
+
+ _performOperation()
+
+ : mixed
+
+Perform an operation on an object property.
+
+
+ _toPointer()
+
+ : array<string|int, mixed>
+
+Gets a Pointer referencing this Object.
+
+
+ _unregisterSubclass()
+
+ : mixed
+
+Un-register a subclass.
+
+
+ add()
+
+ : mixed
+
+Add a value to an array property.
+
+
+ addUnique()
+
+ : mixed
+
+Add unique values to an array property.
+
+
+ beforeSave()
+
+ : void
+
+Before save stub
+
+
+ clear()
+
+ : mixed
+
+Clear all keys on this object by creating delete operations
+for each key.
+
+
+ create()
+
+ : ParseObject
+
+Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ decode()
+
+ : ParseObject
+
+Decodes and returns a ParseObject from an encoded object
+
+
+ delete()
+
+ : mixed
+
+Delete a key from an object.
+
+
+ destroy()
+
+ : mixed
+
+Delete the object from Parse.
+
+
+ destroyAll()
+
+ : mixed
+
+Delete an array of objects.
+
+
+ encode()
+
+ : string
+
+Returns a JSON encoded array of a ParseObject
+
+
+ exists()
+
+ : bool
+
+Returns true if this object exists on the Server
+
+
+ fetch()
+
+ : ParseObject
+
+Fetch the whole object from the server and update the local object.
+
+
+ fetchAll()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse objects from the server.
+
+
+ fetchAllWithInclude()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ fetchWithInclude()
+
+ : ParseObject
+
+Fetch an array of Parse objects from the server.
+
+
+ get()
+
+ : mixed
+
+Get current value for an object property.
+
+
+ getACL()
+
+ : ParseACL
+
+Get the ACL assigned to the object.
+
+
+ getAllKeys()
+
+ : array<string|int, mixed>
+
+Get values for all keys of an object.
+
+
+ getClassName()
+
+ : string
+
+Get the Parse Class Name for the object.
+
+
+ getCreatedAt()
+
+ : DateTime |null
+
+Get the createdAt for the object, or null if unsaved.
+
+
+ getCurrentSession()
+
+ : ParseSession
+
+Retrieves the Session object for the currently logged in user.
+
+
+ getObjectId()
+
+ : string|null
+
+Get the objectId for the object, or null if unsaved.
+
+
+ getRegisteredSubclass()
+
+ : ParseObject
+
+Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ getRelation()
+
+ : ParseRelation
+
+Access or create a Relation value for a key.
+
+
+ getSessionToken()
+
+ : string
+
+Returns the session token string.
+
+
+ getUpdatedAt()
+
+ : DateTime |null
+
+Get the updatedAt for the object, or null if unsaved.
+
+
+ has()
+
+ : bool
+
+Check if the object has a given key.
+
+
+ hasRegisteredSubclass()
+
+ : bool
+
+Check whether there is a subclass registered for a given parse class.
+
+
+ increment()
+
+ : mixed
+
+Increment a numeric key by a certain value.
+
+
+ isCurrentSessionRevocable()
+
+ : bool
+
+Determines whether the current session token is revocable.
+
+
+ isDataAvailable()
+
+ : bool
+
+Returns true if the object has been fetched.
+
+
+ isDirty()
+
+ : bool
+
+Check if the object or any of its child objects have unsaved operations.
+
+
+ isKeyDirty()
+
+ : bool
+
+Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ query()
+
+ : ParseQuery
+
+Creates a ParseQuery for the subclass of ParseObject.
+
+
+ registerSubclass()
+
+ : mixed
+
+Register a subclass. Should be called before any other Parse functions.
+
+
+ remove()
+
+ : mixed
+
+Remove a value from an array for an object key.
+
+
+ revert()
+
+ : mixed
+
+Revert all unsaved operations.
+
+
+ save()
+
+ : mixed
+
+Save Object to Parse.
+
+
+ saveAll()
+
+ : mixed
+
+Save all the objects in the provided array.
+
+
+ set()
+
+ : mixed
+
+Validate and set a value for an object key.
+
+
+ setACL()
+
+ : mixed
+
+Set ACL for this object.
+
+
+ setArray()
+
+ : mixed
+
+Set an array value for an object key.
+
+
+ setAssociativeArray()
+
+ : mixed
+
+Set an associative array value for an object key.
+
+
+ upgradeToRevocableSession()
+
+ : mixed
+
+Upgrades the current session to a revocable one
+
+
+ _isDirty()
+
+ : bool
+
+Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ rebuildEstimatedData()
+
+ : mixed
+
+Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ _isDataAvailable()
+
+ : bool
+
+Returns whether or not data is available for a given key
+
+
+ applyOperations()
+
+ : mixed
+
+Apply operations to a target object.
+
+
+ canBeSerialized()
+
+ : bool
+
+Determine if the current object can be serialized for saving.
+
+
+ canBeSerializedAsValue()
+
+ : bool
+
+Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ deepSave()
+
+ : mixed
+
+Save object and unsaved children within.
+
+
+ destroyBatch()
+
+ : array<string|int, mixed>
+
+Destroy batch of objects.
+
+
+ findUnsavedChildren()
+
+ : mixed
+
+Find unsaved children inside an object.
+
+
+ getACLWithCopy()
+
+ : ParseACL |null
+
+Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ getSaveJSON()
+
+ : array<string|int, mixed>
+
+Returns JSON object of the unsaved operations.
+
+
+ getSubclass()
+
+ : mixed
+
+Gets the Subclass className if exists, otherwise false.
+
+
+ handleSaveResult()
+
+ : mixed
+
+After a save, perform Session object specific logic.
+
+
+ hasDirtyChildren()
+
+ : bool
+
+Determines whether this object has child objects that are dirty
+
+
+ mergeAfterSave()
+
+ : mixed
+
+Merge server data after a save completes.
+
+
+ mergeFromObject()
+
+ : mixed
+
+Merge data from other object.
+
+
+ mergeFromServer()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ toObjectIdArray()
+
+ : array<string|int, mixed>
+
+Creates an array of object ids from a given array of ParseObjects
+
+
+ traverse()
+
+ : mixed
+
+Traverse object to find children.
+
+
+ updateWithFetchedResults()
+
+ : array<string|int, mixed>
+
+Merges an existing array of objects with their fetched counterparts
+
+
+
+
+
+
+
+
+
+
+
+
+ $parseClassName
+
+
+
+
+
+
+ Parse Class name
+
+
+ public
+ static string
+ $parseClassName
+ = '_Session'
+
+
+
+
+
+
+
+
+ $operationSet
+
+
+
+
+
+
+ Set of unsaved operations.
+
+
+ protected
+ array<string|int, mixed>
+ $operationSet
+
+
+
+
+
+
+
+
+
+ $serverData
+
+
+
+
+
+
+ Data as it exists on the server.
+
+
+ protected
+ array<string|int, mixed>
+ $serverData
+
+
+
+
+
+
+
+
+
+ $_sessionToken
+
+
+
+
+
+
+ Session token string
+
+
+ private
+ null|string
+ $_sessionToken
+ = null
+
+
+
+
+
+
+
+
+ $className
+
+
+
+
+
+
+ Class name for data on Parse.
+
+
+ private
+ string
+ $className
+
+
+
+
+
+
+
+
+
+ $createdAt
+
+
+
+
+
+
+ Timestamp when object was created.
+
+
+ private
+ DateTime
+ $createdAt
+
+
+
+
+
+
+
+
+
+ $dataAvailability
+
+
+
+
+
+
+ Determine if data available for a given key or not.
+
+
+ private
+ array<string|int, mixed>
+ $dataAvailability
+
+
+
+
+
+
+
+
+
+ $estimatedData
+
+
+
+
+
+
+ Estimated value of applying operationSet to serverData.
+
+
+ private
+ array<string|int, mixed>
+ $estimatedData
+
+
+
+
+
+
+
+
+
+ $hasBeenFetched
+
+
+
+
+
+
+ Whether the object has been fully fetched from Parse.
+
+
+ private
+ bool
+ $hasBeenFetched
+
+
+
+
+
+
+
+
+
+ $objectId
+
+
+
+
+
+
+ Unique identifier on Parse.
+
+
+ private
+ string
+ $objectId
+
+
+
+
+
+
+
+
+
+ $registeredSubclasses
+
+
+
+
+
+
+ Holds the registered subclasses and Parse class names.
+
+
+ private
+ static array<string|int, mixed>
+ $registeredSubclasses
+ = []
+
+
+
+
+
+
+
+
+ $updatedAt
+
+
+
+
+
+
+ Timestamp when object was last updated.
+
+
+ private
+ DateTime
+ $updatedAt
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse Object.
+
+
+ public
+ __construct ( [ string $className = null ] [ , mixed $objectId = null ] [ , bool $isPointer = false ] ) : mixed
+
+ Creates a pointer object if an objectId is provided,
+otherwise creates a new object.
+
+
+ Parameters
+
+
+ $className
+ : string
+ = null
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : mixed
+ = null
+
+ Object Id for Existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __get()
+
+
+
+
+ Getter to catch direct property calls and pass them to the get function.
+
+
+ public
+ __get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the Object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __isset()
+
+
+
+
+ Magic handler to catch isset calls to object properties.
+
+
+ public
+ __isset ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check on the object.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ __set()
+
+
+
+
+ Setter to catch property calls and protect certain fields.
+
+
+ public
+ __set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Return a JSON encoded value of the object.
+
+
+ public
+ _encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ _isRevocable()
+
+
+
+
+ Determines whether a session token is revocable.
+
+
+ public
+ static _isRevocable ( string $token ) : bool
+
+
+
+ Parameters
+
+
+ $token
+ : string
+
+
+ The session token to check
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ _mergeAfterFetch()
+
+
+
+
+ Merges data received from the server.
+
+
+ public
+ _mergeAfterFetch ( array<string|int, mixed> $result [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+
+
+
+ Merges data received from the server with a given selected keys.
+
+
+ public
+ _mergeAfterFetchWithSelectedKeys ( array<string|int, mixed> $result , array<string|int, mixed> $selectedKeys ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $selectedKeys
+ : array<string|int, mixed>
+
+
+ Keys to be fetched. Null or empty means all
+data will be fetched.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeMagicFields()
+
+
+
+
+ Handle merging of special fields for the object.
+
+
+ public
+ _mergeMagicFields ( array<string|int, mixed> & $data ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data received from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Perform an operation on an object property.
+
+
+ public
+ _performOperation ( string $key , FieldOperation $operation ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to perform an operation upon.
+
+
+
+
+ $operation
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _toPointer()
+
+
+
+
+ Gets a Pointer referencing this Object.
+
+
+ public
+ _toPointer ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _unregisterSubclass()
+
+
+
+
+ Un-register a subclass.
+
+
+ public
+ static _unregisterSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ add()
+
+
+
+
+ Add a value to an array property.
+
+
+ public
+ add ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object to add a value to.
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ addUnique()
+
+
+
+
+ Add unique values to an array property.
+
+
+ public
+ addUnique ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value list to add uniquely.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ beforeSave()
+
+
+
+
+ Before save stub
+
+
+ public
+ beforeSave ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+ clear()
+
+
+
+
+ Clear all keys on this object by creating delete operations
+for each key.
+
+
+ public
+ clear ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ create()
+
+
+
+
+ Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ public
+ static create ( string $className [ , string $objectId = null ] [ , bool $isPointer = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : string
+ = null
+
+ Unique identifier for existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+ If the object is a pointer.
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ decode()
+
+
+
+
+ Decodes and returns a ParseObject from an encoded object
+
+
+ public
+ static decode ( string|array<string|int, mixed> $encoded ) : ParseObject
+
+
+
+ Parameters
+
+
+ $encoded
+ : string|array<string|int, mixed>
+
+
+ Encoded ParseObject to decode
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ delete()
+
+
+
+
+ Delete a key from an object.
+
+
+ public
+ delete ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove from object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroy()
+
+
+
+
+ Delete the object from Parse.
+
+
+ public
+ destroy ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyAll()
+
+
+
+
+ Delete an array of objects.
+
+
+ public
+ static destroyAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key or not.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ encode()
+
+
+
+
+ Returns a JSON encoded array of a ParseObject
+
+
+ public
+ encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ exists()
+
+
+
+
+ Returns true if this object exists on the Server
+
+
+ public
+ exists ( [ bool $useMasterKey = false ] ) : bool
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ fetch()
+
+
+
+
+ Fetch the whole object from the server and update the local object.
+
+
+ public
+ fetch ( [ bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key and override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ fetchAll()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ static fetchAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchAllWithInclude()
+
+
+
+
+ Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ public
+ static fetchAllWithInclude ( array<string|int, mixed> $objects , mixed $includeKeys [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $includeKeys
+ : mixed
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchWithInclude()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ fetchWithInclude ( array<string|int, mixed> $includeKeys [ , bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $includeKeys
+ : array<string|int, mixed>
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ get()
+
+
+
+
+ Get current value for an object property.
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the estimatedData array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACL()
+
+
+
+
+ Get the ACL assigned to the object.
+
+
+ public
+ getACL ( ) : ParseACL
+
+
+
+
+
+
+ Return values
+ ParseACL
+ —
+
+
+
+
+
+
+ getAllKeys()
+
+
+
+
+ Get values for all keys of an object.
+
+
+ public
+ getAllKeys ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getClassName()
+
+
+
+
+ Get the Parse Class Name for the object.
+
+
+ public
+ getClassName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getCreatedAt()
+
+
+
+
+ Get the createdAt for the object, or null if unsaved.
+
+
+ public
+ getCreatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ getCurrentSession()
+
+
+
+
+ Retrieves the Session object for the currently logged in user.
+
+
+ public
+ static getCurrentSession ( [ bool $useMasterKey = false ] ) : ParseSession
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ If the Master Key should be used to override security.
+
+
+
+
+
+
+
+ Return values
+ ParseSession
+ —
+
+
+
+
+
+
+ getObjectId()
+
+
+
+
+ Get the objectId for the object, or null if unsaved.
+
+
+ public
+ getObjectId ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ getRegisteredSubclass()
+
+
+
+
+ Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ public
+ static getRegisteredSubclass ( string $parseClassName ) : ParseObject
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ getRelation()
+
+
+
+
+ Access or create a Relation value for a key.
+
+
+ public
+ getRelation ( string $key [ , string $className = null ] ) : ParseRelation
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to access the relation for.
+
+
+
+
+ $className
+ : string
+ = null
+
+
+
+
+
+
+
+
+ Return values
+ ParseRelation
+ —
+ The ParseRelation object if the relation already
+exists for the key or can be created for this key.
+
+
+
+
+
+
+ getSessionToken()
+
+
+
+
+ Returns the session token string.
+
+
+ public
+ getSessionToken ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getUpdatedAt()
+
+
+
+
+ Get the updatedAt for the object, or null if unsaved.
+
+
+ public
+ getUpdatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ has()
+
+
+
+
+ Check if the object has a given key.
+
+
+ public
+ has ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ hasRegisteredSubclass()
+
+
+
+
+ Check whether there is a subclass registered for a given parse class.
+
+
+ public
+ static hasRegisteredSubclass ( string $parseClassName ) : bool
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ increment()
+
+
+
+
+ Increment a numeric key by a certain value.
+
+
+ public
+ increment ( string $key [ , int $value = 1 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for numeric value on object to increment.
+
+
+
+
+ $value
+ : int
+ = 1
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ isCurrentSessionRevocable()
+
+
+
+
+ Determines whether the current session token is revocable.
+
+
+ public
+ static isCurrentSessionRevocable ( ) : bool
+
+ This method is useful for migrating an existing app to use
+revocable sessions.
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isDataAvailable()
+
+
+
+
+ Returns true if the object has been fetched.
+
+
+ public
+ isDataAvailable ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isDirty()
+
+
+
+
+ Check if the object or any of its child objects have unsaved operations.
+
+
+ public
+ isDirty ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isKeyDirty()
+
+
+
+
+ Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ public
+ isKeyDirty ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ query()
+
+
+
+
+ Creates a ParseQuery for the subclass of ParseObject.
+
+
+ public
+ static query ( ) : ParseQuery
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+
+
+
+
+
+
+ registerSubclass()
+
+
+
+
+ Register a subclass. Should be called before any other Parse functions.
+
+
+ public
+ static registerSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Remove a value from an array for an object key.
+
+
+ public
+ remove ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove the value from on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to remove from the array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ revert()
+
+
+
+
+ Revert all unsaved operations.
+
+
+ public
+ revert ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Save Object to Parse.
+
+
+ public
+ save ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ saveAll()
+
+
+
+
+ Save all the objects in the provided array.
+
+
+ public
+ static saveAll ( array<string|int, mixed> $list [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $list
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Validate and set a value for an object key.
+
+
+ public
+ set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set a value for on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setACL()
+
+
+
+
+ Set ACL for this object.
+
+
+ public
+ setACL ( ParseACL $acl ) : mixed
+
+
+
+ Parameters
+
+
+ $acl
+ : ParseACL
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setArray()
+
+
+
+
+ Set an array value for an object key.
+
+
+ public
+ setArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setAssociativeArray()
+
+
+
+
+ Set an associative array value for an object key.
+
+
+ public
+ setAssociativeArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ upgradeToRevocableSession()
+
+
+
+
+ Upgrades the current session to a revocable one
+
+
+ public
+ static upgradeToRevocableSession ( ) : mixed
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDirty()
+
+
+
+
+ Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ protected
+ _isDirty ( bool $considerChildren ) : bool
+
+
+
+ Parameters
+
+
+ $considerChildren
+ : bool
+
+
+ Whether to consider children when checking for dirty state
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ rebuildEstimatedData()
+
+
+
+
+ Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ protected
+ rebuildEstimatedData ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDataAvailable()
+
+
+
+
+ Returns whether or not data is available for a given key
+
+
+ private
+ _isDataAvailable ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check availability of
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ applyOperations()
+
+
+
+
+ Apply operations to a target object.
+
+
+ private
+ applyOperations ( array<string|int, mixed> $operations , array<string|int, mixed> & $target ) : mixed
+
+
+
+ Parameters
+
+
+ $operations
+ : array<string|int, mixed>
+
+
+ Operations set to apply.
+
+
+
+
+ $target
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ canBeSerialized()
+
+
+
+
+ Determine if the current object can be serialized for saving.
+
+
+ private
+ canBeSerialized ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ canBeSerializedAsValue()
+
+
+
+
+ Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ private
+ static canBeSerializedAsValue ( mixed $object ) : bool
+
+
+
+ Parameters
+
+
+ $object
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ deepSave()
+
+
+
+
+ Save object and unsaved children within.
+
+
+ private
+ static deepSave ( ParseObject |array<string|int, mixed> $target [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $target
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyBatch()
+
+
+
+
+ Destroy batch of objects.
+
+
+ private
+ static destroyBatch ( array<string|int, ParseObject > $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, ParseObject >
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ findUnsavedChildren()
+
+
+
+
+ Find unsaved children inside an object.
+
+
+ private
+ static findUnsavedChildren ( ParseObject $object , array<string|int, mixed> & $unsavedChildren , array<string|int, mixed> & $unsavedFiles ) : mixed
+
+
+
+ Parameters
+
+
+ $object
+ : ParseObject
+
+
+
+
+
+
+ $unsavedChildren
+ : array<string|int, mixed>
+
+
+ Array to populate with children.
+
+
+
+
+ $unsavedFiles
+ : array<string|int, mixed>
+
+
+ Array to populate with files.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACLWithCopy()
+
+
+
+
+ Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ private
+ getACLWithCopy ( bool $mayCopy ) : ParseACL |null
+
+
+
+ Parameters
+
+
+ $mayCopy
+ : bool
+
+
+ Whether to return a copy of this acl or not
+
+
+
+
+
+
+
+ Return values
+ ParseACL |null
+ —
+
+
+
+
+
+
+ getSaveJSON()
+
+
+
+
+ Returns JSON object of the unsaved operations.
+
+
+ private
+ getSaveJSON ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getSubclass()
+
+
+
+
+ Gets the Subclass className if exists, otherwise false.
+
+
+ private
+ static getSubclass ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ handleSaveResult()
+
+
+
+
+ After a save, perform Session object specific logic.
+
+
+ private
+ handleSaveResult ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ hasDirtyChildren()
+
+
+
+
+ Determines whether this object has child objects that are dirty
+
+
+ private
+ hasDirtyChildren ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ mergeAfterSave()
+
+
+
+
+ Merge server data after a save completes.
+
+
+ private
+ mergeAfterSave ( array<string|int, mixed> $result ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromObject()
+
+
+
+
+ Merge data from other object.
+
+
+ private
+ mergeFromObject ( ParseObject $other ) : mixed
+
+
+
+ Parameters
+
+
+ $other
+ : ParseObject
+
+
+ Other object to merge data from
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromServer()
+
+
+
+
+ Merges data received from the server.
+
+
+ private
+ mergeFromServer ( array<string|int, mixed> $data [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ toObjectIdArray()
+
+
+
+
+ Creates an array of object ids from a given array of ParseObjects
+
+
+ private
+ static toObjectIdArray ( array<string|int, mixed> $objects ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Objects to create id array from
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ traverse()
+
+
+
+
+ Traverse object to find children.
+
+
+ private
+ static traverse ( bool $deep , ParseObject |array<string|int, mixed> & $object , callable $mapFunction [ , array<string|int, mixed> $seen = [] ] ) : mixed
+
+
+
+ Parameters
+
+
+ $deep
+ : bool
+
+
+ Should this call traverse deeply
+
+
+
+
+ $object
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $mapFunction
+ : callable
+
+
+ Function to call for every item.
+
+
+
+
+ $seen
+ : array<string|int, mixed>
+ = []
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ The result of calling mapFunction on the root object.
+
+
+
+
+
+
+ updateWithFetchedResults()
+
+
+
+
+ Merges an existing array of objects with their fetched counterparts
+
+
+ private
+ static updateWithFetchedResults ( array<string|int, mixed> $objects , array<string|int, mixed> $fetched ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Original objects to update
+
+
+
+
+ $fetched
+ : array<string|int, mixed>
+
+
+ Fetched object data to update with
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseSessionStorage.html b/classes/Parse-ParseSessionStorage.html
new file mode 100644
index 00000000..1f504684
--- /dev/null
+++ b/classes/Parse-ParseSessionStorage.html
@@ -0,0 +1,626 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseSessionStorage
+
+
+
+
+
+ implements
+ ParseStorageInterface
+
+
+
+
+
+ Class ParseSessionStorage - Uses PHP session support for persistent storage.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ ParseStorageInterface
+ Class ParseStorageInterface - Specifies an interface for implementing persistence.
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $storageKey
+
+ : string
+
+Parse will store its values in a specific key.
+
+
+ __construct()
+
+ : mixed
+
+ParseSessionStorage constructor.
+
+
+ clear()
+
+ : void
+
+Clear all the values in storage.
+
+
+ get()
+
+ : mixed
+
+Gets the value for a key from storage.
+
+
+ getAll()
+
+ : array<string|int, mixed>
+
+Get all key-value pairs from storage.
+
+
+ getKeys()
+
+ : array<string|int, mixed>
+
+Get all keys in storage.
+
+
+ remove()
+
+ : void
+
+Remove a key from storage.
+
+
+ save()
+
+ : null
+
+Save the data, if necessary. Not implemented.
+
+
+ set()
+
+ : void
+
+Sets a key-value pair in storage.
+
+
+
+
+
+
+
+
+
+
+
+
+ $storageKey
+
+
+
+
+
+
+ Parse will store its values in a specific key.
+
+
+ private
+ string
+ $storageKey
+ = 'parseData'
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ ParseSessionStorage constructor.
+
+
+ public
+ __construct ( ) : mixed
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ clear()
+
+
+
+
+ Clear all the values in storage.
+
+
+ public
+ clear ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+ get()
+
+
+
+
+ Gets the value for a key from storage.
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to get the value for
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getAll()
+
+
+
+
+ Get all key-value pairs from storage.
+
+
+ public
+ getAll ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getKeys()
+
+
+
+
+ Get all keys in storage.
+
+
+ public
+ getKeys ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Remove a key from storage.
+
+
+ public
+ remove ( string $key ) : void
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Save the data, if necessary. Not implemented.
+
+
+ public
+ save ( ) : null
+
+
+
+
+
+
+ Return values
+ null
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Sets a key-value pair in storage.
+
+
+ public
+ set ( string $key , mixed $value ) : void
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseStorageInterface.html b/classes/Parse-ParseStorageInterface.html
new file mode 100644
index 00000000..b2b8b6cc
--- /dev/null
+++ b/classes/Parse-ParseStorageInterface.html
@@ -0,0 +1,509 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseStorageInterface
+
+
+
+
+
+ Class ParseStorageInterface - Specifies an interface for implementing persistence.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ clear()
+
+ : null
+
+Clear all the values in storage.
+
+
+ get()
+
+ : mixed
+
+Gets the value for a key from storage.
+
+
+ getAll()
+
+ : array<string|int, mixed>
+
+Get all key-value pairs from storage.
+
+
+ getKeys()
+
+ : array<string|int, mixed>
+
+Get all keys in storage.
+
+
+ remove()
+
+ : null
+
+Remove a key from storage.
+
+
+ save()
+
+ : null
+
+Save the data, if necessary. This would be a no-op when using the
+$_SESSION implementation, but could be used for saving to file or
+database as an action instead of on every set.
+
+
+ set()
+
+ : null
+
+Sets a key-value pair in storage.
+
+
+
+
+
+
+
+
+
+
+
+ clear()
+
+
+
+
+ Clear all the values in storage.
+
+
+ public
+ clear ( ) : null
+
+
+
+
+
+
+ Return values
+ null
+ —
+
+
+
+
+
+
+ get()
+
+
+
+
+ Gets the value for a key from storage.
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to get the value for
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getAll()
+
+
+
+
+ Get all key-value pairs from storage.
+
+
+ public
+ getAll ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getKeys()
+
+
+
+
+ Get all keys in storage.
+
+
+ public
+ getKeys ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Remove a key from storage.
+
+
+ public
+ remove ( string $key ) : null
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ null
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Save the data, if necessary. This would be a no-op when using the
+$_SESSION implementation, but could be used for saving to file or
+database as an action instead of on every set.
+
+
+ public
+ save ( ) : null
+
+
+
+
+
+
+ Return values
+ null
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Sets a key-value pair in storage.
+
+
+ public
+ set ( string $key , mixed $value ) : null
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ null
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes/Parse-ParseUser.html b/classes/Parse-ParseUser.html
new file mode 100644
index 00000000..fd5ea5ea
--- /dev/null
+++ b/classes/Parse-ParseUser.html
@@ -0,0 +1,6332 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseUser
+
+
+ extends ParseObject
+
+
+
+
+
+
+
+
+
+ Class ParseUser - Representation of a user object stored on Parse.
+
+
+
+
+
+
+
+ author
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+
+
+
+
+ $parseClassName
+
+ : string
+
+Parse Class name
+
+
+ $_sessionToken
+
+ : string
+
+The sessionToken for an authenticated user.
+
+
+ $currentUser
+
+ : ParseUser
+
+The currently logged-in user.
+
+
+ $operationSet
+
+ : array<string|int, mixed>
+
+Set of unsaved operations.
+
+
+ $serverData
+
+ : array<string|int, mixed>
+
+Data as it exists on the server.
+
+
+ $className
+
+ : string
+
+Class name for data on Parse.
+
+
+ $createdAt
+
+ : DateTime
+
+Timestamp when object was created.
+
+
+ $dataAvailability
+
+ : array<string|int, mixed>
+
+Determine if data available for a given key or not.
+
+
+ $estimatedData
+
+ : array<string|int, mixed>
+
+Estimated value of applying operationSet to serverData.
+
+
+ $hasBeenFetched
+
+ : bool
+
+Whether the object has been fully fetched from Parse.
+
+
+ $objectId
+
+ : string
+
+Unique identifier on Parse.
+
+
+ $registeredSubclasses
+
+ : array<string|int, mixed>
+
+Holds the registered subclasses and Parse class names.
+
+
+ $updatedAt
+
+ : DateTime
+
+Timestamp when object was last updated.
+
+
+ __construct()
+
+ : mixed
+
+Create a Parse Object.
+
+
+ __get()
+
+ : mixed
+
+Getter to catch direct property calls and pass them to the get function.
+
+
+ __isset()
+
+ : bool
+
+Magic handler to catch isset calls to object properties.
+
+
+ __set()
+
+ : mixed
+
+Setter to catch property calls and protect certain fields.
+
+
+ _clearCurrentUserVariable()
+
+ : mixed
+
+Sets the current user to null. Used internally for testing purposes.
+
+
+ _encode()
+
+ : string
+
+Return a JSON encoded value of the object.
+
+
+ _mergeAfterFetch()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+ : mixed
+
+Merges data received from the server with a given selected keys.
+
+
+ _mergeMagicFields()
+
+ : mixed
+
+Handle merging of special fields for the object.
+
+
+ _performOperation()
+
+ : mixed
+
+Perform an operation on an object property.
+
+
+ _toPointer()
+
+ : array<string|int, mixed>
+
+Gets a Pointer referencing this Object.
+
+
+ _unregisterSubclass()
+
+ : mixed
+
+Un-register a subclass.
+
+
+ add()
+
+ : mixed
+
+Add a value to an array property.
+
+
+ addUnique()
+
+ : mixed
+
+Add unique values to an array property.
+
+
+ become()
+
+ : ParseUser
+
+Logs in a user with a session token. Calls the /users/me route and if
+ valid, creates and returns the current user.
+
+
+ beforeSave()
+
+ : void
+
+Before save stub
+
+
+ clear()
+
+ : mixed
+
+Clear all keys on this object by creating delete operations
+for each key.
+
+
+ create()
+
+ : ParseObject
+
+Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ decode()
+
+ : ParseObject
+
+Decodes and returns a ParseObject from an encoded object
+
+
+ delete()
+
+ : mixed
+
+Delete a key from an object.
+
+
+ destroy()
+
+ : mixed
+
+Delete the object from Parse.
+
+
+ destroyAll()
+
+ : mixed
+
+Delete an array of objects.
+
+
+ encode()
+
+ : string
+
+Returns a JSON encoded array of a ParseObject
+
+
+ exists()
+
+ : bool
+
+Returns true if this object exists on the Server
+
+
+ fetch()
+
+ : ParseObject
+
+Fetch the whole object from the server and update the local object.
+
+
+ fetchAll()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse objects from the server.
+
+
+ fetchAllWithInclude()
+
+ : array<string|int, mixed>
+
+Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ fetchWithInclude()
+
+ : ParseObject
+
+Fetch an array of Parse objects from the server.
+
+
+ get()
+
+ : mixed
+
+Get current value for an object property.
+
+
+ getACL()
+
+ : ParseACL
+
+Get the ACL assigned to the object.
+
+
+ getAllKeys()
+
+ : array<string|int, mixed>
+
+Get values for all keys of an object.
+
+
+ getClassName()
+
+ : string
+
+Get the Parse Class Name for the object.
+
+
+ getCreatedAt()
+
+ : DateTime |null
+
+Get the createdAt for the object, or null if unsaved.
+
+
+ getCurrentUser()
+
+ : ParseUser |null
+
+Retrieves the currently logged in ParseUser with a valid session,
+either from memory or the storage provider, if necessary.
+
+
+ getEmail()
+
+ : string|null
+
+Returns the email address, if set, for the ParseUser.
+
+
+ getObjectId()
+
+ : string|null
+
+Get the objectId for the object, or null if unsaved.
+
+
+ getRegisteredSubclass()
+
+ : ParseObject
+
+Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ getRelation()
+
+ : ParseRelation
+
+Access or create a Relation value for a key.
+
+
+ getSessionToken()
+
+ : string|null
+
+Returns the session token, if available.
+
+
+ getUpdatedAt()
+
+ : DateTime |null
+
+Get the updatedAt for the object, or null if unsaved.
+
+
+ getUsername()
+
+ : string|null
+
+Returns the username.
+
+
+ has()
+
+ : bool
+
+Check if the object has a given key.
+
+
+ hasRegisteredSubclass()
+
+ : bool
+
+Check whether there is a subclass registered for a given parse class.
+
+
+ increment()
+
+ : mixed
+
+Increment a numeric key by a certain value.
+
+
+ isAuthenticated()
+
+ : bool
+
+Checks whether this user has been authenticated.
+
+
+ isCurrent()
+
+ : bool
+
+Returns true if this user is the current user.
+
+
+ isDataAvailable()
+
+ : bool
+
+Returns true if the object has been fetched.
+
+
+ isDirty()
+
+ : bool
+
+Check if the object or any of its child objects have unsaved operations.
+
+
+ isKeyDirty()
+
+ : bool
+
+Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ linkWith()
+
+ : ParseUser
+
+Link the user with a service.
+
+
+ linkWithFacebook()
+
+ : ParseUser
+
+Link the user with Facebook details.
+
+
+ linkWithTwitter()
+
+ : ParseUser
+
+Link the user with Twitter details.
+
+
+ logIn()
+
+ : ParseUser
+
+Logs in and returns a valid ParseUser, or throws if invalid.
+
+
+ logInAs()
+
+ : ParseUser
+
+Uses the master key to log in and return a valid ParseUser, or throws if invalid.
+
+
+ logInWith()
+
+ : ParseUser
+
+Logs in with a service.
+
+
+ loginWithAnonymous()
+
+ : ParseUser
+
+Login as an anonymous User with REST API. See docs http://parseplatform.org/docs/php/guide/#users
+
+
+ logInWithFacebook()
+
+ : ParseUser
+
+Logs in with Facebook details, or throws if invalid.
+
+
+ logInWithTwitter()
+
+ : ParseUser
+
+Logs in with Twitter details, or throws if invalid.
+
+
+ logOut()
+
+ : mixed
+
+Log out the current user. This will clear the storage and future calls
+ to current will return null.
+
+
+ query()
+
+ : ParseQuery
+
+Creates a ParseQuery for the subclass of ParseObject.
+
+
+ registerSubclass()
+
+ : mixed
+
+Register a subclass. Should be called before any other Parse functions.
+
+
+ remove()
+
+ : mixed
+
+Remove a value from an array for an object key.
+
+
+ requestPasswordReset()
+
+ : mixed
+
+Requests a password reset email to be sent to the specified email
+address associated with the user account. This email allows the user
+to securely reset their password on the Parse site.
+
+
+ requestVerificationEmail()
+
+ : mixed
+
+Request a verification email to be sent to the specified email address
+
+
+ revert()
+
+ : mixed
+
+Revert all unsaved operations.
+
+
+ save()
+
+ : mixed
+
+Save the current user object, unless it is not signed up.
+
+
+ saveAll()
+
+ : mixed
+
+Save all the objects in the provided array.
+
+
+ set()
+
+ : mixed
+
+Validate and set a value for an object key.
+
+
+ setACL()
+
+ : mixed
+
+Set ACL for this object.
+
+
+ setArray()
+
+ : mixed
+
+Set an array value for an object key.
+
+
+ setAssociativeArray()
+
+ : mixed
+
+Set an associative array value for an object key.
+
+
+ setEmail()
+
+ : mixed
+
+Sets the email address for the ParseUser.
+
+
+ setPassword()
+
+ : mixed
+
+Sets the password for the ParseUser.
+
+
+ setUsername()
+
+ : mixed
+
+Sets the username for the ParseUser.
+
+
+ signUp()
+
+ : mixed
+
+Signs up the current user, or throw if invalid.
+
+
+ _isDirty()
+
+ : bool
+
+Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ handleSaveResult()
+
+ : mixed
+
+After a save, perform User object specific logic.
+
+
+ rebuildEstimatedData()
+
+ : mixed
+
+Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ saveCurrentUser()
+
+ : mixed
+
+Persists the current user to the storage provider.
+
+
+ _isDataAvailable()
+
+ : bool
+
+Returns whether or not data is available for a given key
+
+
+ applyOperations()
+
+ : mixed
+
+Apply operations to a target object.
+
+
+ canBeSerialized()
+
+ : bool
+
+Determine if the current object can be serialized for saving.
+
+
+ canBeSerializedAsValue()
+
+ : bool
+
+Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ clearAnonymousAuthData()
+
+ : mixed
+
+Remove current user's anonymous AuthData
+
+
+ deepSave()
+
+ : mixed
+
+Save object and unsaved children within.
+
+
+ destroyBatch()
+
+ : array<string|int, mixed>
+
+Destroy batch of objects.
+
+
+ findUnsavedChildren()
+
+ : mixed
+
+Find unsaved children inside an object.
+
+
+ getACLWithCopy()
+
+ : ParseACL |null
+
+Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ getSaveJSON()
+
+ : array<string|int, mixed>
+
+Returns JSON object of the unsaved operations.
+
+
+ getSubclass()
+
+ : mixed
+
+Gets the Subclass className if exists, otherwise false.
+
+
+ hasDirtyChildren()
+
+ : bool
+
+Determines whether this object has child objects that are dirty
+
+
+ mergeAfterSave()
+
+ : mixed
+
+Merge server data after a save completes.
+
+
+ mergeFromObject()
+
+ : mixed
+
+Merge data from other object.
+
+
+ mergeFromServer()
+
+ : mixed
+
+Merges data received from the server.
+
+
+ toObjectIdArray()
+
+ : array<string|int, mixed>
+
+Creates an array of object ids from a given array of ParseObjects
+
+
+ traverse()
+
+ : mixed
+
+Traverse object to find children.
+
+
+ updateWithFetchedResults()
+
+ : array<string|int, mixed>
+
+Merges an existing array of objects with their fetched counterparts
+
+
+
+
+
+
+
+
+
+
+
+
+ $parseClassName
+
+
+
+
+
+
+ Parse Class name
+
+
+ public
+ static string
+ $parseClassName
+ = '_User'
+
+
+
+
+
+
+
+
+ $_sessionToken
+
+
+
+
+
+
+ The sessionToken for an authenticated user.
+
+
+ protected
+ string
+ $_sessionToken
+ = null
+
+
+
+
+
+
+
+
+ $currentUser
+
+
+
+
+
+
+ The currently logged-in user.
+
+
+ protected
+ static ParseUser
+ $currentUser
+ = null
+
+
+
+
+
+
+
+
+ $operationSet
+
+
+
+
+
+
+ Set of unsaved operations.
+
+
+ protected
+ array<string|int, mixed>
+ $operationSet
+
+
+
+
+
+
+
+
+
+ $serverData
+
+
+
+
+
+
+ Data as it exists on the server.
+
+
+ protected
+ array<string|int, mixed>
+ $serverData
+
+
+
+
+
+
+
+
+
+ $className
+
+
+
+
+
+
+ Class name for data on Parse.
+
+
+ private
+ string
+ $className
+
+
+
+
+
+
+
+
+
+ $createdAt
+
+
+
+
+
+
+ Timestamp when object was created.
+
+
+ private
+ DateTime
+ $createdAt
+
+
+
+
+
+
+
+
+
+ $dataAvailability
+
+
+
+
+
+
+ Determine if data available for a given key or not.
+
+
+ private
+ array<string|int, mixed>
+ $dataAvailability
+
+
+
+
+
+
+
+
+
+ $estimatedData
+
+
+
+
+
+
+ Estimated value of applying operationSet to serverData.
+
+
+ private
+ array<string|int, mixed>
+ $estimatedData
+
+
+
+
+
+
+
+
+
+ $hasBeenFetched
+
+
+
+
+
+
+ Whether the object has been fully fetched from Parse.
+
+
+ private
+ bool
+ $hasBeenFetched
+
+
+
+
+
+
+
+
+
+ $objectId
+
+
+
+
+
+
+ Unique identifier on Parse.
+
+
+ private
+ string
+ $objectId
+
+
+
+
+
+
+
+
+
+ $registeredSubclasses
+
+
+
+
+
+
+ Holds the registered subclasses and Parse class names.
+
+
+ private
+ static array<string|int, mixed>
+ $registeredSubclasses
+ = []
+
+
+
+
+
+
+
+
+ $updatedAt
+
+
+
+
+
+
+ Timestamp when object was last updated.
+
+
+ private
+ DateTime
+ $updatedAt
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+
+
+
+ Create a Parse Object.
+
+
+ public
+ __construct ( [ string $className = null ] [ , mixed $objectId = null ] [ , bool $isPointer = false ] ) : mixed
+
+ Creates a pointer object if an objectId is provided,
+otherwise creates a new object.
+
+
+ Parameters
+
+
+ $className
+ : string
+ = null
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : mixed
+ = null
+
+ Object Id for Existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __get()
+
+
+
+
+ Getter to catch direct property calls and pass them to the get function.
+
+
+ public
+ __get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the Object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ __isset()
+
+
+
+
+ Magic handler to catch isset calls to object properties.
+
+
+ public
+ __isset ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check on the object.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ __set()
+
+
+
+
+ Setter to catch property calls and protect certain fields.
+
+
+ public
+ __set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _clearCurrentUserVariable()
+
+
+
+
+ Sets the current user to null. Used internally for testing purposes.
+
+
+ public
+ static _clearCurrentUserVariable ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _encode()
+
+
+
+
+ Return a JSON encoded value of the object.
+
+
+ public
+ _encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ _mergeAfterFetch()
+
+
+
+
+ Merges data received from the server.
+
+
+ public
+ _mergeAfterFetch ( array<string|int, mixed> $result [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeAfterFetchWithSelectedKeys()
+
+
+
+
+ Merges data received from the server with a given selected keys.
+
+
+ public
+ _mergeAfterFetchWithSelectedKeys ( array<string|int, mixed> $result , array<string|int, mixed> $selectedKeys ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from the server.
+
+
+
+
+ $selectedKeys
+ : array<string|int, mixed>
+
+
+ Keys to be fetched. Null or empty means all
+data will be fetched.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _mergeMagicFields()
+
+
+
+
+ Handle merging of special fields for the object.
+
+
+ public
+ _mergeMagicFields ( array<string|int, mixed> & $data ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data received from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+
+
+ Perform an operation on an object property.
+
+
+ public
+ _performOperation ( string $key , FieldOperation $operation ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to perform an operation upon.
+
+
+
+
+ $operation
+ : FieldOperation
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _toPointer()
+
+
+
+
+ Gets a Pointer referencing this Object.
+
+
+ public
+ _toPointer ( ) : array<string|int, mixed>
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ _unregisterSubclass()
+
+
+
+
+ Un-register a subclass.
+
+
+ public
+ static _unregisterSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ add()
+
+
+
+
+ Add a value to an array property.
+
+
+ public
+ add ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object to add a value to.
+
+
+
+
+ $value
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ addUnique()
+
+
+
+
+ Add unique values to an array property.
+
+
+ public
+ addUnique ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for array value on object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value list to add uniquely.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ become()
+
+
+
+
+ Logs in a user with a session token. Calls the /users/me route and if
+ valid, creates and returns the current user.
+
+
+ public
+ static become ( string $sessionToken ) : ParseUser
+
+
+
+ Parameters
+
+
+ $sessionToken
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseUser
+ —
+
+
+
+
+
+
+ beforeSave()
+
+
+
+
+ Before save stub
+
+
+ public
+ beforeSave ( ) : void
+
+
+
+
+
+
+ Return values
+ void
+ —
+
+
+
+
+
+
+ clear()
+
+
+
+
+ Clear all keys on this object by creating delete operations
+for each key.
+
+
+ public
+ clear ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ create()
+
+
+
+
+ Static method which returns a new Parse Object for a given class
+Optionally creates a pointer object if the objectId is provided.
+
+
+ public
+ static create ( string $className [ , string $objectId = null ] [ , bool $isPointer = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $className
+ : string
+
+
+ Class Name for data on Parse.
+
+
+
+
+ $objectId
+ : string
+ = null
+
+ Unique identifier for existing object.
+
+
+
+
+ $isPointer
+ : bool
+ = false
+
+ If the object is a pointer.
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ decode()
+
+
+
+
+ Decodes and returns a ParseObject from an encoded object
+
+
+ public
+ static decode ( string|array<string|int, mixed> $encoded ) : ParseObject
+
+
+
+ Parameters
+
+
+ $encoded
+ : string|array<string|int, mixed>
+
+
+ Encoded ParseObject to decode
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ delete()
+
+
+
+
+ Delete a key from an object.
+
+
+ public
+ delete ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove from object.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroy()
+
+
+
+
+ Delete the object from Parse.
+
+
+ public
+ destroy ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyAll()
+
+
+
+
+ Delete an array of objects.
+
+
+ public
+ static destroyAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key or not.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ encode()
+
+
+
+
+ Returns a JSON encoded array of a ParseObject
+
+
+ public
+ encode ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ exists()
+
+
+
+
+ Returns true if this object exists on the Server
+
+
+ public
+ exists ( [ bool $useMasterKey = false ] ) : bool
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ fetch()
+
+
+
+
+ Fetch the whole object from the server and update the local object.
+
+
+ public
+ fetch ( [ bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the master key and override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ fetchAll()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ static fetchAll ( array<string|int, mixed> $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchAllWithInclude()
+
+
+
+
+ Fetch an array of Parse Objects from the server with nested Parse Objects.
+
+
+ public
+ static fetchAllWithInclude ( array<string|int, mixed> $objects , mixed $includeKeys [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ The ParseObjects to fetch
+
+
+
+
+ $includeKeys
+ : mixed
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ fetchWithInclude()
+
+
+
+
+ Fetch an array of Parse objects from the server.
+
+
+ public
+ fetchWithInclude ( array<string|int, mixed> $includeKeys [ , bool $useMasterKey = false ] ) : ParseObject
+
+
+
+ Parameters
+
+
+ $includeKeys
+ : array<string|int, mixed>
+
+
+ The nested ParseObjects to fetch
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to override ACLs
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+ Returns self, so you can chain this call.
+
+
+
+
+
+
+ get()
+
+
+
+
+ Get current value for an object property.
+
+
+ public
+ get ( string $key ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to retrieve from the estimatedData array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACL()
+
+
+
+
+ Get the ACL assigned to the object.
+
+
+ public
+ getACL ( ) : ParseACL
+
+
+
+
+
+
+ Return values
+ ParseACL
+ —
+
+
+
+
+
+
+ getAllKeys()
+
+
+
+
+ Get values for all keys of an object.
+
+
+ public
+ getAllKeys ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getClassName()
+
+
+
+
+ Get the Parse Class Name for the object.
+
+
+ public
+ getClassName ( ) : string
+
+
+
+
+
+
+ Return values
+ string
+ —
+
+
+
+
+
+
+ getCreatedAt()
+
+
+
+
+ Get the createdAt for the object, or null if unsaved.
+
+
+ public
+ getCreatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ getCurrentUser()
+
+
+
+
+ Retrieves the currently logged in ParseUser with a valid session,
+either from memory or the storage provider, if necessary.
+
+
+ public
+ static getCurrentUser ( ) : ParseUser |null
+
+
+
+
+
+
+ Return values
+ ParseUser |null
+ —
+
+
+
+
+
+
+ getEmail()
+
+
+
+
+ Returns the email address, if set, for the ParseUser.
+
+
+ public
+ getEmail ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ getObjectId()
+
+
+
+
+ Get the objectId for the object, or null if unsaved.
+
+
+ public
+ getObjectId ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ getRegisteredSubclass()
+
+
+
+
+ Get the registered subclass for a Parse class, or a generic ParseObject
+if no subclass is registered.
+
+
+ public
+ static getRegisteredSubclass ( string $parseClassName ) : ParseObject
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ ParseObject
+ —
+
+
+
+
+
+
+ getRelation()
+
+
+
+
+ Access or create a Relation value for a key.
+
+
+ public
+ getRelation ( string $key [ , string $className = null ] ) : ParseRelation
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ The key to access the relation for.
+
+
+
+
+ $className
+ : string
+ = null
+
+
+
+
+
+
+
+
+ Return values
+ ParseRelation
+ —
+ The ParseRelation object if the relation already
+exists for the key or can be created for this key.
+
+
+
+
+
+
+ getSessionToken()
+
+
+
+
+ Returns the session token, if available.
+
+
+ public
+ getSessionToken ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ getUpdatedAt()
+
+
+
+
+ Get the updatedAt for the object, or null if unsaved.
+
+
+ public
+ getUpdatedAt ( ) : DateTime |null
+
+
+
+
+
+
+ Return values
+ DateTime |null
+ —
+
+
+
+
+
+
+ getUsername()
+
+
+
+
+ Returns the username.
+
+
+ public
+ getUsername ( ) : string|null
+
+
+
+
+
+
+ Return values
+ string|null
+ —
+
+
+
+
+
+
+ has()
+
+
+
+
+ Check if the object has a given key.
+
+
+ public
+ has ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ hasRegisteredSubclass()
+
+
+
+
+ Check whether there is a subclass registered for a given parse class.
+
+
+ public
+ static hasRegisteredSubclass ( string $parseClassName ) : bool
+
+
+
+ Parameters
+
+
+ $parseClassName
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ increment()
+
+
+
+
+ Increment a numeric key by a certain value.
+
+
+ public
+ increment ( string $key [ , int $value = 1 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key for numeric value on object to increment.
+
+
+
+
+ $value
+ : int
+ = 1
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ isAuthenticated()
+
+
+
+
+ Checks whether this user has been authenticated.
+
+
+ public
+ isAuthenticated ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isCurrent()
+
+
+
+
+ Returns true if this user is the current user.
+
+
+ public
+ isCurrent ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isDataAvailable()
+
+
+
+
+ Returns true if the object has been fetched.
+
+
+ public
+ isDataAvailable ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isDirty()
+
+
+
+
+ Check if the object or any of its child objects have unsaved operations.
+
+
+ public
+ isDirty ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ isKeyDirty()
+
+
+
+
+ Check if the a value associated with a key has been
+added/updated/removed and not saved yet.
+
+
+ public
+ isKeyDirty ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ linkWith()
+
+
+
+
+ Link the user with a service.
+
+
+ public
+ linkWith ( string $serviceName , array<string|int, mixed> $authData [ , bool $useMasterKey = false ] ) : ParseUser
+
+
+
+ Parameters
+
+
+ $serviceName
+ : string
+
+
+ the name of the service
+
+
+
+
+ $authData
+ : array<string|int, mixed>
+
+
+ the array of auth data for $serviceName
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether or not to use the master key, default is false
+
+
+
+
+
+
+
+ Return values
+ ParseUser
+ —
+
+
+
+
+
+
+ linkWithFacebook()
+
+
+
+
+ Link the user with Facebook details.
+
+
+ public
+ linkWithFacebook ( string $id , string $access_token [ , DateTime $expiration_date = null ] [ , bool $useMasterKey = false ] ) : ParseUser
+
+
+
+ Parameters
+
+
+ $id
+ : string
+
+
+ the Facebook user identifier
+
+
+
+
+ $access_token
+ : string
+
+
+ the access token for this session
+
+
+
+
+ $expiration_date
+ : DateTime
+ = null
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ whether to override security
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseUser
+ —
+
+
+
+
+
+
+
+
+ Link the user with Twitter details.
+
+
+ public
+ linkWithTwitter ( string $id , string $screen_name , string $consumer_key [ , string $consumer_secret = null ] [ , string $auth_token = null ] [ , string $auth_token_secret = null ] [ , bool $useMasterKey = false ] ) : ParseUser
+
+
+
+ Parameters
+
+
+ $id
+ : string
+
+
+ the Twitter user identifier
+
+
+
+
+ $screen_name
+ : string
+
+
+ the user's Twitter handle
+
+
+
+
+ $consumer_key
+ : string
+
+
+ the application's consumer key
+
+
+
+
+ $consumer_secret
+ : string
+ = null
+
+ the application's consumer secret
+
+
+
+
+ $auth_token
+ : string
+ = null
+
+ the authorized Twitter token for the user
+
+
+
+
+ $auth_token_secret
+ : string
+ = null
+
+ the secret associated with $auth_token
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ whether to override security
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseUser
+ —
+
+
+
+
+
+
+ logIn()
+
+
+
+
+ Logs in and returns a valid ParseUser, or throws if invalid.
+
+
+ public
+ static logIn ( string $username , string $password ) : ParseUser
+
+
+
+ Parameters
+
+
+ $username
+ : string
+
+
+
+
+
+
+ $password
+ : string
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseUser
+ —
+
+
+
+
+
+
+ logInAs()
+
+
+
+
+ Uses the master key to log in and return a valid ParseUser, or throws if invalid.
+
+
+ public
+ static logInAs ( mixed $userId ) : ParseUser
+
+
+
+ Parameters
+
+
+ $userId
+ : mixed
+
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseUser
+ —
+
+
+
+
+
+
+ logInWith()
+
+
+
+
+ Logs in with a service.
+
+
+ public
+ static logInWith ( string $serviceName , array<string|int, mixed> $authData ) : ParseUser
+
+
+
+ Parameters
+
+
+ $serviceName
+ : string
+
+
+ the name of the service
+
+
+
+
+ $authData
+ : array<string|int, mixed>
+
+
+ the array of auth data for $serviceName
+
+
+
+
+
+
+
+ Return values
+ ParseUser
+ —
+
+
+
+
+
+
+ loginWithAnonymous()
+
+
+
+
+ Login as an anonymous User with REST API. See docs http://parseplatform.org/docs/php/guide/#users
+
+
+ public
+ static loginWithAnonymous ( ) : ParseUser
+
+
+
+
+
+
+
+
+ link
+
+
+ http://parseplatform.org/docs/rest/guide/#anonymous-user-authdata
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseUser
+ —
+
+
+
+
+
+
+ logInWithFacebook()
+
+
+
+
+ Logs in with Facebook details, or throws if invalid.
+
+
+ public
+ static logInWithFacebook ( string $id , string $access_token [ , DateTime $expiration_date = null ] ) : ParseUser
+
+
+
+ Parameters
+
+
+ $id
+ : string
+
+
+ the Facebook user identifier
+
+
+
+
+ $access_token
+ : string
+
+
+ the access token for this session
+
+
+
+
+ $expiration_date
+ : DateTime
+ = null
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseUser
+ —
+
+
+
+
+
+
+
+
+ Logs in with Twitter details, or throws if invalid.
+
+
+ public
+ static logInWithTwitter ( string $id , string $screen_name , string $consumer_key [ , string $consumer_secret = null ] [ , string $auth_token = null ] [ , string $auth_token_secret = null ] ) : ParseUser
+
+
+
+ Parameters
+
+
+ $id
+ : string
+
+
+ the Twitter user identifier
+
+
+
+
+ $screen_name
+ : string
+
+
+ the user's Twitter handle
+
+
+
+
+ $consumer_key
+ : string
+
+
+ the application's consumer key
+
+
+
+
+ $consumer_secret
+ : string
+ = null
+
+ the application's consumer secret
+
+
+
+
+ $auth_token
+ : string
+ = null
+
+ the authorized Twitter token for the user
+
+
+
+
+ $auth_token_secret
+ : string
+ = null
+
+ the secret associated with $auth_token
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ ParseUser
+ —
+
+
+
+
+
+
+ logOut()
+
+
+
+
+ Log out the current user. This will clear the storage and future calls
+ to current will return null.
+
+
+ public
+ static logOut ( ) : mixed
+
+ This will make a network request to logout to invalidate the session.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ query()
+
+
+
+
+ Creates a ParseQuery for the subclass of ParseObject.
+
+
+ public
+ static query ( ) : ParseQuery
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ ParseQuery
+ —
+
+
+
+
+
+
+ registerSubclass()
+
+
+
+
+ Register a subclass. Should be called before any other Parse functions.
+
+
+ public
+ static registerSubclass ( ) : mixed
+
+ Cannot be called on the base class ParseObject.
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ remove()
+
+
+
+
+ Remove a value from an array for an object key.
+
+
+ public
+ remove ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to remove the value from on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to remove from the array.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ requestPasswordReset()
+
+
+
+
+ Requests a password reset email to be sent to the specified email
+address associated with the user account. This email allows the user
+to securely reset their password on the Parse site.
+
+
+ public
+ static requestPasswordReset ( string $email ) : mixed
+
+
+
+ Parameters
+
+
+ $email
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ requestVerificationEmail()
+
+
+
+
+ Request a verification email to be sent to the specified email address
+
+
+ public
+ static requestVerificationEmail ( string $email ) : mixed
+
+
+
+ Parameters
+
+
+ $email
+ : string
+
+
+ Email to request a verification for
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ revert()
+
+
+
+
+ Revert all unsaved operations.
+
+
+ public
+ revert ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ save()
+
+
+
+
+ Save the current user object, unless it is not signed up.
+
+
+ public
+ save ( [ bool $useMasterKey = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ saveAll()
+
+
+
+
+ Save all the objects in the provided array.
+
+
+ public
+ static saveAll ( array<string|int, mixed> $list [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $list
+ : array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ set()
+
+
+
+
+ Validate and set a value for an object key.
+
+
+ public
+ set ( string $key , mixed $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set a value for on the object.
+
+
+
+
+ $value
+ : mixed
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setACL()
+
+
+
+
+ Set ACL for this object.
+
+
+ public
+ setACL ( ParseACL $acl ) : mixed
+
+
+
+ Parameters
+
+
+ $acl
+ : ParseACL
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setArray()
+
+
+
+
+ Set an array value for an object key.
+
+
+ public
+ setArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setAssociativeArray()
+
+
+
+
+ Set an associative array value for an object key.
+
+
+ public
+ setAssociativeArray ( string $key , array<string|int, mixed> $value ) : mixed
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to set the value for on the object.
+
+
+
+
+ $value
+ : array<string|int, mixed>
+
+
+ Value to set on the key.
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setEmail()
+
+
+
+
+ Sets the email address for the ParseUser.
+
+
+ public
+ setEmail ( string $email ) : mixed
+
+
+
+ Parameters
+
+
+ $email
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setPassword()
+
+
+
+
+ Sets the password for the ParseUser.
+
+
+ public
+ setPassword ( string $password ) : mixed
+
+
+
+ Parameters
+
+
+ $password
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ setUsername()
+
+
+
+
+ Sets the username for the ParseUser.
+
+
+ public
+ setUsername ( string $username ) : mixed
+
+
+
+ Parameters
+
+
+ $username
+ : string
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ signUp()
+
+
+
+
+ Signs up the current user, or throw if invalid.
+
+
+ public
+ signUp ( ) : mixed
+
+ This will create a new ParseUser on the server, and also persist the
+session so that you can access the user using ParseUser::getCurrentUser();.
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDirty()
+
+
+
+
+ Detects if the object (and optionally the child objects) has unsaved
+changes.
+
+
+ protected
+ _isDirty ( bool $considerChildren ) : bool
+
+
+
+ Parameters
+
+
+ $considerChildren
+ : bool
+
+
+ Whether to consider children when checking for dirty state
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ handleSaveResult()
+
+
+
+
+ After a save, perform User object specific logic.
+
+
+ protected
+ handleSaveResult ( [ bool $makeCurrent = false ] ) : mixed
+
+
+
+ Parameters
+
+
+ $makeCurrent
+ : bool
+ = false
+
+ Whether to set the current user.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ rebuildEstimatedData()
+
+
+
+
+ Start from serverData and process operations to generate the current
+value set for an object.
+
+
+ protected
+ rebuildEstimatedData ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ saveCurrentUser()
+
+
+
+
+ Persists the current user to the storage provider.
+
+
+ protected
+ static saveCurrentUser ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ _isDataAvailable()
+
+
+
+
+ Returns whether or not data is available for a given key
+
+
+ private
+ _isDataAvailable ( string $key ) : bool
+
+
+
+ Parameters
+
+
+ $key
+ : string
+
+
+ Key to check availability of
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ applyOperations()
+
+
+
+
+ Apply operations to a target object.
+
+
+ private
+ applyOperations ( array<string|int, mixed> $operations , array<string|int, mixed> & $target ) : mixed
+
+
+
+ Parameters
+
+
+ $operations
+ : array<string|int, mixed>
+
+
+ Operations set to apply.
+
+
+
+
+ $target
+ : array<string|int, mixed>
+
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ canBeSerialized()
+
+
+
+
+ Determine if the current object can be serialized for saving.
+
+
+ private
+ canBeSerialized ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ canBeSerializedAsValue()
+
+
+
+
+ Checks the given object and any children to see if the whole object
+can be serialized for saving.
+
+
+ private
+ static canBeSerializedAsValue ( mixed $object ) : bool
+
+
+
+ Parameters
+
+
+ $object
+ : mixed
+
+
+
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ clearAnonymousAuthData()
+
+
+
+
+ Remove current user's anonymous AuthData
+
+
+ private
+ clearAnonymousAuthData ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ deepSave()
+
+
+
+
+ Save object and unsaved children within.
+
+
+ private
+ static deepSave ( ParseObject |array<string|int, mixed> $target [ , bool $useMasterKey = false ] [ , int $batchSize = 40 ] ) : mixed
+
+
+
+ Parameters
+
+
+ $target
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+ Whether to use the Master Key.
+
+
+
+
+ $batchSize
+ : int
+ = 40
+
+ Number of objects to process per request
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ Exception
+
+
+
+
+
+ throws
+
+
+ ParseAggregateException
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ destroyBatch()
+
+
+
+
+ Destroy batch of objects.
+
+
+ private
+ static destroyBatch ( array<string|int, ParseObject > $objects [ , bool $useMasterKey = false ] ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, ParseObject >
+
+
+
+
+
+
+ $useMasterKey
+ : bool
+ = false
+
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ findUnsavedChildren()
+
+
+
+
+ Find unsaved children inside an object.
+
+
+ private
+ static findUnsavedChildren ( ParseObject $object , array<string|int, mixed> & $unsavedChildren , array<string|int, mixed> & $unsavedFiles ) : mixed
+
+
+
+ Parameters
+
+
+ $object
+ : ParseObject
+
+
+
+
+
+
+ $unsavedChildren
+ : array<string|int, mixed>
+
+
+ Array to populate with children.
+
+
+
+
+ $unsavedFiles
+ : array<string|int, mixed>
+
+
+ Array to populate with files.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ getACLWithCopy()
+
+
+
+
+ Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
+
+
+ private
+ getACLWithCopy ( bool $mayCopy ) : ParseACL |null
+
+
+
+ Parameters
+
+
+ $mayCopy
+ : bool
+
+
+ Whether to return a copy of this acl or not
+
+
+
+
+
+
+
+ Return values
+ ParseACL |null
+ —
+
+
+
+
+
+
+ getSaveJSON()
+
+
+
+
+ Returns JSON object of the unsaved operations.
+
+
+ private
+ getSaveJSON ( ) : array<string|int, mixed>
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ getSubclass()
+
+
+
+
+ Gets the Subclass className if exists, otherwise false.
+
+
+ private
+ static getSubclass ( ) : mixed
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ hasDirtyChildren()
+
+
+
+
+ Determines whether this object has child objects that are dirty
+
+
+ private
+ hasDirtyChildren ( ) : bool
+
+
+
+
+
+
+ Return values
+ bool
+ —
+
+
+
+
+
+
+ mergeAfterSave()
+
+
+
+
+ Merge server data after a save completes.
+
+
+ private
+ mergeAfterSave ( array<string|int, mixed> $result ) : mixed
+
+
+
+ Parameters
+
+
+ $result
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromObject()
+
+
+
+
+ Merge data from other object.
+
+
+ private
+ mergeFromObject ( ParseObject $other ) : mixed
+
+
+
+ Parameters
+
+
+ $other
+ : ParseObject
+
+
+ Other object to merge data from
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ mergeFromServer()
+
+
+
+
+ Merges data received from the server.
+
+
+ private
+ mergeFromServer ( array<string|int, mixed> $data [ , bool $completeData = true ] ) : mixed
+
+
+
+ Parameters
+
+
+ $data
+ : array<string|int, mixed>
+
+
+ Data retrieved from server.
+
+
+
+
+ $completeData
+ : bool
+ = true
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+
+
+
+
+
+
+ toObjectIdArray()
+
+
+
+
+ Creates an array of object ids from a given array of ParseObjects
+
+
+ private
+ static toObjectIdArray ( array<string|int, mixed> $objects ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Objects to create id array from
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+ traverse()
+
+
+
+
+ Traverse object to find children.
+
+
+ private
+ static traverse ( bool $deep , ParseObject |array<string|int, mixed> & $object , callable $mapFunction [ , array<string|int, mixed> $seen = [] ] ) : mixed
+
+
+
+ Parameters
+
+
+ $deep
+ : bool
+
+
+ Should this call traverse deeply
+
+
+
+
+ $object
+ : ParseObject |array<string|int, mixed>
+
+
+
+
+
+
+ $mapFunction
+ : callable
+
+
+ Function to call for every item.
+
+
+
+
+ $seen
+ : array<string|int, mixed>
+ = []
+
+
+
+
+
+
+
+
+ Return values
+ mixed
+ —
+ The result of calling mapFunction on the root object.
+
+
+
+
+
+
+ updateWithFetchedResults()
+
+
+
+
+ Merges an existing array of objects with their fetched counterparts
+
+
+ private
+ static updateWithFetchedResults ( array<string|int, mixed> $objects , array<string|int, mixed> $fetched ) : array<string|int, mixed>
+
+
+
+ Parameters
+
+
+ $objects
+ : array<string|int, mixed>
+
+
+ Original objects to update
+
+
+
+
+ $fetched
+ : array<string|int, mixed>
+
+
+ Fetched object data to update with
+
+
+
+
+
+
+
+
+
+ throws
+
+
+ ParseException
+
+
+
+
+
+
+ Return values
+ array<string|int, mixed>
+ —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/composer.json b/composer.json
deleted file mode 100644
index 4c6332dc..00000000
--- a/composer.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "parse/php-sdk",
- "description": "Parse PHP SDK",
- "keywords": ["parse", "sdk"],
- "license": "BSD-3-Clause",
- "type": "library",
- "homepage": "https://github.com/parse-community/parse-php-sdk",
- "authors": [
- {
- "name": "Parse",
- "homepage": "https://github.com/parse-community/parse-php-sdk/graphs/contributors"
- }
- ],
- "require": {
- "php": ">=8.1 <8.4",
- "ext-curl": "*",
- "ext-json": "*"
- },
- "require-dev": {
- "phpunit/phpunit": "10.1.1",
- "squizlabs/php_codesniffer": "3.7.2",
- "phpdocumentor/phpdocumentor": "3.0.0",
- "jms/serializer": "1.7.1",
- "nikic/php-parser": "4.15"
- },
- "minimum-stability": "dev",
- "autoload": {
- "psr-4": {
- "Parse\\": "src/Parse/"
- }
- },
- "autoload-dev": {
- "psr-4": {
- "Parse\\Test\\": "tests/Parse/"
- }
- },
- "config": {
- "allow-plugins": {
- "symfony/flex": true
- }
- }
-}
diff --git a/composer.lock b/composer.lock
deleted file mode 100644
index e78e6ba6..00000000
--- a/composer.lock
+++ /dev/null
@@ -1,7208 +0,0 @@
-{
- "_readme": [
- "This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
- "This file is @generated automatically"
- ],
- "content-hash": "2d86b95ec4eb55e3150de9ccef1e53c1",
- "packages": [],
- "packages-dev": [
- {
- "name": "composer/package-versions-deprecated",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/package-versions-deprecated.git",
- "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d",
- "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.1.0 || ^2.0",
- "php": "^7 || ^8"
- },
- "replace": {
- "ocramius/package-versions": "1.11.99"
- },
- "require-dev": {
- "composer/composer": "^1.9.3 || ^2.0@dev",
- "ext-zip": "^1.13",
- "phpunit/phpunit": "^6.5 || ^7"
- },
- "default-branch": true,
- "type": "composer-plugin",
- "extra": {
- "class": "PackageVersions\\Installer",
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PackageVersions\\": "src/PackageVersions"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- },
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be"
- }
- ],
- "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
- "support": {
- "issues": "https://github.com/composer/package-versions-deprecated/issues",
- "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ],
- "time": "2022-01-17T14:14:24+00:00"
- },
- {
- "name": "doctrine/annotations",
- "version": "1.14.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/annotations.git",
- "reference": "50f9235edd3a3b0fc509d458eaf469f2f5cad932"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/50f9235edd3a3b0fc509d458eaf469f2f5cad932",
- "reference": "50f9235edd3a3b0fc509d458eaf469f2f5cad932",
- "shasum": ""
- },
- "require": {
- "doctrine/lexer": "^1 || ^2",
- "ext-tokenizer": "*",
- "php": "^7.1 || ^8.0",
- "psr/cache": "^1 || ^2 || ^3"
- },
- "require-dev": {
- "doctrine/cache": "^1.11 || ^2.0",
- "doctrine/coding-standard": "^9 || ^12",
- "phpstan/phpstan": "~1.4.10 || ^1.10.28",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "symfony/cache": "^4.4 || ^5.4 || ^6",
- "vimeo/psalm": "^4.30 || ^5.14"
- },
- "suggest": {
- "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Docblock Annotations Parser",
- "homepage": "https://www.doctrine-project.org/projects/annotations.html",
- "keywords": [
- "annotations",
- "docblock",
- "parser"
- ],
- "support": {
- "issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/1.14.x"
- },
- "time": "2023-08-14T13:42:08+00:00"
- },
- {
- "name": "doctrine/deprecations",
- "version": "1.1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/deprecations.git",
- "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
- "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "1.4.10 || 1.10.15",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psalm/plugin-phpunit": "0.18.4",
- "psr/log": "^1 || ^2 || ^3",
- "vimeo/psalm": "4.30.0 || 5.12.0"
- },
- "suggest": {
- "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
- },
- "default-branch": true,
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
- "homepage": "https://www.doctrine-project.org/",
- "support": {
- "issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
- },
- "time": "2024-01-30T19:34:25+00:00"
- },
- {
- "name": "doctrine/event-manager",
- "version": "1.2.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/event-manager.git",
- "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520",
- "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520",
- "shasum": ""
- },
- "require": {
- "doctrine/deprecations": "^0.5.3 || ^1",
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/common": "<2.9"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9 || ^10",
- "phpstan/phpstan": "~1.4.10 || ^1.8.8",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.24"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- },
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- }
- ],
- "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
- "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
- "keywords": [
- "event",
- "event dispatcher",
- "event manager",
- "event system",
- "events"
- ],
- "support": {
- "issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/1.2.x"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager",
- "type": "tidelift"
- }
- ],
- "time": "2022-10-12T20:51:15+00:00"
- },
- {
- "name": "doctrine/instantiator",
- "version": "1.5.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "12be2483e1f0e850b353e26869e4e6c038459501"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/12be2483e1f0e850b353e26869e4e6c038459501",
- "reference": "12be2483e1f0e850b353e26869e4e6c038459501",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9 || ^12",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^0.16 || ^1",
- "phpstan/phpstan": "^1.4",
- "phpstan/phpstan-phpunit": "^1",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
- "vimeo/psalm": "^4.30 || ^5.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "https://ocramius.github.io/"
- }
- ],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
- "keywords": [
- "constructor",
- "instantiate"
- ],
- "support": {
- "issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.5.x"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
- "type": "tidelift"
- }
- ],
- "time": "2023-12-09T14:16:53+00:00"
- },
- {
- "name": "doctrine/lexer",
- "version": "2.1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/lexer.git",
- "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6",
- "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6",
- "shasum": ""
- },
- "require": {
- "doctrine/deprecations": "^1.0",
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9 || ^12",
- "phpstan/phpstan": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
- "psalm/plugin-phpunit": "^0.18.3",
- "vimeo/psalm": "^4.11 || ^5.21"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Lexer\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
- "homepage": "https://www.doctrine-project.org/projects/lexer.html",
- "keywords": [
- "annotations",
- "docblock",
- "lexer",
- "parser",
- "php"
- ],
- "support": {
- "issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/2.1.x"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
- "type": "tidelift"
- }
- ],
- "time": "2024-02-05T11:35:39+00:00"
- },
- {
- "name": "friendsofphp/proxy-manager-lts",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git",
- "reference": "2c8a6cffc3220e99352ad958fe7cf06bf6f7690f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/2c8a6cffc3220e99352ad958fe7cf06bf6f7690f",
- "reference": "2c8a6cffc3220e99352ad958fe7cf06bf6f7690f",
- "shasum": ""
- },
- "require": {
- "laminas/laminas-code": "~3.4.1|^4.0",
- "php": ">=7.1",
- "symfony/filesystem": "^4.4.17|^5.0|^6.0|^7.0"
- },
- "conflict": {
- "laminas/laminas-stdlib": "<3.2.1",
- "zendframework/zend-stdlib": "<3.2.1"
- },
- "replace": {
- "ocramius/proxy-manager": "^2.1"
- },
- "require-dev": {
- "ext-phar": "*",
- "symfony/phpunit-bridge": "^5.4|^6.0|^7.0"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "thanks": {
- "name": "ocramius/proxy-manager",
- "url": "https://github.com/Ocramius/ProxyManager"
- }
- },
- "autoload": {
- "psr-4": {
- "ProxyManager\\": "src/ProxyManager"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "https://ocramius.github.io/"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- }
- ],
- "description": "Adding support for a wider range of PHP versions to ocramius/proxy-manager",
- "homepage": "https://github.com/FriendsOfPHP/proxy-manager-lts",
- "keywords": [
- "aop",
- "lazy loading",
- "proxy",
- "proxy pattern",
- "service proxies"
- ],
- "support": {
- "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues",
- "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.18"
- },
- "funding": [
- {
- "url": "https://github.com/Ocramius",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager",
- "type": "tidelift"
- }
- ],
- "time": "2024-03-20T12:50:41+00:00"
- },
- {
- "name": "jawira/plantuml",
- "version": "v1.2024.5",
- "source": {
- "type": "git",
- "url": "https://github.com/jawira/plantuml.git",
- "reference": "8ec0f2693620ab0a9e52b445ce6ab2f43255cb5b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/jawira/plantuml/zipball/8ec0f2693620ab0a9e52b445ce6ab2f43255cb5b",
- "reference": "8ec0f2693620ab0a9e52b445ce6ab2f43255cb5b",
- "shasum": ""
- },
- "bin": [
- "bin/plantuml"
- ],
- "type": "library",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-3.0-or-later"
- ],
- "authors": [
- {
- "name": "Jawira Portugal"
- }
- ],
- "description": "Provides PlantUML executable and plantuml.jar",
- "keywords": [
- "diagram",
- "jar",
- "plantuml",
- "plantuml.jar",
- "uml"
- ],
- "support": {
- "issues": "https://github.com/jawira/plantuml/issues",
- "source": "https://github.com/jawira/plantuml/tree/v1.2024.5"
- },
- "time": "2024-05-31T13:00:43+00:00"
- },
- {
- "name": "jean85/pretty-package-versions",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/Jean85/pretty-package-versions.git",
- "reference": "a917488320c20057da87f67d0d40543dd9427f7a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/a917488320c20057da87f67d0d40543dd9427f7a",
- "reference": "a917488320c20057da87f67d0d40543dd9427f7a",
- "shasum": ""
- },
- "require": {
- "composer/package-versions-deprecated": "^1.8.0",
- "php": "^7.0|^8.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0|^8.5|^9.2"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Jean85\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Alessandro Lai",
- "email": "alessandro.lai85@gmail.com"
- }
- ],
- "description": "A wrapper for ocramius/package-versions to get pretty versions strings",
- "keywords": [
- "composer",
- "package",
- "release",
- "versions"
- ],
- "support": {
- "issues": "https://github.com/Jean85/pretty-package-versions/issues",
- "source": "https://github.com/Jean85/pretty-package-versions/tree/1.5.1"
- },
- "time": "2020-09-14T08:43:34+00:00"
- },
- {
- "name": "jms/metadata",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/metadata.git",
- "reference": "b7d58bca30b6c5bcc9ad79e46cae10825245d015"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/b7d58bca30b6c5bcc9ad79e46cae10825245d015",
- "reference": "b7d58bca30b6c5bcc9ad79e46cae10825245d015",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "require-dev": {
- "doctrine/cache": "~1.0",
- "symfony/cache": "~3.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.5.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Metadata\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com"
- },
- {
- "name": "Asmir Mustafic",
- "email": "goetas@gmail.com"
- }
- ],
- "description": "Class/method/property metadata management in PHP",
- "keywords": [
- "annotations",
- "metadata",
- "xml",
- "yaml"
- ],
- "support": {
- "issues": "https://github.com/schmittjoh/metadata/issues",
- "source": "https://github.com/schmittjoh/metadata/tree/1.x"
- },
- "time": "2020-05-31T06:14:37+00:00"
- },
- {
- "name": "jms/parser-lib",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/parser-lib.git",
- "reference": "4f45952f9fa97d67adc5dd69e7d622fc89a7675d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/4f45952f9fa97d67adc5dd69e7d622fc89a7675d",
- "reference": "4f45952f9fa97d67adc5dd69e7d622fc89a7675d",
- "shasum": ""
- },
- "require": {
- "phpoption/phpoption": ">=0.9,<2.0-dev"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "JMS\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache2"
- ],
- "description": "A library for easily creating recursive-descent parsers.",
- "support": {
- "issues": "https://github.com/schmittjoh/parser-lib/issues",
- "source": "https://github.com/schmittjoh/parser-lib/tree/1.0.1"
- },
- "time": "2022-03-19T09:24:56+00:00"
- },
- {
- "name": "jms/serializer",
- "version": "1.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/serializer.git",
- "reference": "4fad8bbbe76e05de3b79ffa3db027058ed3813ff"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/4fad8bbbe76e05de3b79ffa3db027058ed3813ff",
- "reference": "4fad8bbbe76e05de3b79ffa3db027058ed3813ff",
- "shasum": ""
- },
- "require": {
- "doctrine/annotations": "^1.0",
- "doctrine/instantiator": "^1.0.3",
- "jms/metadata": "~1.1",
- "jms/parser-lib": "1.*",
- "php": ">=5.5.0",
- "phpcollection/phpcollection": "~0.1",
- "phpoption/phpoption": "^1.1"
- },
- "conflict": {
- "jms/serializer-bundle": "<1.2.1",
- "twig/twig": "<1.12"
- },
- "require-dev": {
- "doctrine/orm": "~2.1",
- "doctrine/phpcr-odm": "^1.3|^2.0",
- "ext-pdo_sqlite": "*",
- "jackalope/jackalope-doctrine-dbal": "^1.1.5",
- "phpunit/phpunit": "^4.8|^5.0",
- "propel/propel1": "~1.7",
- "symfony/expression-language": "^2.6|^3.0",
- "symfony/filesystem": "^2.1",
- "symfony/form": "~2.1|^3.0",
- "symfony/translation": "^2.1|^3.0",
- "symfony/validator": "^2.2|^3.0",
- "symfony/yaml": "^2.1|^3.0",
- "twig/twig": "~1.12|~2.0"
- },
- "suggest": {
- "doctrine/cache": "Required if you like to use cache functionality.",
- "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.",
- "symfony/yaml": "Required if you'd like to serialize data to YAML format."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.8-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "JMS\\Serializer": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.",
- "homepage": "http://jmsyst.com/libs/serializer",
- "keywords": [
- "deserialization",
- "jaxb",
- "json",
- "serialization",
- "xml"
- ],
- "support": {
- "issues": "https://github.com/schmittjoh/serializer/issues",
- "source": "https://github.com/schmittjoh/serializer/tree/master"
- },
- "time": "2017-05-15T08:35:42+00:00"
- },
- {
- "name": "laminas/laminas-code",
- "version": "4.15.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/laminas/laminas-code.git",
- "reference": "562e02b7d85cb9142b5116cc76c4c7c162a11a1c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-code/zipball/562e02b7d85cb9142b5116cc76c4c7c162a11a1c",
- "reference": "562e02b7d85cb9142b5116cc76c4c7c162a11a1c",
- "shasum": ""
- },
- "require": {
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0"
- },
- "require-dev": {
- "doctrine/annotations": "^2.0.1",
- "ext-phar": "*",
- "laminas/laminas-coding-standard": "^2.5.0",
- "laminas/laminas-stdlib": "^3.17.0",
- "phpunit/phpunit": "^10.3.3",
- "psalm/plugin-phpunit": "^0.19.0",
- "vimeo/psalm": "^5.15.0"
- },
- "suggest": {
- "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
- "laminas/laminas-stdlib": "Laminas\\Stdlib component"
- },
- "default-branch": true,
- "type": "library",
- "autoload": {
- "psr-4": {
- "Laminas\\Code\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Extensions to the PHP Reflection API, static code scanning, and code generation",
- "homepage": "https://laminas.dev",
- "keywords": [
- "code",
- "laminas",
- "laminasframework"
- ],
- "support": {
- "chat": "https://laminas.dev/chat",
- "docs": "https://docs.laminas.dev/laminas-code/",
- "forum": "https://discourse.laminas.dev",
- "issues": "https://github.com/laminas/laminas-code/issues",
- "rss": "https://github.com/laminas/laminas-code/releases.atom",
- "source": "https://github.com/laminas/laminas-code"
- },
- "funding": [
- {
- "url": "https://funding.communitybridge.org/projects/laminas-project",
- "type": "community_bridge"
- }
- ],
- "time": "2024-06-17T08:50:25+00:00"
- },
- {
- "name": "league/commonmark",
- "version": "1.6.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/commonmark.git",
- "reference": "b7a2aedcca80659fac31b92f525b7837b15d45aa"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b7a2aedcca80659fac31b92f525b7837b15d45aa",
- "reference": "b7a2aedcca80659fac31b92f525b7837b15d45aa",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*",
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "scrutinizer/ocular": "1.7.*"
- },
- "require-dev": {
- "cebe/markdown": "~1.0",
- "commonmark/commonmark.js": "0.29.2",
- "erusev/parsedown": "~1.0",
- "ext-json": "*",
- "github/gfm": "0.29.0",
- "michelf/php-markdown": "~1.4",
- "mikehaertl/php-shellcommand": "^1.4",
- "phpstan/phpstan": "^0.12.90",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.2",
- "scrutinizer/ocular": "^1.5",
- "symfony/finder": "^4.2"
- },
- "bin": [
- "bin/commonmark"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "League\\CommonMark\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Colin O'Dell",
- "email": "colinodell@gmail.com",
- "homepage": "https://www.colinodell.com",
- "role": "Lead Developer"
- }
- ],
- "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)",
- "homepage": "https://commonmark.thephpleague.com",
- "keywords": [
- "commonmark",
- "flavored",
- "gfm",
- "github",
- "github-flavored",
- "markdown",
- "md",
- "parser"
- ],
- "support": {
- "docs": "https://commonmark.thephpleague.com/",
- "issues": "https://github.com/thephpleague/commonmark/issues",
- "rss": "https://github.com/thephpleague/commonmark/releases.atom",
- "source": "https://github.com/thephpleague/commonmark"
- },
- "funding": [
- {
- "url": "https://www.colinodell.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://www.paypal.me/colinpodell/10.00",
- "type": "custom"
- },
- {
- "url": "https://github.com/colinodell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
- "type": "tidelift"
- }
- ],
- "time": "2022-01-13T17:17:14+00:00"
- },
- {
- "name": "league/flysystem",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/flysystem.git",
- "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1",
- "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1",
- "shasum": ""
- },
- "require": {
- "ext-fileinfo": "*",
- "league/mime-type-detection": "^1.3",
- "php": "^7.2.5 || ^8.0"
- },
- "conflict": {
- "league/flysystem-sftp": "<1.0.6"
- },
- "require-dev": {
- "phpspec/prophecy": "^1.11.1",
- "phpunit/phpunit": "^8.5.8"
- },
- "suggest": {
- "ext-ftp": "Allows you to use FTP server storage",
- "ext-openssl": "Allows you to use FTPS server storage",
- "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
- "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
- "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
- "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
- "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
- "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
- "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
- "league/flysystem-webdav": "Allows you to use WebDAV storage",
- "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
- "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
- "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Flysystem\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Frank de Jonge",
- "email": "info@frenky.net"
- }
- ],
- "description": "Filesystem abstraction: Many filesystems, one API.",
- "keywords": [
- "Cloud Files",
- "WebDAV",
- "abstraction",
- "aws",
- "cloud",
- "copy.com",
- "dropbox",
- "file systems",
- "files",
- "filesystem",
- "filesystems",
- "ftp",
- "rackspace",
- "remote",
- "s3",
- "sftp",
- "storage"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/1.x"
- },
- "funding": [
- {
- "url": "https://offset.earth/frankdejonge",
- "type": "other"
- }
- ],
- "time": "2022-10-04T09:16:37+00:00"
- },
- {
- "name": "league/mime-type-detection",
- "version": "1.15.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/mime-type-detection.git",
- "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301",
- "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301",
- "shasum": ""
- },
- "require": {
- "ext-fileinfo": "*",
- "php": "^7.4 || ^8.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^3.2",
- "phpstan/phpstan": "^0.12.68",
- "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "League\\MimeTypeDetection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Frank de Jonge",
- "email": "info@frankdejonge.nl"
- }
- ],
- "description": "Mime-type detection for Flysystem",
- "support": {
- "issues": "https://github.com/thephpleague/mime-type-detection/issues",
- "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0"
- },
- "funding": [
- {
- "url": "https://github.com/frankdejonge",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
- "type": "tidelift"
- }
- ],
- "time": "2024-01-28T23:22:08+00:00"
- },
- {
- "name": "league/pipeline",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/pipeline.git",
- "reference": "aa14b0e3133121f8be39e9a3b6ddd011fc5bb9a8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/pipeline/zipball/aa14b0e3133121f8be39e9a3b6ddd011fc5bb9a8",
- "reference": "aa14b0e3133121f8be39e9a3b6ddd011fc5bb9a8",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "require-dev": {
- "leanphp/phpspec-code-coverage": "^4.2",
- "phpspec/phpspec": "^4.3"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "League\\Pipeline\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Frank de Jonge",
- "email": "info@frenky.net",
- "role": "Author"
- },
- {
- "name": "Woody Gilk",
- "email": "woody.gilk@gmail.com",
- "role": "Maintainer"
- }
- ],
- "description": "A plug and play pipeline implementation.",
- "keywords": [
- "composition",
- "design pattern",
- "pattern",
- "pipeline",
- "sequential"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/pipeline/issues",
- "source": "https://github.com/thephpleague/pipeline/tree/master"
- },
- "time": "2018-06-05T21:06:51+00:00"
- },
- {
- "name": "league/tactician",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/tactician.git",
- "reference": "4ea79b34fff0aac6eb6bbed9d1100183c53a564e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/tactician/zipball/4ea79b34fff0aac6eb6bbed9d1100183c53a564e",
- "reference": "4ea79b34fff0aac6eb6bbed9d1100183c53a564e",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "require-dev": {
- "mockery/mockery": "^1.3",
- "phpunit/phpunit": "^7.5.20 || ^9.3.8",
- "squizlabs/php_codesniffer": "^3.5.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Tactician\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ross Tuck",
- "homepage": "http://tactician.thephpleague.com"
- }
- ],
- "description": "A small, flexible command bus. Handy for building service layers.",
- "keywords": [
- "command",
- "command bus",
- "service layer"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/tactician/issues",
- "source": "https://github.com/thephpleague/tactician/tree/1.x"
- },
- "time": "2022-01-17T17:16:14+00:00"
- },
- {
- "name": "league/tactician-bundle",
- "version": "v1.5.1",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/tactician-bundle.git",
- "reference": "165d9fa14eb55bf84257fc40af0a69beca9c3611"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/tactician-bundle/zipball/165d9fa14eb55bf84257fc40af0a69beca9c3611",
- "reference": "165d9fa14eb55bf84257fc40af0a69beca9c3611",
- "shasum": ""
- },
- "require": {
- "league/tactician": "^1.0",
- "league/tactician-container": "^2.0|^3.0",
- "league/tactician-logger": "^0.10|^0.11",
- "php": ">=7.2",
- "symfony/config": "^3.4|^4.4|^5.0|^6.0|^7.0",
- "symfony/dependency-injection": "^3.4|^4.4|^5.0|^6.0|^7.0",
- "symfony/http-kernel": "^3.4|^4.4|^5.0|^6.0|^7.0",
- "symfony/yaml": "^3.4|^4.4|^5.0|^6.0|^7.0"
- },
- "require-dev": {
- "matthiasnoback/symfony-config-test": "^4.2.1",
- "matthiasnoback/symfony-dependency-injection-test": "^4.2.1",
- "mockery/mockery": "~1.0",
- "phpspec/prophecy": "^1.18",
- "phpunit/phpunit": "~8.5",
- "symfony/console": "^3.4|^4.4|^5.0|^6.0|^7.0",
- "symfony/framework-bundle": "^3.4.31|^4.4|^5.0|^6.0|^7.0",
- "symfony/security-bundle": "^3.4|^4.4|^5.0|^6.0|^7.0",
- "symfony/security-core": "^3.4|^4.4|^5.0|^6.0|^7.0",
- "symfony/validator": "^3.4|^4.4|^5.0|^6.0|^7.0"
- },
- "suggest": {
- "league/tactician-doctrine": "For doctrine transaction middleware",
- "symfony/console": "For debugging command-to-handler routing using the tactician:debug console command",
- "symfony/security": "For command security middleware",
- "symfony/validator": "For command validator middleware"
- },
- "type": "symfony-bundle",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Tactician\\Bundle\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Rafael Dohms",
- "homepage": "http://doh.ms"
- },
- {
- "name": "Richard Tuin",
- "homepage": "http://www.rtuin.nl/"
- },
- {
- "name": "Xander Smalbil",
- "email": "xander@videofunk.nl"
- },
- {
- "name": "Ross Tuck",
- "email": "me@rosstuck.com"
- }
- ],
- "description": "Bundle to integrate Tactician with Symfony projects",
- "keywords": [
- "bundle",
- "symfony",
- "tactician"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/tactician-bundle/issues",
- "source": "https://github.com/thephpleague/tactician-bundle/tree/v1.5.1"
- },
- "time": "2024-01-30T18:43:03+00:00"
- },
- {
- "name": "league/tactician-container",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/tactician-container.git",
- "reference": "d1a5d884e072b8cafbff802d07766076eb2ffcb0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/tactician-container/zipball/d1a5d884e072b8cafbff802d07766076eb2ffcb0",
- "reference": "d1a5d884e072b8cafbff802d07766076eb2ffcb0",
- "shasum": ""
- },
- "require": {
- "league/tactician": "^1.0",
- "php": ">=5.5",
- "psr/container": "^1.0"
- },
- "require-dev": {
- "league/container": "~2.3",
- "phpunit/phpunit": "~4.3",
- "squizlabs/php_codesniffer": "~2.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "League\\Tactician\\Container\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nigel Greenway",
- "homepage": "http://futurepixels.co.uk"
- }
- ],
- "description": "Tactician integration for any container implementing PSR-11",
- "keywords": [
- "container",
- "container-interop",
- "di",
- "interoperable",
- "league",
- "tactician"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/tactician-container/issues",
- "source": "https://github.com/thephpleague/tactician-container/tree/master"
- },
- "time": "2017-04-13T06:27:12+00:00"
- },
- {
- "name": "league/tactician-logger",
- "version": "v0.11.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/tactician-logger.git",
- "reference": "c2d0977445d18d7e3d85adccef7dc14948707ea9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/tactician-logger/zipball/c2d0977445d18d7e3d85adccef7dc14948707ea9",
- "reference": "c2d0977445d18d7e3d85adccef7dc14948707ea9",
- "shasum": ""
- },
- "require": {
- "league/tactician": "^1.1",
- "php": ">=7.3",
- "psr/log": "^1.0|^2.0|^3.0"
- },
- "require-dev": {
- "mockery/mockery": "^1.3",
- "phpunit/phpunit": "^9.3",
- "squizlabs/php_codesniffer": "^3.5.8"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "League\\Tactician\\Logger\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ross Tuck"
- }
- ],
- "description": "Adds PSR-3 logging support to the Tactician command bus",
- "homepage": "https://github.com/thephpleague/tactician-logger",
- "keywords": [
- "log",
- "logging",
- "tactician"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/tactician-logger/issues",
- "source": "https://github.com/thephpleague/tactician-logger/tree/v0.11.0"
- },
- "time": "2021-11-14T15:08:02+00:00"
- },
- {
- "name": "league/uri",
- "version": "6.8.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/uri.git",
- "reference": "a700b4656e4c54371b799ac61e300ab25a2d1d39"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri/zipball/a700b4656e4c54371b799ac61e300ab25a2d1d39",
- "reference": "a700b4656e4c54371b799ac61e300ab25a2d1d39",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "league/uri-interfaces": "^2.3",
- "php": "^8.1",
- "psr/http-message": "^1.0.1"
- },
- "conflict": {
- "league/uri-schemes": "^1.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^v3.9.5",
- "nyholm/psr7": "^1.5.1",
- "php-http/psr7-integration-tests": "^1.1.1",
- "phpbench/phpbench": "^1.2.6",
- "phpstan/phpstan": "^1.8.5",
- "phpstan/phpstan-deprecation-rules": "^1.0",
- "phpstan/phpstan-phpunit": "^1.1.1",
- "phpstan/phpstan-strict-rules": "^1.4.3",
- "phpunit/phpunit": "^9.5.24",
- "psr/http-factory": "^1.0.1"
- },
- "suggest": {
- "ext-fileinfo": "Needed to create Data URI from a filepath",
- "ext-intl": "Needed to improve host validation",
- "league/uri-components": "Needed to easily manipulate URI objects",
- "psr/http-factory": "Needed to use the URI factory"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Uri\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ignace Nyamagana Butera",
- "email": "nyamsprod@gmail.com",
- "homepage": "https://nyamsprod.com"
- }
- ],
- "description": "URI manipulation library",
- "homepage": "https://uri.thephpleague.com",
- "keywords": [
- "data-uri",
- "file-uri",
- "ftp",
- "hostname",
- "http",
- "https",
- "middleware",
- "parse_str",
- "parse_url",
- "psr-7",
- "query-string",
- "querystring",
- "rfc3986",
- "rfc3987",
- "rfc6570",
- "uri",
- "uri-template",
- "url",
- "ws"
- ],
- "support": {
- "docs": "https://uri.thephpleague.com",
- "forum": "https://thephpleague.slack.com",
- "issues": "https://github.com/thephpleague/uri/issues",
- "source": "https://github.com/thephpleague/uri/tree/6.8.0"
- },
- "funding": [
- {
- "url": "https://github.com/sponsors/nyamsprod",
- "type": "github"
- }
- ],
- "time": "2022-09-13T19:58:47+00:00"
- },
- {
- "name": "league/uri-interfaces",
- "version": "2.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/uri-interfaces.git",
- "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/00e7e2943f76d8cb50c7dfdc2f6dee356e15e383",
- "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.19",
- "phpstan/phpstan": "^0.12.90",
- "phpstan/phpstan-phpunit": "^0.12.19",
- "phpstan/phpstan-strict-rules": "^0.12.9",
- "phpunit/phpunit": "^8.5.15 || ^9.5"
- },
- "suggest": {
- "ext-intl": "to use the IDNA feature",
- "symfony/intl": "to use the IDNA feature via Symfony Polyfill"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Uri\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ignace Nyamagana Butera",
- "email": "nyamsprod@gmail.com",
- "homepage": "https://nyamsprod.com"
- }
- ],
- "description": "Common interface for URI representation",
- "homepage": "http://github.com/thephpleague/uri-interfaces",
- "keywords": [
- "rfc3986",
- "rfc3987",
- "uri",
- "url"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/uri-interfaces/issues",
- "source": "https://github.com/thephpleague/uri-interfaces/tree/2.3.0"
- },
- "funding": [
- {
- "url": "https://github.com/sponsors/nyamsprod",
- "type": "github"
- }
- ],
- "time": "2021-06-28T04:27:21+00:00"
- },
- {
- "name": "monolog/monolog",
- "version": "2.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/Seldaek/monolog.git",
- "reference": "884aa47a055ea3e8e351ceaf4dfc67f52fff44c0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/884aa47a055ea3e8e351ceaf4dfc67f52fff44c0",
- "reference": "884aa47a055ea3e8e351ceaf4dfc67f52fff44c0",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2",
- "psr/log": "^1.0.1 || ^2.0 || ^3.0"
- },
- "provide": {
- "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
- },
- "require-dev": {
- "aws/aws-sdk-php": "^2.4.9 || ^3.0",
- "doctrine/couchdb": "~1.0@dev",
- "elasticsearch/elasticsearch": "^7 || ^8",
- "ext-json": "*",
- "graylog2/gelf-php": "^1.4.2 || ^2@dev",
- "guzzlehttp/guzzle": "^7.4",
- "guzzlehttp/psr7": "^2.2",
- "mongodb/mongodb": "^1.8",
- "php-amqplib/php-amqplib": "~2.4 || ^3",
- "phpspec/prophecy": "^1.15",
- "phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^8.5.38 || ^9.6.19",
- "predis/predis": "^1.1 || ^2.0",
- "rollbar/rollbar": "^1.3 || ^2 || ^3",
- "ruflin/elastica": "^7",
- "swiftmailer/swiftmailer": "^5.3|^6.0",
- "symfony/mailer": "^5.4 || ^6",
- "symfony/mime": "^5.4 || ^6"
- },
- "suggest": {
- "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
- "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
- "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
- "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
- "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
- "ext-mbstring": "Allow to work properly with unicode symbols",
- "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
- "ext-openssl": "Required to send log messages using SSL",
- "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
- "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
- "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
- "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
- "rollbar/rollbar": "Allow sending log messages to Rollbar",
- "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Monolog\\": "src/Monolog"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "https://seld.be"
- }
- ],
- "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
- "homepage": "https://github.com/Seldaek/monolog",
- "keywords": [
- "log",
- "logging",
- "psr-3"
- ],
- "support": {
- "issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/2.x"
- },
- "funding": [
- {
- "url": "https://github.com/Seldaek",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
- "type": "tidelift"
- }
- ],
- "time": "2024-04-15T08:56:50+00:00"
- },
- {
- "name": "myclabs/deep-copy",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
- "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/collections": "<1.6.8",
- "doctrine/common": "<2.13.3 || >=3 <3.2.2"
- },
- "require-dev": {
- "doctrine/collections": "^1.6.8",
- "doctrine/common": "^2.13.3 || ^3.2.2",
- "phpspec/prophecy": "^1.10",
- "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
- },
- "default-branch": true,
- "type": "library",
- "autoload": {
- "files": [
- "src/DeepCopy/deep_copy.php"
- ],
- "psr-4": {
- "DeepCopy\\": "src/DeepCopy/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Create deep copies (clones) of your objects",
- "keywords": [
- "clone",
- "copy",
- "duplicate",
- "object",
- "object graph"
- ],
- "support": {
- "issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0"
- },
- "funding": [
- {
- "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
- "type": "tidelift"
- }
- ],
- "time": "2024-06-12T14:39:25+00:00"
- },
- {
- "name": "nikic/php-parser",
- "version": "v4.15.0",
- "source": {
- "type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "617d0220b903895537b25791f52af4698dd19339"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/617d0220b903895537b25791f52af4698dd19339",
- "reference": "617d0220b903895537b25791f52af4698dd19339",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": ">=7.0"
- },
- "require-dev": {
- "ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
- },
- "bin": [
- "bin/php-parse"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.9-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PhpParser\\": "lib/PhpParser"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Nikita Popov"
- }
- ],
- "description": "A PHP parser written in PHP",
- "keywords": [
- "parser",
- "php"
- ],
- "support": {
- "issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.0"
- },
- "time": "2022-09-03T19:54:32+00:00"
- },
- {
- "name": "phar-io/manifest",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/manifest.git",
- "reference": "54750ef60c58e43759730615a392c31c80e23176"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
- "reference": "54750ef60c58e43759730615a392c31c80e23176",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "ext-phar": "*",
- "ext-xmlwriter": "*",
- "phar-io/version": "^3.0.1",
- "php": "^7.2 || ^8.0"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
- }
- ],
- "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
- "support": {
- "issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/2.0.4"
- },
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2024-03-03T12:33:53+00:00"
- },
- {
- "name": "phar-io/version",
- "version": "3.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/version.git",
- "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
- "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
- }
- ],
- "description": "Library for handling version information and constraints",
- "support": {
- "issues": "https://github.com/phar-io/version/issues",
- "source": "https://github.com/phar-io/version/tree/3.2.1"
- },
- "time": "2022-02-21T01:04:05+00:00"
- },
- {
- "name": "phpcollection/phpcollection",
- "version": "0.6.0",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/php-collection.git",
- "reference": "56d18c8c2c0400f2838703246ac7de919a605763"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/56d18c8c2c0400f2838703246ac7de919a605763",
- "reference": "56d18c8c2c0400f2838703246ac7de919a605763",
- "shasum": ""
- },
- "require": {
- "phpoption/phpoption": "1.*"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "0.4-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "PhpCollection": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache2"
- ],
- "authors": [
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "General-Purpose Collection Library for PHP",
- "keywords": [
- "collection",
- "list",
- "map",
- "sequence",
- "set"
- ],
- "support": {
- "issues": "https://github.com/schmittjoh/php-collection/issues",
- "source": "https://github.com/schmittjoh/php-collection/tree/0.6.0"
- },
- "time": "2022-03-21T13:02:41+00:00"
- },
- {
- "name": "phpdocumentor/flyfinder",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/FlyFinder.git",
- "reference": "4c0fa890a507cf554457104495b7b8526267feec"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/FlyFinder/zipball/4c0fa890a507cf554457104495b7b8526267feec",
- "reference": "4c0fa890a507cf554457104495b7b8526267feec",
- "shasum": ""
- },
- "require": {
- "league/flysystem": "^1.0",
- "php": "^7.2||^8.0"
- },
- "require-dev": {
- "league/flysystem-memory": "~1",
- "mockery/mockery": "^1.3"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Flyfinder\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Flysystem plugin to add file finding capabilities to the Filesystem entity",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "Flysystem",
- "phpdoc"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/FlyFinder/issues",
- "source": "https://github.com/phpDocumentor/FlyFinder/tree/master"
- },
- "time": "2022-10-11T20:08:49+00:00"
- },
- {
- "name": "phpdocumentor/graphviz",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/GraphViz.git",
- "reference": "1322ff82a165865e9c967f2d10e945f4a4ca0e3a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/GraphViz/zipball/1322ff82a165865e9c967f2d10e945f4a4ca0e3a",
- "reference": "1322ff82a165865e9c967f2d10e945f4a4ca0e3a",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "ext-simplexml": "*",
- "mockery/mockery": "^1.2",
- "phpstan/phpstan": "^0.12",
- "phpunit/phpunit": "^8.2 || ^9.2",
- "psalm/phar": "^4.15 || ^5.0"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\GraphViz\\": "src/phpDocumentor/GraphViz",
- "phpDocumentor\\GraphViz\\PHPStan\\": "./src/phpDocumentor/PHPStan"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "mike.vanriel@naenius.com"
- }
- ],
- "description": "Wrapper for Graphviz",
- "support": {
- "issues": "https://github.com/phpDocumentor/GraphViz/issues",
- "source": "https://github.com/phpDocumentor/GraphViz/tree/master"
- },
- "time": "2024-03-29T13:33:50+00:00"
- },
- {
- "name": "phpdocumentor/phpdocumentor",
- "version": "v3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/phpDocumentor.git",
- "reference": "405da431bdc7ca02512cb6aa15f4ed43ffca8175"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/phpDocumentor/zipball/405da431bdc7ca02512cb6aa15f4ed43ffca8175",
- "reference": "405da431bdc7ca02512cb6aa15f4ed43ffca8175",
- "shasum": ""
- },
- "require": {
- "doctrine/event-manager": "^1.1",
- "ext-ctype": "*",
- "ext-hash": "*",
- "ext-iconv": "*",
- "ext-json": "*",
- "ext-mbstring": "*",
- "ext-simplexml": "*",
- "ext-xml": "*",
- "jawira/plantuml": "^1.27",
- "jean85/pretty-package-versions": "^1.2",
- "league/commonmark": "^1.5",
- "league/flysystem": "^1.0",
- "league/pipeline": "^1.0",
- "league/tactician": "^1.0",
- "league/tactician-bundle": "^1.2",
- "league/uri": "^6.0",
- "league/uri-interfaces": "^2.0",
- "php": ">=7.2.5",
- "phpdocumentor/flyfinder": "^1.0",
- "phpdocumentor/graphviz": "^2.0@dev",
- "phpdocumentor/reflection": "^4.0",
- "phpdocumentor/reflection-common": "^2.0",
- "phpdocumentor/reflection-docblock": "^5.0",
- "phpdocumentor/type-resolver": "^1.0",
- "psr/cache": "^1.0",
- "psr/log": "^1.1",
- "scrivo/highlight.php": "^9.17",
- "symfony/cache": "^5.0",
- "symfony/config": "^5.0",
- "symfony/console": "^5.0",
- "symfony/contracts": "^2.0",
- "symfony/dependency-injection": "^5.0",
- "symfony/dom-crawler": "5.1.*",
- "symfony/dotenv": "^5.0",
- "symfony/event-dispatcher": "^5.0",
- "symfony/expression-language": "^5.0",
- "symfony/filesystem": "^5.0",
- "symfony/finder": "5.1.*",
- "symfony/flex": "^1.3.1",
- "symfony/framework-bundle": "^5.0",
- "symfony/http-foundation": "^5.0.7",
- "symfony/http-kernel": "^5.0.8",
- "symfony/monolog-bundle": "^3.0",
- "symfony/process": "5.1.*",
- "symfony/proxy-manager-bridge": "^5.0",
- "symfony/routing": "^5.0",
- "symfony/stopwatch": "^5.0",
- "symfony/string": "5.1.*",
- "symfony/yaml": "^5.0",
- "twig/twig": "~2.0",
- "webmozart/assert": "^1.3"
- },
- "conflict": {
- "symfony/symfony": "*"
- },
- "replace": {
- "paragonie/random_compat": "2.*",
- "symfony/polyfill-iconv": "*",
- "symfony/polyfill-php56": "*",
- "symfony/polyfill-php70": "*",
- "symfony/polyfill-php71": "*",
- "symfony/polyfill-php72": "*"
- },
- "require-dev": {
- "fzaninotto/faker": "^1.9",
- "mikey179/vfsstream": "^1.2",
- "mockery/mockery": "^1.0"
- },
- "bin": [
- "bin/phpdoc.php",
- "bin/phpdoc"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- },
- "symfony": {
- "id": "01C32VS9393M1CP9R8TEJMH62G",
- "allow-contrib": false,
- "require": "^5.0"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\": [
- "src/phpDocumentor/"
- ],
- "phpDocumentor\\Guides\\": "src/Guides/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Documentation Generator for PHP",
- "homepage": "https://www.phpdoc.org",
- "keywords": [
- "api",
- "application",
- "dga",
- "documentation",
- "phpdoc"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/phpDocumentor/issues",
- "source": "https://github.com/phpDocumentor/phpDocumentor/tree/v3.0.0"
- },
- "time": "2020-10-27T20:24:27+00:00"
- },
- {
- "name": "phpdocumentor/reflection",
- "version": "4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/Reflection.git",
- "reference": "447928a45710d6313e68774cf12b5f730b909baa"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/Reflection/zipball/447928a45710d6313e68774cf12b5f730b909baa",
- "reference": "447928a45710d6313e68774cf12b5f730b909baa",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "^4.0",
- "php": ">=7.2",
- "phpdocumentor/reflection-common": "^2.0",
- "phpdocumentor/reflection-docblock": "^5",
- "phpdocumentor/type-resolver": "^1.0",
- "psr/log": "~1.0",
- "webmozart/assert": "^1.0"
- },
- "require-dev": {
- "mikey179/vfsstream": "~1.2",
- "mockery/mockery": "~1.0"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-4.x": "4.1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\": "src/phpDocumentor"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Reflection library to do Static Analysis for PHP Projects",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/Reflection/issues",
- "source": "https://github.com/phpDocumentor/Reflection/tree/4.0.1"
- },
- "time": "2020-06-19T18:26:14+00:00"
- },
- {
- "name": "phpdocumentor/reflection-common",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "a0eeab580cbdf4414fef6978732510a36ed0a9d6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/a0eeab580cbdf4414fef6978732510a36ed0a9d6",
- "reference": "a0eeab580cbdf4414fef6978732510a36ed0a9d6",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
- "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/master"
- },
- "time": "2021-06-25T13:47:51+00:00"
- },
- {
- "name": "phpdocumentor/reflection-docblock",
- "version": "5.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "aa53f8d4374d1f5bd3fc598548d6272cb5d9bf39"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/aa53f8d4374d1f5bd3fc598548d6272cb5d9bf39",
- "reference": "aa53f8d4374d1f5bd3fc598548d6272cb5d9bf39",
- "shasum": ""
- },
- "require": {
- "doctrine/deprecations": "^1.1",
- "ext-filter": "*",
- "php": "^7.4 || ^8.0",
- "phpdocumentor/reflection-common": "^2.2",
- "phpdocumentor/type-resolver": "^1.7",
- "phpstan/phpdoc-parser": "^1.7",
- "webmozart/assert": "^1.9.1"
- },
- "require-dev": {
- "mockery/mockery": "~1.3.5",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-mockery": "^1.1",
- "phpstan/phpstan-webmozart-assert": "^1.2",
- "phpunit/phpunit": "^9.5",
- "vimeo/psalm": "^5.13"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- },
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.x"
- },
- "time": "2024-05-21T06:14:15+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "eee054a3d40f09920f5b27c9b09a6483f88d9d24"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/eee054a3d40f09920f5b27c9b09a6483f88d9d24",
- "reference": "eee054a3d40f09920f5b27c9b09a6483f88d9d24",
- "shasum": ""
- },
- "require": {
- "doctrine/deprecations": "^1.0",
- "php": "^7.3 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0",
- "phpstan/phpdoc-parser": "^1.18"
- },
- "require-dev": {
- "ext-tokenizer": "*",
- "phpbench/phpbench": "^1.2",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpunit/phpunit": "^9.5",
- "rector/rector": "^0.13.9",
- "vimeo/psalm": "^4.25"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-1.x": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
- "support": {
- "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.x"
- },
- "time": "2024-05-24T14:24:30+00:00"
- },
- {
- "name": "phpoption/phpoption",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/php-option.git",
- "reference": "416ca2ac2a84555b785a98002d613fe13d1d1c2f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/416ca2ac2a84555b785a98002d613fe13d1d1c2f",
- "reference": "416ca2ac2a84555b785a98002d613fe13d1d1c2f",
- "shasum": ""
- },
- "require": {
- "php": "^7.2.5 || ^8.0"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "bamarni-bin": {
- "bin-links": true,
- "forward-command": false
- },
- "branch-alias": {
- "dev-master": "1.9-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PhpOption\\": "src/PhpOption/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com",
- "homepage": "https://github.com/schmittjoh"
- },
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- }
- ],
- "description": "Option Type for PHP",
- "keywords": [
- "language",
- "option",
- "php",
- "type"
- ],
- "support": {
- "issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/master"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
- "type": "tidelift"
- }
- ],
- "time": "2023-11-12T22:52:20+00:00"
- },
- {
- "name": "phpstan/phpdoc-parser",
- "version": "1.29.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4",
- "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "doctrine/annotations": "^2.0",
- "nikic/php-parser": "^4.15",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.5",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5",
- "symfony/process": "^5.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "PHPStan\\PhpDocParser\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHPDoc parser with support for nullable, intersection and generic types",
- "support": {
- "issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1"
- },
- "time": "2024-05-31T08:52:43+00:00"
- },
- {
- "name": "phpunit/php-code-coverage",
- "version": "10.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "599109c8ca6bae97b23482d557d2874c25a65e59"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/599109c8ca6bae97b23482d557d2874c25a65e59",
- "reference": "599109c8ca6bae97b23482d557d2874c25a65e59",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "ext-xmlwriter": "*",
- "nikic/php-parser": "^4.15",
- "php": ">=8.1",
- "phpunit/php-file-iterator": "^4.0",
- "phpunit/php-text-template": "^3.0",
- "sebastian/code-unit-reverse-lookup": "^3.0",
- "sebastian/complexity": "^3.0",
- "sebastian/environment": "^6.0",
- "sebastian/lines-of-code": "^2.0",
- "sebastian/version": "^4.0",
- "theseer/tokenizer": "^1.2.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.1"
- },
- "suggest": {
- "ext-pcov": "PHP extension that provides line coverage",
- "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "10.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
- "keywords": [
- "coverage",
- "testing",
- "xunit"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.10"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2023-12-11T06:28:43+00:00"
- },
- {
- "name": "phpunit/php-file-iterator",
- "version": "4.1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "5ec07c7cd977ca9fb1c6006f8367ad127604aebb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/5ec07c7cd977ca9fb1c6006f8367ad127604aebb",
- "reference": "5ec07c7cd977ca9fb1c6006f8367ad127604aebb",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
- "keywords": [
- "filesystem",
- "iterator"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:50:28+00:00"
- },
- {
- "name": "phpunit/php-invoker",
- "version": "4.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "5fe659f0b20cfb7db5359b01021f22707d8657b6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5fe659f0b20cfb7db5359b01021f22707d8657b6",
- "reference": "5fe659f0b20cfb7db5359b01021f22707d8657b6",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "ext-pcntl": "*",
- "phpunit/phpunit": "^10.0"
- },
- "suggest": {
- "ext-pcntl": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Invoke callables with a timeout",
- "homepage": "https://github.com/sebastianbergmann/php-invoker/",
- "keywords": [
- "process"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
- "security": "https://github.com/sebastianbergmann/php-invoker/security/policy",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:51:23+00:00"
- },
- {
- "name": "phpunit/php-text-template",
- "version": "3.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "5199f4e0818bbcb9827ae59c0d456e5759d80f7b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5199f4e0818bbcb9827ae59c0d456e5759d80f7b",
- "reference": "5199f4e0818bbcb9827ae59c0d456e5759d80f7b",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
- "keywords": [
- "template"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
- "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:51:55+00:00"
- },
- {
- "name": "phpunit/php-timer",
- "version": "6.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "5030e89e3954823142bef84906eb83eb0f7a49d0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5030e89e3954823142bef84906eb83eb0f7a49d0",
- "reference": "5030e89e3954823142bef84906eb83eb0f7a49d0",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "6.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
- "keywords": [
- "timer"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "security": "https://github.com/sebastianbergmann/php-timer/security/policy",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:52:24+00:00"
- },
- {
- "name": "phpunit/phpunit",
- "version": "10.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "0d9401b7e8245d71079e249e3cb868e9d2337887"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0d9401b7e8245d71079e249e3cb868e9d2337887",
- "reference": "0d9401b7e8245d71079e249e3cb868e9d2337887",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "ext-mbstring": "*",
- "ext-xml": "*",
- "ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.10.1",
- "phar-io/manifest": "^2.0.3",
- "phar-io/version": "^3.0.2",
- "php": ">=8.1",
- "phpunit/php-code-coverage": "^10.1.1",
- "phpunit/php-file-iterator": "^4.0",
- "phpunit/php-invoker": "^4.0",
- "phpunit/php-text-template": "^3.0",
- "phpunit/php-timer": "^6.0",
- "sebastian/cli-parser": "^2.0",
- "sebastian/code-unit": "^2.0",
- "sebastian/comparator": "^5.0",
- "sebastian/diff": "^5.0",
- "sebastian/environment": "^6.0",
- "sebastian/exporter": "^5.0",
- "sebastian/global-state": "^6.0",
- "sebastian/object-enumerator": "^5.0",
- "sebastian/recursion-context": "^5.0",
- "sebastian/type": "^4.0",
- "sebastian/version": "^4.0"
- },
- "suggest": {
- "ext-soap": "To be able to generate mocks based on WSDL files"
- },
- "bin": [
- "phpunit"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "10.1-dev"
- }
- },
- "autoload": {
- "files": [
- "src/Framework/Assert/Functions.php"
- ],
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
- "keywords": [
- "phpunit",
- "testing",
- "xunit"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/10.1.1"
- },
- "funding": [
- {
- "url": "https://phpunit.de/sponsors.html",
- "type": "custom"
- },
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
- "type": "tidelift"
- }
- ],
- "time": "2023-04-17T12:17:05+00:00"
- },
- {
- "name": "psr/cache",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/cache.git",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for caching libraries",
- "keywords": [
- "cache",
- "psr",
- "psr-6"
- ],
- "support": {
- "source": "https://github.com/php-fig/cache/tree/master"
- },
- "time": "2016-08-06T20:24:11+00:00"
- },
- {
- "name": "psr/container",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
- "shasum": ""
- },
- "require": {
- "php": ">=7.4.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Psr\\Container\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
- "keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
- ],
- "support": {
- "issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.2"
- },
- "time": "2021-11-05T16:50:12+00:00"
- },
- {
- "name": "psr/event-dispatcher",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/event-dispatcher.git",
- "reference": "bbd9eacc080d33861e5b5c75b3b8c4d7e6d01874"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/bbd9eacc080d33861e5b5c75b3b8c4d7e6d01874",
- "reference": "bbd9eacc080d33861e5b5c75b3b8c4d7e6d01874",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.0"
- },
- "suggest": {
- "fig/event-dispatcher-util": "Provides some useful PSR-14 utilities"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\EventDispatcher\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Standard interfaces for event handling.",
- "keywords": [
- "events",
- "psr",
- "psr-14"
- ],
- "support": {
- "source": "https://github.com/php-fig/event-dispatcher"
- },
- "time": "2024-03-17T21:29:03+00:00"
- },
- {
- "name": "psr/http-message",
- "version": "1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
- "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP messages",
- "homepage": "https://github.com/php-fig/http-message",
- "keywords": [
- "http",
- "http-message",
- "psr",
- "psr-7",
- "request",
- "response"
- ],
- "support": {
- "source": "https://github.com/php-fig/http-message/tree/1.1"
- },
- "time": "2023-04-04T09:50:52+00:00"
- },
- {
- "name": "psr/log",
- "version": "1.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Log\\": "Psr/Log/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
- "keywords": [
- "log",
- "psr",
- "psr-3"
- ],
- "support": {
- "source": "https://github.com/php-fig/log/tree/1.1.4"
- },
- "time": "2021-05-03T11:20:27+00:00"
- },
- {
- "name": "scrivo/highlight.php",
- "version": "9.18.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/scrivo/highlight.php.git",
- "reference": "f41f88f623e9c68c2030349d652722f6e6f8df2d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/scrivo/highlight.php/zipball/f41f88f623e9c68c2030349d652722f6e6f8df2d",
- "reference": "f41f88f623e9c68c2030349d652722f6e6f8df2d",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "php": ">=5.4"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8|^5.7",
- "sabberworm/php-css-parser": "^8.3",
- "symfony/finder": "^2.8|^3.4|^5.4",
- "symfony/var-dumper": "^2.8|^3.4|^5.4"
- },
- "suggest": {
- "ext-mbstring": "Allows highlighting code with unicode characters and supports language with unicode keywords"
- },
- "type": "library",
- "autoload": {
- "files": [
- "HighlightUtilities/functions.php"
- ],
- "psr-0": {
- "Highlight\\": "",
- "HighlightUtilities\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Geert Bergman",
- "homepage": "http://www.scrivo.org/",
- "role": "Project Author"
- },
- {
- "name": "Vladimir Jimenez",
- "homepage": "https://allejo.io",
- "role": "Maintainer"
- },
- {
- "name": "Martin Folkers",
- "homepage": "https://twobrain.io",
- "role": "Contributor"
- }
- ],
- "description": "Server side syntax highlighter that supports 185 languages. It's a PHP port of highlight.js",
- "keywords": [
- "code",
- "highlight",
- "highlight.js",
- "highlight.php",
- "syntax"
- ],
- "support": {
- "issues": "https://github.com/scrivo/highlight.php/issues",
- "source": "https://github.com/scrivo/highlight.php"
- },
- "funding": [
- {
- "url": "https://github.com/allejo",
- "type": "github"
- }
- ],
- "time": "2023-05-15T03:45:40+00:00"
- },
- {
- "name": "sebastian/cli-parser",
- "version": "2.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "3a3cd121ce7cd032f94fb8f881ba3b5f145e3f40"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/3a3cd121ce7cd032f94fb8f881ba3b5f145e3f40",
- "reference": "3a3cd121ce7cd032f94fb8f881ba3b5f145e3f40",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library for parsing CLI options",
- "homepage": "https://github.com/sebastianbergmann/cli-parser",
- "support": {
- "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-04-04T08:53:00+00:00"
- },
- {
- "name": "sebastian/code-unit",
- "version": "2.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "ac62e7f08e5b0b526386644911103bb3422c0015"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/ac62e7f08e5b0b526386644911103bb3422c0015",
- "reference": "ac62e7f08e5b0b526386644911103bb3422c0015",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Collection of value objects that represent the PHP code units",
- "homepage": "https://github.com/sebastianbergmann/code-unit",
- "support": {
- "issues": "https://github.com/sebastianbergmann/code-unit/issues",
- "security": "https://github.com/sebastianbergmann/code-unit/security/policy",
- "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-04-03T07:55:48+00:00"
- },
- {
- "name": "sebastian/code-unit-reverse-lookup",
- "version": "3.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "bdd34bf2919e400808fc747b20f59e5732f3646b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/bdd34bf2919e400808fc747b20f59e5732f3646b",
- "reference": "bdd34bf2919e400808fc747b20f59e5732f3646b",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Looks up which function or method a line of code belongs to",
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
- "support": {
- "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:41:34+00:00"
- },
- {
- "name": "sebastian/comparator",
- "version": "5.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "44e614470e153123773072a489334c4d6b55e2fa"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/44e614470e153123773072a489334c4d6b55e2fa",
- "reference": "44e614470e153123773072a489334c4d6b55e2fa",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-mbstring": "*",
- "php": ">=8.1",
- "sebastian/diff": "^5.0",
- "sebastian/exporter": "^5.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "5.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- }
- ],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "https://github.com/sebastianbergmann/comparator",
- "keywords": [
- "comparator",
- "compare",
- "equality"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/comparator/issues",
- "security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/5.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:42:24+00:00"
- },
- {
- "name": "sebastian/complexity",
- "version": "3.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "68cfb347a44871f01e33ab0ef8215966432f6957"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957",
- "reference": "68cfb347a44871f01e33ab0ef8215966432f6957",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "^4.10",
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library for calculating the complexity of PHP code units",
- "homepage": "https://github.com/sebastianbergmann/complexity",
- "support": {
- "issues": "https://github.com/sebastianbergmann/complexity/issues",
- "security": "https://github.com/sebastianbergmann/complexity/security/policy",
- "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2023-09-28T11:50:59+00:00"
- },
- {
- "name": "sebastian/diff",
- "version": "5.1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "c62945b35878561a1847d34c1ee069858ae5eaae"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c62945b35878561a1847d34c1ee069858ae5eaae",
- "reference": "c62945b35878561a1847d34c1ee069858ae5eaae",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0",
- "symfony/process": "^6.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "5.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- }
- ],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
- "keywords": [
- "diff",
- "udiff",
- "unidiff",
- "unified diff"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/diff/issues",
- "security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/5.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:44:07+00:00"
- },
- {
- "name": "sebastian/environment",
- "version": "6.1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "8074dbcd93529b357029f5cc5058fd3e43666984"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984",
- "reference": "8074dbcd93529b357029f5cc5058fd3e43666984",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "suggest": {
- "ext-posix": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "6.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "https://github.com/sebastianbergmann/environment",
- "keywords": [
- "Xdebug",
- "environment",
- "hhvm"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/environment/issues",
- "security": "https://github.com/sebastianbergmann/environment/security/policy",
- "source": "https://github.com/sebastianbergmann/environment/tree/6.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-23T08:47:14+00:00"
- },
- {
- "name": "sebastian/exporter",
- "version": "5.1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "c409c34cd83004034fc5a5486691e08f6e83eb65"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c409c34cd83004034fc5a5486691e08f6e83eb65",
- "reference": "c409c34cd83004034fc5a5486691e08f6e83eb65",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*",
- "php": ">=8.1",
- "sebastian/recursion-context": "^5.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "5.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "https://www.github.com/sebastianbergmann/exporter",
- "keywords": [
- "export",
- "exporter"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/exporter/issues",
- "security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/5.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-04-04T06:29:29+00:00"
- },
- {
- "name": "sebastian/global-state",
- "version": "6.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "449d3e721e00daaad2881d3eb53592970d933370"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/449d3e721e00daaad2881d3eb53592970d933370",
- "reference": "449d3e721e00daaad2881d3eb53592970d933370",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "sebastian/object-reflector": "^3.0",
- "sebastian/recursion-context": "^5.0"
- },
- "require-dev": {
- "ext-dom": "*",
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "6.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Snapshotting of global state",
- "homepage": "https://www.github.com/sebastianbergmann/global-state",
- "keywords": [
- "global state"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/global-state/issues",
- "security": "https://github.com/sebastianbergmann/global-state/security/policy",
- "source": "https://github.com/sebastianbergmann/global-state/tree/6.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:46:09+00:00"
- },
- {
- "name": "sebastian/lines-of-code",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/649e40d279e243d985aa8fb6e74dd5bb28dc185d",
- "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "^4.10",
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library for counting the lines of code in PHP source code",
- "homepage": "https://github.com/sebastianbergmann/lines-of-code",
- "support": {
- "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
- "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2023-08-31T09:25:50+00:00"
- },
- {
- "name": "sebastian/object-enumerator",
- "version": "5.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "41eaf664fcfa48cc2e4b2924f13769e6cb20a2cf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/41eaf664fcfa48cc2e4b2924f13769e6cb20a2cf",
- "reference": "41eaf664fcfa48cc2e4b2924f13769e6cb20a2cf",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "sebastian/object-reflector": "^3.0",
- "sebastian/recursion-context": "^5.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "5.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
- "support": {
- "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:47:30+00:00"
- },
- {
- "name": "sebastian/object-reflector",
- "version": "3.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "928bc13bd615206af37c8c2e92401cfe3d53f15c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/928bc13bd615206af37c8c2e92401cfe3d53f15c",
- "reference": "928bc13bd615206af37c8c2e92401cfe3d53f15c",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Allows reflection of object attributes, including inherited and non-public ones",
- "homepage": "https://github.com/sebastianbergmann/object-reflector/",
- "support": {
- "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "security": "https://github.com/sebastianbergmann/object-reflector/security/policy",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:48:40+00:00"
- },
- {
- "name": "sebastian/recursion-context",
- "version": "5.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "4facd2a6ce800aae87e6f5a0f73842585ca3efd6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/4facd2a6ce800aae87e6f5a0f73842585ca3efd6",
- "reference": "4facd2a6ce800aae87e6f5a0f73842585ca3efd6",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "5.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- }
- ],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "https://github.com/sebastianbergmann/recursion-context",
- "support": {
- "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "security": "https://github.com/sebastianbergmann/recursion-context/security/policy",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-29T09:41:15+00:00"
- },
- {
- "name": "sebastian/type",
- "version": "4.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/type.git",
- "reference": "a820c337b170875fe151b386a28862a95fe3d7ea"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/a820c337b170875fe151b386a28862a95fe3d7ea",
- "reference": "a820c337b170875fe151b386a28862a95fe3d7ea",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^10.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Collection of value objects that represent the types of the PHP type system",
- "homepage": "https://github.com/sebastianbergmann/type",
- "support": {
- "issues": "https://github.com/sebastianbergmann/type/issues",
- "security": "https://github.com/sebastianbergmann/type/security/policy",
- "source": "https://github.com/sebastianbergmann/type/tree/4.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:53:45+00:00"
- },
- {
- "name": "sebastian/version",
- "version": "4.0.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "cc835c21ef77e6200d6486e0ba2b794e95a27524"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/cc835c21ef77e6200d6486e0ba2b794e95a27524",
- "reference": "cc835c21ef77e6200d6486e0ba2b794e95a27524",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
- "support": {
- "issues": "https://github.com/sebastianbergmann/version/issues",
- "security": "https://github.com/sebastianbergmann/version/security/policy",
- "source": "https://github.com/sebastianbergmann/version/tree/4.0"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-22T13:54:54+00:00"
- },
- {
- "name": "squizlabs/php_codesniffer",
- "version": "3.7.2",
- "source": {
- "type": "git",
- "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879",
- "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879",
- "shasum": ""
- },
- "require": {
- "ext-simplexml": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
- },
- "bin": [
- "bin/phpcs",
- "bin/phpcbf"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Greg Sherwood",
- "role": "lead"
- }
- ],
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
- "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
- "keywords": [
- "phpcs",
- "standards",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
- "source": "https://github.com/squizlabs/PHP_CodeSniffer",
- "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
- },
- "funding": [
- {
- "url": "https://github.com/PHPCSStandards",
- "type": "github"
- },
- {
- "url": "https://github.com/jrfnl",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/php_codesniffer",
- "type": "open_collective"
- }
- ],
- "time": "2023-02-22T23:07:41+00:00"
- },
- {
- "name": "symfony/cache",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/cache.git",
- "reference": "89005bc368ca02ed0433c592e4d27670d0844a66"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/89005bc368ca02ed0433c592e4d27670d0844a66",
- "reference": "89005bc368ca02ed0433c592e4d27670d0844a66",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/cache": "^1.0|^2.0",
- "psr/log": "^1.1|^2|^3",
- "symfony/cache-contracts": "^1.1.7|^2",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/var-exporter": "^4.4|^5.0|^6.0"
- },
- "conflict": {
- "doctrine/dbal": "<2.13.1",
- "symfony/dependency-injection": "<4.4",
- "symfony/http-kernel": "<4.4",
- "symfony/var-dumper": "<4.4"
- },
- "provide": {
- "psr/cache-implementation": "1.0|2.0",
- "psr/simple-cache-implementation": "1.0|2.0",
- "symfony/cache-implementation": "1.0|2.0"
- },
- "require-dev": {
- "cache/integration-tests": "dev-master",
- "doctrine/cache": "^1.6|^2.0",
- "doctrine/dbal": "^2.13.1|^3|^4",
- "predis/predis": "^1.1|^2.0",
- "psr/simple-cache": "^1.0|^2.0",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/http-kernel": "^4.4|^5.0|^6.0",
- "symfony/messenger": "^4.4|^5.0|^6.0",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Cache\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
- "homepage": "https://symfony.com",
- "keywords": [
- "caching",
- "psr6"
- ],
- "support": {
- "source": "https://github.com/symfony/cache/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/config",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/config.git",
- "reference": "d4e1db78421163b98dd9971d247fd0df4a57ee5e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/d4e1db78421163b98dd9971d247fd0df4a57ee5e",
- "reference": "d4e1db78421163b98dd9971d247fd0df4a57ee5e",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-php80": "^1.16",
- "symfony/polyfill-php81": "^1.22"
- },
- "conflict": {
- "symfony/finder": "<4.4"
- },
- "require-dev": {
- "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/messenger": "^4.4|^5.0|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/yaml": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/yaml": "To use the yaml reference dumper"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Config\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/config/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/console",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "aa73115c0c24220b523625bfcfa655d7d73662dd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/aa73115c0c24220b523625bfcfa655d7d73662dd",
- "reference": "aa73115c0c24220b523625bfcfa655d7d73662dd",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/string": "^5.1|^6.0"
- },
- "conflict": {
- "psr/log": ">=3",
- "symfony/dependency-injection": "<4.4",
- "symfony/dotenv": "<5.1",
- "symfony/event-dispatcher": "<4.4",
- "symfony/lock": "<4.4",
- "symfony/process": "<4.4"
- },
- "provide": {
- "psr/log-implementation": "1.0|2.0"
- },
- "require-dev": {
- "psr/log": "^1|^2",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
- "symfony/lock": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Console\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Eases the creation of beautiful and testable command line interfaces",
- "homepage": "https://symfony.com",
- "keywords": [
- "cli",
- "command-line",
- "console",
- "terminal"
- ],
- "support": {
- "source": "https://github.com/symfony/console/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/contracts",
- "version": "2.5.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/contracts.git",
- "reference": "682747298ebb9c8d95469acc2a4e3083003e50e1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/contracts/zipball/682747298ebb9c8d95469acc2a4e3083003e50e1",
- "reference": "682747298ebb9c8d95469acc2a4e3083003e50e1",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/cache": "^1.0|^2.0|^3.0",
- "psr/container": "^1.1",
- "psr/event-dispatcher": "^1.0"
- },
- "conflict": {
- "ext-psr": "<1.1|>=2"
- },
- "replace": {
- "symfony/cache-contracts": "self.version",
- "symfony/deprecation-contracts": "self.version",
- "symfony/event-dispatcher-contracts": "self.version",
- "symfony/http-client-contracts": "self.version",
- "symfony/service-contracts": "self.version",
- "symfony/translation-contracts": "self.version"
- },
- "require-dev": {
- "symfony/polyfill-intl-idn": "^1.10"
- },
- "suggest": {
- "symfony/cache-implementation": "",
- "symfony/event-dispatcher-implementation": "",
- "symfony/http-client-implementation": "",
- "symfony/service-implementation": "",
- "symfony/translation-implementation": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- }
- },
- "autoload": {
- "files": [
- "Deprecation/function.php"
- ],
- "psr-4": {
- "Symfony\\Contracts\\": ""
- },
- "exclude-from-classmap": [
- "**/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "A set of abstractions extracted out of the Symfony components",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/contracts/tree/2.5"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/dependency-injection",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/dependency-injection.git",
- "reference": "408b33326496030c201b8051b003e9e8cdb2efc9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/408b33326496030c201b8051b003e9e8cdb2efc9",
- "reference": "408b33326496030c201b8051b003e9e8cdb2efc9",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1.1",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16",
- "symfony/polyfill-php81": "^1.22",
- "symfony/service-contracts": "^1.1.6|^2"
- },
- "conflict": {
- "ext-psr": "<1.1|>=2",
- "symfony/config": "<5.3",
- "symfony/finder": "<4.4",
- "symfony/proxy-manager-bridge": "<4.4",
- "symfony/yaml": "<4.4.26"
- },
- "provide": {
- "psr/container-implementation": "1.0",
- "symfony/service-implementation": "1.0|2.0"
- },
- "require-dev": {
- "symfony/config": "^5.3|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/yaml": "^4.4.26|^5.0|^6.0"
- },
- "suggest": {
- "symfony/config": "",
- "symfony/expression-language": "For using expressions in service container configuration",
- "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
- "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
- "symfony/yaml": ""
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\DependencyInjection\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Allows you to standardize and centralize the way objects are constructed in your application",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/dependency-injection/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/dom-crawler",
- "version": "5.1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/dom-crawler.git",
- "reference": "5d89ceb53ec65e1973a555072fac8ed5ecad3384"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/5d89ceb53ec65e1973a555072fac8ed5ecad3384",
- "reference": "5d89ceb53ec65e1973a555072fac8ed5ecad3384",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.15"
- },
- "conflict": {
- "masterminds/html5": "<2.6"
- },
- "require-dev": {
- "masterminds/html5": "^2.6",
- "symfony/css-selector": "^4.4|^5.0"
- },
- "suggest": {
- "symfony/css-selector": ""
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\DomCrawler\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Eases DOM navigation for HTML and XML documents",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v5.1.11"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2021-01-27T10:01:46+00:00"
- },
- {
- "name": "symfony/dotenv",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/dotenv.git",
- "reference": "3052dbf22f71e47f6ef7a5efa6aaedfe871ba35d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/dotenv/zipball/3052dbf22f71e47f6ef7a5efa6aaedfe871ba35d",
- "reference": "3052dbf22f71e47f6ef7a5efa6aaedfe871ba35d",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3"
- },
- "require-dev": {
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Dotenv\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Registers environment variables from a .env file",
- "homepage": "https://symfony.com",
- "keywords": [
- "dotenv",
- "env",
- "environment"
- ],
- "support": {
- "source": "https://github.com/symfony/dotenv/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/error-handler",
- "version": "6.3.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/error-handler.git",
- "reference": "93a8400a7eaaaf385b2d6f71e30e064baa639629"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/93a8400a7eaaaf385b2d6f71e30e064baa639629",
- "reference": "93a8400a7eaaaf385b2d6f71e30e064baa639629",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^5.4|^6.0"
- },
- "conflict": {
- "symfony/deprecation-contracts": "<2.5"
- },
- "require-dev": {
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/serializer": "^5.4|^6.0"
- },
- "bin": [
- "Resources/bin/patch-type-declarations"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\ErrorHandler\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides tools to manage errors and ease debugging PHP code",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/error-handler/tree/6.3"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-01-23T14:35:58+00:00"
- },
- {
- "name": "symfony/event-dispatcher",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a54e2a8a114065f31020d6a89ede83e34c3b27a4",
- "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/event-dispatcher-contracts": "^2|^3",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "symfony/dependency-injection": "<4.4"
- },
- "provide": {
- "psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0"
- },
- "require-dev": {
- "psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^4.4|^5.0|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\EventDispatcher\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/expression-language",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/expression-language.git",
- "reference": "77670d1e74086dc8d941a18f97097bbf988f2840"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/expression-language/zipball/77670d1e74086dc8d941a18f97097bbf988f2840",
- "reference": "77670d1e74086dc8d941a18f97097bbf988f2840",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/cache": "^4.4|^5.0|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\ExpressionLanguage\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides an engine that can compile and evaluate expressions",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/expression-language/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/filesystem",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/filesystem.git",
- "reference": "26dd9912df6940810ea00f8f53ad48d6a3424995"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/26dd9912df6940810ea00f8f53ad48d6a3424995",
- "reference": "26dd9912df6940810ea00f8f53ad48d6a3424995",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.8",
- "symfony/polyfill-php80": "^1.16"
- },
- "require-dev": {
- "symfony/process": "^5.4|^6.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Filesystem\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides basic utilities for the filesystem",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/filesystem/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/finder",
- "version": "5.1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/finder.git",
- "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/196f45723b5e618bf0e23b97e96d11652696ea9e",
- "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Finder\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Finds files and directories via an intuitive fluent interface",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/finder/tree/5.1"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2021-01-27T10:01:46+00:00"
- },
- {
- "name": "symfony/flex",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/flex.git",
- "reference": "33ce7c1c0fe78f8c3a106f193b6c0a7d82384462"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/flex/zipball/33ce7c1c0fe78f8c3a106f193b6c0a7d82384462",
- "reference": "33ce7c1c0fe78f8c3a106f193b6c0a7d82384462",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.0|^2.0",
- "php": ">=7.1"
- },
- "require-dev": {
- "composer/composer": "^1.0.2|^2.0",
- "symfony/dotenv": "^4.4|^5.0|^6.0",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "Symfony\\Flex\\Flex"
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Flex\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien.potencier@gmail.com"
- }
- ],
- "description": "Composer plugin for Symfony",
- "support": {
- "issues": "https://github.com/symfony/flex/issues",
- "source": "https://github.com/symfony/flex/tree/1.x"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-04-27T10:20:37+00:00"
- },
- {
- "name": "symfony/framework-bundle",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/framework-bundle.git",
- "reference": "18b84194424511fe541fc7962553ae423e4553c7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/18b84194424511fe541fc7962553ae423e4553c7",
- "reference": "18b84194424511fe541fc7962553ae423e4553c7",
- "shasum": ""
- },
- "require": {
- "ext-xml": "*",
- "php": ">=7.2.5",
- "symfony/cache": "^5.2|^6.0",
- "symfony/config": "^5.3|^6.0",
- "symfony/dependency-injection": "^5.4.5|^6.0.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/error-handler": "^4.4.1|^5.0.1|^6.0",
- "symfony/event-dispatcher": "^5.1|^6.0",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^5.4.24|^6.2.11",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/polyfill-php81": "^1.22",
- "symfony/routing": "^5.3|^6.0"
- },
- "conflict": {
- "doctrine/annotations": "<1.13.1",
- "doctrine/cache": "<1.11",
- "doctrine/persistence": "<1.3",
- "phpdocumentor/reflection-docblock": "<3.2.2",
- "phpdocumentor/type-resolver": "<1.4.0",
- "symfony/asset": "<5.3",
- "symfony/console": "<5.2.5|>=7.0",
- "symfony/dom-crawler": "<4.4",
- "symfony/dotenv": "<5.1",
- "symfony/form": "<5.2",
- "symfony/http-client": "<4.4",
- "symfony/lock": "<4.4",
- "symfony/mailer": "<5.2",
- "symfony/messenger": "<5.4",
- "symfony/mime": "<4.4",
- "symfony/property-access": "<5.3",
- "symfony/property-info": "<4.4",
- "symfony/security-csrf": "<5.3",
- "symfony/serializer": "<5.2",
- "symfony/service-contracts": ">=3.0",
- "symfony/stopwatch": "<4.4",
- "symfony/translation": "<5.3",
- "symfony/twig-bridge": "<4.4",
- "symfony/twig-bundle": "<4.4",
- "symfony/validator": "<5.3.11",
- "symfony/web-profiler-bundle": "<4.4",
- "symfony/workflow": "<5.2"
- },
- "require-dev": {
- "doctrine/annotations": "^1.13.1|^2",
- "doctrine/cache": "^1.11|^2.0",
- "doctrine/persistence": "^1.3|^2|^3",
- "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/asset": "^5.3|^6.0",
- "symfony/browser-kit": "^5.4|^6.0",
- "symfony/console": "^5.4.9|^6.0.9",
- "symfony/css-selector": "^4.4|^5.0|^6.0",
- "symfony/dom-crawler": "^4.4.30|^5.3.7|^6.0",
- "symfony/dotenv": "^5.1|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/form": "^5.2|^6.0",
- "symfony/http-client": "^4.4|^5.0|^6.0",
- "symfony/lock": "^4.4|^5.0|^6.0",
- "symfony/mailer": "^5.2|^6.0",
- "symfony/messenger": "^5.4|^6.0",
- "symfony/mime": "^4.4|^5.0|^6.0",
- "symfony/notifier": "^5.4|^6.0",
- "symfony/polyfill-intl-icu": "~1.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/property-info": "^4.4|^5.0|^6.0",
- "symfony/rate-limiter": "^5.2|^6.0",
- "symfony/security-bundle": "^5.4|^6.0",
- "symfony/serializer": "^5.4|^6.0",
- "symfony/stopwatch": "^4.4|^5.0|^6.0",
- "symfony/string": "^5.0|^6.0",
- "symfony/translation": "^5.3|^6.0",
- "symfony/twig-bundle": "^4.4|^5.0|^6.0",
- "symfony/validator": "^5.3.11|^6.0",
- "symfony/web-link": "^4.4|^5.0|^6.0",
- "symfony/workflow": "^5.2|^6.0",
- "symfony/yaml": "^4.4|^5.0|^6.0",
- "twig/twig": "^2.10|^3.0.4"
- },
- "suggest": {
- "ext-apcu": "For best performance of the system caches",
- "symfony/console": "For using the console commands",
- "symfony/form": "For using forms",
- "symfony/property-info": "For using the property_info service",
- "symfony/serializer": "For using the serializer service",
- "symfony/validator": "For using validation",
- "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering",
- "symfony/yaml": "For using the debug:config and lint:yaml commands"
- },
- "type": "symfony-bundle",
- "autoload": {
- "psr-4": {
- "Symfony\\Bundle\\FrameworkBundle\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/framework-bundle/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-06-14T09:52:52+00:00"
- },
- {
- "name": "symfony/http-foundation",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-foundation.git",
- "reference": "cf4893ca4eca3fac4ae06da1590afdbbb4217847"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cf4893ca4eca3fac4ae06da1590afdbbb4217847",
- "reference": "cf4893ca4eca3fac4ae06da1590afdbbb4217847",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php80": "^1.16"
- },
- "require-dev": {
- "predis/predis": "^1.0|^2.0",
- "symfony/cache": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
- "symfony/mime": "^4.4|^5.0|^6.0",
- "symfony/rate-limiter": "^5.2|^6.0"
- },
- "suggest": {
- "symfony/mime": "To use the file extension guesser"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\HttpFoundation\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Defines an object-oriented layer for the HTTP specification",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/http-foundation/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/http-kernel",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-kernel.git",
- "reference": "ebb6f7e4ec35dbbab8429e3af254ff6bababb2fc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ebb6f7e4ec35dbbab8429e3af254ff6bababb2fc",
- "reference": "ebb6f7e4ec35dbbab8429e3af254ff6bababb2fc",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/log": "^1|^2",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^5.0|^6.0",
- "symfony/http-foundation": "^5.4.21|^6.2.7",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "symfony/browser-kit": "<5.4",
- "symfony/cache": "<5.0",
- "symfony/config": "<5.0",
- "symfony/console": "<4.4",
- "symfony/dependency-injection": "<5.3",
- "symfony/doctrine-bridge": "<5.0",
- "symfony/form": "<5.0",
- "symfony/http-client": "<5.0",
- "symfony/mailer": "<5.0",
- "symfony/messenger": "<5.0",
- "symfony/translation": "<5.0",
- "symfony/twig-bridge": "<5.0",
- "symfony/validator": "<5.0",
- "twig/twig": "<2.13"
- },
- "provide": {
- "psr/log-implementation": "1.0|2.0"
- },
- "require-dev": {
- "psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^5.4|^6.0",
- "symfony/config": "^5.0|^6.0",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/css-selector": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^5.3|^6.0",
- "symfony/dom-crawler": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/http-client-contracts": "^1.1|^2|^3",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/routing": "^4.4|^5.0|^6.0",
- "symfony/stopwatch": "^4.4|^5.0|^6.0",
- "symfony/translation": "^4.4|^5.0|^6.0",
- "symfony/translation-contracts": "^1.1|^2|^3",
- "symfony/var-dumper": "^4.4.31|^5.4",
- "twig/twig": "^2.13|^3.0.4"
- },
- "suggest": {
- "symfony/browser-kit": "",
- "symfony/config": "",
- "symfony/console": "",
- "symfony/dependency-injection": ""
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\HttpKernel\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides a structured process for converting a Request into a Response",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/http-kernel/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-06-17T05:58:45+00:00"
- },
- {
- "name": "symfony/monolog-bridge",
- "version": "6.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/monolog-bridge.git",
- "reference": "0fbee64913b1c595e7650a1919ba3edba8d49ea7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/0fbee64913b1c595e7650a1919ba3edba8d49ea7",
- "reference": "0fbee64913b1c595e7650a1919ba3edba8d49ea7",
- "shasum": ""
- },
- "require": {
- "monolog/monolog": "^1.25.1|^2|^3",
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/service-contracts": "^2.5|^3"
- },
- "conflict": {
- "symfony/console": "<5.4",
- "symfony/http-foundation": "<5.4",
- "symfony/security-core": "<5.4"
- },
- "require-dev": {
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/mailer": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^5.4|^6.0|^7.0",
- "symfony/mime": "^5.4|^6.0|^7.0",
- "symfony/security-core": "^5.4|^6.0|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
- },
- "type": "symfony-bridge",
- "autoload": {
- "psr-4": {
- "Symfony\\Bridge\\Monolog\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides integration for Monolog with various Symfony components",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/monolog-bridge/tree/6.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:49:08+00:00"
- },
- {
- "name": "symfony/monolog-bundle",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/monolog-bundle.git",
- "reference": "06ddd76fd24dcf325a61e826b5c799e4b929422e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/06ddd76fd24dcf325a61e826b5c799e4b929422e",
- "reference": "06ddd76fd24dcf325a61e826b5c799e4b929422e",
- "shasum": ""
- },
- "require": {
- "monolog/monolog": "^1.25.1 || ^2.0 || ^3.0",
- "php": ">=7.2.5",
- "symfony/config": "^5.4 || ^6.0 || ^7.0",
- "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0",
- "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0",
- "symfony/monolog-bridge": "^5.4 || ^6.0 || ^7.0"
- },
- "require-dev": {
- "symfony/console": "^5.4 || ^6.0 || ^7.0",
- "symfony/phpunit-bridge": "^6.3 || ^7.0",
- "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
- },
- "default-branch": true,
- "type": "symfony-bundle",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Bundle\\MonologBundle\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony MonologBundle",
- "homepage": "https://symfony.com",
- "keywords": [
- "log",
- "logging"
- ],
- "support": {
- "issues": "https://github.com/symfony/monolog-bundle/issues",
- "source": "https://github.com/symfony/monolog-bundle/tree/master"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2023-11-09T09:49:27+00:00"
- },
- {
- "name": "symfony/polyfill-ctype",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "0424dff1c58f028c451efff2045f5d92410bd540"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
- "reference": "0424dff1c58f028c451efff2045f5d92410bd540",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-ctype": "*"
- },
- "suggest": {
- "ext-ctype": "For best performance"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T15:07:36+00:00"
- },
- {
- "name": "symfony/polyfill-intl-grapheme",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a",
- "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for intl's grapheme_* functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "grapheme",
- "intl",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T15:07:36+00:00"
- },
- {
- "name": "symfony/polyfill-intl-normalizer",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
- "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for intl's Normalizer class and related functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "intl",
- "normalizer",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T15:07:36+00:00"
- },
- {
- "name": "symfony/polyfill-mbstring",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "8740a072b86292957feb42703edde77fcfca84fb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8740a072b86292957feb42703edde77fcfca84fb",
- "reference": "8740a072b86292957feb42703edde77fcfca84fb",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-mbstring": "*"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for the Mbstring extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "mbstring",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/1.x"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-06-20T08:18:00+00:00"
- },
- {
- "name": "symfony/polyfill-php73",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1",
- "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php73\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T15:07:36+00:00"
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
- "reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T15:07:36+00:00"
- },
- {
- "name": "symfony/polyfill-php81",
- "version": "1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af",
- "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "default-branch": true,
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php81\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-06-19T12:30:46+00:00"
- },
- {
- "name": "symfony/process",
- "version": "5.1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "d279ae7f2d6e0e4e45f66de7d76006246ae00e4d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/d279ae7f2d6e0e4e45f66de7d76006246ae00e4d",
- "reference": "d279ae7f2d6e0e4e45f66de7d76006246ae00e4d",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.15"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Process\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Executes commands in sub-processes",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/process/tree/v5.1.11"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2021-01-27T10:01:46+00:00"
- },
- {
- "name": "symfony/proxy-manager-bridge",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/proxy-manager-bridge.git",
- "reference": "2ebc25e0174a6a244f7edada5a498f9728dc0d29"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/2ebc25e0174a6a244f7edada5a498f9728dc0d29",
- "reference": "2ebc25e0174a6a244f7edada5a498f9728dc0d29",
- "shasum": ""
- },
- "require": {
- "friendsofphp/proxy-manager-lts": "^1.0.2",
- "php": ">=7.2.5",
- "symfony/dependency-injection": "^5.0|^6.0",
- "symfony/polyfill-php80": "^1.16"
- },
- "require-dev": {
- "symfony/config": "^4.4|^5.0|^6.0"
- },
- "type": "symfony-bridge",
- "autoload": {
- "psr-4": {
- "Symfony\\Bridge\\ProxyManager\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides integration for ProxyManager with various Symfony components",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/proxy-manager-bridge/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/routing",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/routing.git",
- "reference": "6df1dd8b306649303267a760699cf04cf39b1f7b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/6df1dd8b306649303267a760699cf04cf39b1f7b",
- "reference": "6df1dd8b306649303267a760699cf04cf39b1f7b",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "doctrine/annotations": "<1.12",
- "symfony/config": "<5.3",
- "symfony/dependency-injection": "<4.4",
- "symfony/yaml": "<4.4"
- },
- "require-dev": {
- "doctrine/annotations": "^1.12|^2",
- "psr/log": "^1|^2|^3",
- "symfony/config": "^5.3|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^4.4|^5.0|^6.0",
- "symfony/yaml": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/config": "For using the all-in-one router or any loader",
- "symfony/expression-language": "For using expression matching",
- "symfony/http-foundation": "For using a Symfony Request object",
- "symfony/yaml": "For using the YAML loader"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Routing\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Maps an HTTP request to a set of configuration variables",
- "homepage": "https://symfony.com",
- "keywords": [
- "router",
- "routing",
- "uri",
- "url"
- ],
- "support": {
- "source": "https://github.com/symfony/routing/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/stopwatch",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/stopwatch.git",
- "reference": "0e9daf3b7c805c747638b2cc48f1649e594f9625"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0e9daf3b7c805c747638b2cc48f1649e594f9625",
- "reference": "0e9daf3b7c805c747638b2cc48f1649e594f9625",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/service-contracts": "^1|^2|^3"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Stopwatch\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides a way to profile code",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/stopwatch/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "symfony/string",
- "version": "5.1.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/string.git",
- "reference": "83bbb92d34881744b8021452a76532b28283dbfb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/83bbb92d34881744b8021452a76532b28283dbfb",
- "reference": "83bbb92d34881744b8021452a76532b28283dbfb",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-grapheme": "~1.0",
- "symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "~1.15"
- },
- "require-dev": {
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/http-client": "^4.4|^5.0",
- "symfony/translation-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.4|^5.0"
- },
- "type": "library",
- "autoload": {
- "files": [
- "Resources/functions.php"
- ],
- "psr-4": {
- "Symfony\\Component\\String\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
- "homepage": "https://symfony.com",
- "keywords": [
- "grapheme",
- "i18n",
- "string",
- "unicode",
- "utf-8",
- "utf8"
- ],
- "support": {
- "source": "https://github.com/symfony/string/tree/5.1"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2021-01-25T14:41:58+00:00"
- },
- {
- "name": "symfony/var-dumper",
- "version": "6.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/var-dumper.git",
- "reference": "f82848117a898e1032e413ec910d30a63bc6c3bc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/f82848117a898e1032e413ec910d30a63bc6c3bc",
- "reference": "f82848117a898e1032e413ec910d30a63bc6c3bc",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/polyfill-mbstring": "~1.0"
- },
- "conflict": {
- "symfony/console": "<5.4"
- },
- "require-dev": {
- "ext-iconv": "*",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/error-handler": "^6.3|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/uid": "^5.4|^6.0|^7.0",
- "twig/twig": "^2.13|^3.0.4"
- },
- "bin": [
- "Resources/bin/var-dump-server"
- ],
- "type": "library",
- "autoload": {
- "files": [
- "Resources/functions/dump.php"
- ],
- "psr-4": {
- "Symfony\\Component\\VarDumper\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides mechanisms for walking through any arbitrary PHP variable",
- "homepage": "https://symfony.com",
- "keywords": [
- "debug",
- "dump"
- ],
- "support": {
- "source": "https://github.com/symfony/var-dumper/tree/6.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-06-22T07:55:24+00:00"
- },
- {
- "name": "symfony/var-exporter",
- "version": "6.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/var-exporter.git",
- "reference": "f9a060622e0d93777b7f8687ec4860191e16802e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f9a060622e0d93777b7f8687ec4860191e16802e",
- "reference": "f9a060622e0d93777b7f8687ec4860191e16802e",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3"
- },
- "require-dev": {
- "symfony/property-access": "^6.4|^7.0",
- "symfony/serializer": "^6.4|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\VarExporter\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Allows exporting any serializable PHP data structure to plain PHP code",
- "homepage": "https://symfony.com",
- "keywords": [
- "clone",
- "construct",
- "export",
- "hydrate",
- "instantiate",
- "lazy-loading",
- "proxy",
- "serialize"
- ],
- "support": {
- "source": "https://github.com/symfony/var-exporter/tree/6.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-06-24T15:53:56+00:00"
- },
- {
- "name": "symfony/yaml",
- "version": "5.4.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/yaml.git",
- "reference": "81cad0ceab3d61fe14fe941ff18a230ac9c80f83"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/81cad0ceab3d61fe14fe941ff18a230ac9c80f83",
- "reference": "81cad0ceab3d61fe14fe941ff18a230ac9c80f83",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "symfony/console": "<5.3"
- },
- "require-dev": {
- "symfony/console": "^5.3|^6.0"
- },
- "suggest": {
- "symfony/console": "For validating YAML files using the lint command"
- },
- "bin": [
- "Resources/bin/yaml-lint"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Yaml\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Loads and dumps YAML files",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/yaml/tree/5.4"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T14:33:22+00:00"
- },
- {
- "name": "theseer/tokenizer",
- "version": "1.2.3",
- "source": {
- "type": "git",
- "url": "https://github.com/theseer/tokenizer.git",
- "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
- "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- }
- ],
- "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
- "support": {
- "issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
- },
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2024-03-03T12:36:25+00:00"
- },
- {
- "name": "twig/twig",
- "version": "2.x-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/twigphp/Twig.git",
- "reference": "a1d84cfbc1c2f99ee4af361eb0a32dad47723b01"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/a1d84cfbc1c2f99ee4af361eb0a32dad47723b01",
- "reference": "a1d84cfbc1c2f99ee4af361eb0a32dad47723b01",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1.3",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-mbstring": "^1.3",
- "symfony/polyfill-php72": "^1.8"
- },
- "require-dev": {
- "psr/container": "^1.0",
- "symfony/phpunit-bridge": "^5.4.9|^6.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.16-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Twig_": "lib/"
- },
- "psr-4": {
- "Twig\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com",
- "homepage": "http://fabien.potencier.org",
- "role": "Lead Developer"
- },
- {
- "name": "Twig Team",
- "role": "Contributors"
- },
- {
- "name": "Armin Ronacher",
- "email": "armin.ronacher@active-4.com",
- "role": "Project Founder"
- }
- ],
- "description": "Twig, the flexible, fast, and secure template language for PHP",
- "homepage": "https://twig.symfony.com",
- "keywords": [
- "templating"
- ],
- "support": {
- "issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/2.x"
- },
- "funding": [
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/twig/twig",
- "type": "tidelift"
- }
- ],
- "time": "2024-03-19T06:42:15+00:00"
- },
- {
- "name": "webmozart/assert",
- "version": "1.11.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozarts/assert.git",
- "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
- "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
- "shasum": ""
- },
- "require": {
- "ext-ctype": "*",
- "php": "^7.2 || ^8.0"
- },
- "conflict": {
- "phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<4.6.1 || 4.6.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.13"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.10-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Assertions to validate method input/output with nice error messages.",
- "keywords": [
- "assert",
- "check",
- "validate"
- ],
- "support": {
- "issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/1.11.0"
- },
- "time": "2022-06-03T18:03:27+00:00"
- }
- ],
- "aliases": [],
- "minimum-stability": "dev",
- "stability-flags": [],
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": {
- "php": ">=8.1 <8.4",
- "ext-curl": "*",
- "ext-json": "*"
- },
- "platform-dev": [],
- "plugin-api-version": "2.0.0"
-}
diff --git a/css/base.css b/css/base.css
new file mode 100644
index 00000000..3fa8f232
--- /dev/null
+++ b/css/base.css
@@ -0,0 +1,1002 @@
+
+:root {
+ /* Typography */
+ --font-primary: 'Source Sans Pro', Helvetica, Arial, sans-serif;
+ --font-secondary: 'Source Sans Pro', Helvetica, Arial, sans-serif;
+ --line-height--primary: 1.6;
+ --letter-spacing--primary: .05rem;
+ --text-base-size: 1em;
+ --text-scale-ratio: 1.2;
+
+ --text-xxs: calc(var(--text-base-size) / var(--text-scale-ratio) / var(--text-scale-ratio) / var(--text-scale-ratio));
+ --text-xs: calc(var(--text-base-size) / var(--text-scale-ratio) / var(--text-scale-ratio));
+ --text-sm: calc(var(--text-base-size) / var(--text-scale-ratio));
+ --text-md: var(--text-base-size);
+ --text-lg: calc(var(--text-base-size) * var(--text-scale-ratio));
+ --text-xl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio));
+ --text-xxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio));
+ --text-xxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio));
+ --text-xxxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio));
+ --text-xxxxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio));
+
+ /* Colors */
+ --primary-color: hsl(96, 57%, 60%);
+ --primary-color-darken: hsl(96, 57%, 40%);
+ --primary-color-darker: hsl(96, 57%, 20%);
+ --primary-color-lighten: hsl(96, 57%, 80%);
+ --primary-color-lighter: hsl(96, 57%, 97%);
+ --dark-gray: #d1d1d1;
+ --light-gray: #f0f0f0;
+
+ --text-color: #4b3b40;
+
+ --header-height: var(--spacing-xxxxl);
+ --header-bg-color: var(--primary-color);
+ --code-background-color: #f7faf5;
+ --code-border-color: #d6e7cb;
+ --button-border-color: var(--primary-color-darken);
+ --button-color: transparent;
+ --button-color-primary: var(--primary-color);
+ --button-text-color: #555;
+ --button-text-color-primary: white;
+ --popover-background-color: rgba(255, 255, 255, 0.75);
+ --link-color-primary: var(--primary-color-darken);
+ --link-hover-color-primary: var(--primary-color-darker);
+ --form-field-border-color: var(--dark-gray);
+ --form-field-color: #fff;
+ --admonition-success-color: var(--primary-color);
+ --admonition-border-color: silver;
+ --table-separator-color: var(--primary-color-lighten);
+ --title-text-color: var(--primary-color);
+
+ --sidebar-border-color: var(--primary-color-lighten);
+
+ /* Grid */
+ --container-width: 1400px;
+
+ /* Spacing */
+ --spacing-base-size: 1rem;
+ --spacing-scale-ratio: 1.5;
+
+ --spacing-xxxs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio));
+ --spacing-xxs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio));
+ --spacing-xs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio));
+ --spacing-sm: calc(var(--spacing-base-size) / var(--spacing-scale-ratio));
+ --spacing-md: var(--spacing-base-size);
+ --spacing-lg: calc(var(--spacing-base-size) * var(--spacing-scale-ratio));
+ --spacing-xl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio));
+ --spacing-xxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio));
+ --spacing-xxxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio));
+ --spacing-xxxxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio));
+
+ --border-radius-base-size: 3px;
+}
+
+/* Base Styles
+-------------------------------------------------- */
+body {
+ color: var(--text-color);
+ font-family: var(--font-primary);
+ font-size: var(--text-md);
+ letter-spacing: var(--letter-spacing--primary);
+ line-height: var(--line-height--primary);
+}
+
+.phpdocumentor h1,
+.phpdocumentor h2,
+.phpdocumentor h3,
+.phpdocumentor h4,
+.phpdocumentor h5,
+.phpdocumentor h6 {
+ margin-bottom: var(--spacing-lg);
+ margin-top: var(--spacing-lg);
+ font-weight: 600;
+}
+
+.phpdocumentor h1 {
+ font-size: var(--text-xxxxl);
+ letter-spacing: var(--letter-spacing--primary);
+ line-height: 1.2;
+ margin-top: 0;
+}
+
+.phpdocumentor h2 {
+ font-size: var(--text-xxxl);
+ letter-spacing: var(--letter-spacing--primary);
+ line-height: 1.25;
+ margin-top: 0;
+}
+
+.phpdocumentor h3 {
+ font-size: var(--text-xxl);
+ letter-spacing: var(--letter-spacing--primary);
+ line-height: 1.3;
+}
+
+.phpdocumentor h4 {
+ font-size: var(--text-xl);
+ letter-spacing: calc(var(--letter-spacing--primary) / 2);
+ line-height: 1.35;
+ margin-bottom: var(--spacing-md);
+}
+
+.phpdocumentor h5 {
+ font-size: var(--text-lg);
+ letter-spacing: calc(var(--letter-spacing--primary) / 4);
+ line-height: 1.5;
+ margin-bottom: var(--spacing-md);
+ margin-top: var(--spacing-md);
+}
+
+.phpdocumentor h6 {
+ font-size: var(--text-md);
+ letter-spacing: 0;
+ line-height: var(--line-height--primary);
+ margin-bottom: var(--spacing-md);
+ margin-top: var(--spacing-md);
+}
+
+.phpdocumentor h1 .headerlink,
+.phpdocumentor h2 .headerlink,
+.phpdocumentor h3 .headerlink,
+.phpdocumentor h4 .headerlink,
+.phpdocumentor h5 .headerlink,
+.phpdocumentor h6 .headerlink
+{
+ transition: all .3s ease-in-out;
+ opacity: 0;
+ text-decoration: none;
+ color: silver;
+ font-size: 80%;
+}
+
+.phpdocumentor h1:hover .headerlink,
+.phpdocumentor h2:hover .headerlink,
+.phpdocumentor h3:hover .headerlink,
+.phpdocumentor h4:hover .headerlink,
+.phpdocumentor h5:hover .headerlink,
+.phpdocumentor h6:hover .headerlink
+{
+ opacity: 1;
+}
+.phpdocumentor p {
+ margin-top: 0;
+ margin-bottom: var(--spacing-md);
+}
+.phpdocumentor figure {
+ margin-bottom: var(--spacing-md);
+}
+.phpdocumentor-line {
+ border-top: 1px solid #E1E1E1;
+ border-width: 0;
+ margin-bottom: var(--spacing-xxl);
+ margin-top: var(--spacing-xxl);
+}
+.phpdocumentor-section {
+ box-sizing: border-box;
+ margin: 0 auto;
+ max-width: var(--container-width);
+ padding: 0 var(--spacing-lg);
+ position: relative;
+ width: 100%;
+}
+
+@media (min-width: 1200px) {
+ .phpdocumentor-section {
+ padding: 0;
+ width: 95%;
+ }
+}
+.phpdocumentor-column {
+ box-sizing: border-box;
+ float: left;
+ width: 100%;
+}
+
+@media (min-width: 550px) {
+ .phpdocumentor-column {
+ margin-left: 4%;
+ }
+
+ .phpdocumentor-column:first-child {
+ margin-left: 0;
+ }
+
+ .-one.phpdocumentor-column {
+ width: 4.66666666667%;
+ }
+
+ .-two.phpdocumentor-column {
+ width: 13.3333333333%;
+ }
+
+ .-three.phpdocumentor-column {
+ width: 22%;
+ }
+
+ .-four.phpdocumentor-column {
+ width: 30.6666666667%;
+ }
+
+ .-five.phpdocumentor-column {
+ width: 39.3333333333%;
+ }
+
+ .-six.phpdocumentor-column {
+ width: 48%;
+ }
+
+ .-seven.phpdocumentor-column {
+ width: 56.6666666667%;
+ }
+
+ .-eight.phpdocumentor-column {
+ width: 65.3333333333%;
+ }
+
+ .-nine.phpdocumentor-column {
+ width: 74.0%;
+ }
+
+ .-ten.phpdocumentor-column {
+ width: 82.6666666667%;
+ }
+
+ .-eleven.phpdocumentor-column {
+ width: 91.3333333333%;
+ }
+
+ .-twelve.phpdocumentor-column {
+ margin-left: 0;
+ width: 100%;
+ }
+
+ .-one-third.phpdocumentor-column {
+ width: 30.6666666667%;
+ }
+
+ .-two-thirds.phpdocumentor-column {
+ width: 65.3333333333%;
+ }
+
+ .-one-half.phpdocumentor-column {
+ width: 48%;
+ }
+
+ /* Offsets */
+ .-offset-by-one.phpdocumentor-column {
+ margin-left: 8.66666666667%;
+ }
+
+ .-offset-by-two.phpdocumentor-column {
+ margin-left: 17.3333333333%;
+ }
+
+ .-offset-by-three.phpdocumentor-column {
+ margin-left: 26%;
+ }
+
+ .-offset-by-four.phpdocumentor-column {
+ margin-left: 34.6666666667%;
+ }
+
+ .-offset-by-five.phpdocumentor-column {
+ margin-left: 43.3333333333%;
+ }
+
+ .-offset-by-six.phpdocumentor-column {
+ margin-left: 52%;
+ }
+
+ .-offset-by-seven.phpdocumentor-column {
+ margin-left: 60.6666666667%;
+ }
+
+ .-offset-by-eight.phpdocumentor-column {
+ margin-left: 69.3333333333%;
+ }
+
+ .-offset-by-nine.phpdocumentor-column {
+ margin-left: 78.0%;
+ }
+
+ .-offset-by-ten.phpdocumentor-column {
+ margin-left: 86.6666666667%;
+ }
+
+ .-offset-by-eleven.phpdocumentor-column {
+ margin-left: 95.3333333333%;
+ }
+
+ .-offset-by-one-third.phpdocumentor-column {
+ margin-left: 34.6666666667%;
+ }
+
+ .-offset-by-two-thirds.phpdocumentor-column {
+ margin-left: 69.3333333333%;
+ }
+
+ .-offset-by-one-half.phpdocumentor-column {
+ margin-left: 52%;
+ }
+}
+.phpdocumentor a {
+ color: var(--link-color-primary);
+}
+
+.phpdocumentor a:hover {
+ color: var(--link-hover-color-primary);
+}
+.phpdocumentor-button {
+ background-color: var(--button-color);
+ border: 1px solid var(--button-border-color);
+ border-radius: var(--border-radius-base-size);
+ box-sizing: border-box;
+ color: var(--button-text-color);
+ cursor: pointer;
+ display: inline-block;
+ font-size: var(--text-sm);
+ font-weight: 600;
+ height: 38px;
+ letter-spacing: .1rem;
+ line-height: 38px;
+ padding: 0 var(--spacing-xxl);
+ text-align: center;
+ text-decoration: none;
+ text-transform: uppercase;
+ white-space: nowrap;
+ margin-bottom: var(--spacing-md);
+}
+
+.phpdocumentor-button .-wide {
+ width: 100%;
+}
+
+.phpdocumentor-button:hover,
+.phpdocumentor-button:focus {
+ border-color: #888;
+ color: #333;
+ outline: 0;
+}
+
+.phpdocumentor-button.-primary {
+ background-color: var(--button-color-primary);
+ border-color: var(--button-color-primary);
+ color: var(--button-text-color-primary);
+}
+
+.phpdocumentor-button.-primary:hover,
+.phpdocumentor-button.-primary:focus {
+ background-color: var(--link-color-primary);
+ border-color: var(--link-color-primary);
+ color: var(--button-text-color-primary);
+}
+.phpdocumentor form {
+ margin-bottom: var(--spacing-md);
+}
+
+.phpdocumentor-field {
+ background-color: var(--form-field-color);
+ border: 1px solid var(--form-field-border-color);
+ border-radius: var(--border-radius-base-size);
+ box-shadow: none;
+ box-sizing: border-box;
+ height: 38px;
+ padding: var(--spacing-xxxs) var(--spacing-xxs); /* The 6px vertically centers text on FF, ignored by Webkit */
+ margin-bottom: var(--spacing-md);
+}
+
+/* Removes awkward default styles on some inputs for iOS */
+input[type="email"],
+input[type="number"],
+input[type="search"],
+input[type="text"],
+input[type="tel"],
+input[type="url"],
+input[type="password"],
+textarea {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ appearance: none;
+}
+
+.phpdocumentor-textarea {
+ min-height: 65px;
+ padding-bottom: var(--spacing-xxxs);
+ padding-top: var(--spacing-xxxs);
+}
+
+.phpdocumentor-field:focus {
+ border: 1px solid var(--button-color-primary);
+ outline: 0;
+}
+
+.phpdocumentor-label {
+ display: block;
+ margin-bottom: var(--spacing-xs);
+}
+
+.phpdocumentor-fieldset {
+ border-width: 0;
+ padding: 0;
+}
+
+input[type="checkbox"].phpdocumentor-field,
+input[type="radio"].phpdocumentor-field {
+ display: inline;
+}
+div.phpdocumentor-list > ul,
+ul.phpdocumentor-list {
+ list-style: circle inside;
+}
+
+ol.phpdocumentor-list {
+ list-style: decimal inside;
+}
+
+div.phpdocumentor-list > ul,
+ol.phpdocumentor-list,
+ul.phpdocumentor-list {
+ margin-top: 0;
+ padding-left: 0;
+ margin-bottom: var(--spacing-md);
+}
+
+dl {
+ margin-bottom: var(--spacing-md);
+}
+
+div.phpdocumentor-list > ul ul,
+ul.phpdocumentor-list ul.phpdocumentor-list,
+ul.phpdocumentor-list ol.phpdocumentor-list,
+ol.phpdocumentor-list ol.phpdocumentor-list,
+ol.phpdocumentor-list ul.phpdocumentor-list {
+ font-size: var(--text-sm);
+ margin: var(--spacing-xs) 0 var(--spacing-xs) calc(var(--spacing-xs) * 2);
+}
+
+li.phpdocumentor-list {
+ margin-bottom: var(--spacing-md);
+}
+.phpdocumentor pre {
+ margin-bottom: var(--spacing-md);
+}
+
+.phpdocumentor-code {
+ background: var(--code-background-color);
+ border: 1px solid var(--code-border-color);
+ border-radius: var(--border-radius-base-size);
+ font-size: var(--text-sm);
+ padding: var(--spacing-sm) var(--spacing-md);
+ width: 100%;
+ box-sizing: border-box;
+}
+
+pre > .phpdocumentor-code {
+ display: block;
+ white-space: pre;
+}
+.phpdocumentor blockquote {
+ border-left: 4px solid var(--primary-color);
+ margin: var(--spacing-md) 0;
+ padding: var(--spacing-xs) var(--spacing-sm);
+ color: var(--primary-color-darker);
+ font-style: italic;
+ font-size: var(--text-sm);
+}
+.phpdocumentor table {
+ margin-bottom: var(--spacing-md);
+}
+
+th.phpdocumentor-heading,
+td.phpdocumentor-cell {
+ border-bottom: 1px solid var(--table-separator-color);
+ padding: var(--spacing-sm) var(--spacing-md);
+ text-align: left;
+}
+
+th.phpdocumentor-heading:first-child,
+td.phpdocumentor-cell:first-child {
+ padding-left: 0;
+}
+
+th.phpdocumentor-heading:last-child,
+td.phpdocumentor-cell:last-child {
+ padding-right: 0;
+}
+
+.phpdocumentor-header {
+ display: flex;
+ flex-direction: row;
+ align-items: stretch;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ height: auto;
+ padding: var(--spacing-md) var(--spacing-md);
+}
+
+.phpdocumentor-header__menu-button {
+ position: absolute;
+ top: -100%;
+ left: -100%;
+}
+
+.phpdocumentor-header__menu-icon {
+ font-size: 2rem;
+ color: var(--primary-color);
+}
+
+.phpdocumentor-header__menu-button:checked ~ .phpdocumentor-topnav {
+ max-height: 250px;
+ padding-top: var(--spacing-md);
+}
+
+@media (min-width: 1000px) {
+ .phpdocumentor-header {
+ flex-direction: row;
+ padding: var(--spacing-lg) var(--spacing-lg);
+ min-height: var(--header-height);
+ }
+
+ .phpdocumentor-header__menu-icon {
+ display: none;
+ }
+}
+
+@media (min-width: 1000px) {
+ .phpdocumentor-header {
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+}
+@media (min-width: 1200px) {
+ .phpdocumentor-header {
+ padding: 0;
+ }
+}
+.phpdocumentor-title {
+ box-sizing: border-box;
+ color: var(--title-text-color);
+ font-size: var(--text-xxl);
+ letter-spacing: .05rem;
+ font-weight: normal;
+ width: auto;
+ margin: 0;
+ display: flex;
+ align-items: center;
+}
+
+.phpdocumentor-title.-without-divider {
+ border: none;
+}
+
+.phpdocumentor-title__link {
+ transition: all .3s ease-out;
+ display: flex;
+ color: var(--title-text-color);
+ text-decoration: none;
+ font-weight: normal;
+ white-space: nowrap;
+ transform: scale(.75);
+ transform-origin: left;
+}
+
+.phpdocumentor-title__link:hover {
+ transform: perspective(15rem) translateX(.5rem);
+ font-weight: 600;
+}
+
+@media (min-width: 1000px) {
+ .phpdocumentor-title {
+ width: 30.6666666667%;
+ border-right: var(--sidebar-border-color) solid 1px;
+ }
+
+ .phpdocumentor-title__link {
+ transform-origin: left;
+ }
+}
+
+@media (min-width: 1000px) {
+ .phpdocumentor-title__link {
+ transform: scale(.85);
+ }
+}
+
+@media (min-width: 1200px) {
+ .phpdocumentor-title__link {
+ transform: scale(1);
+ }
+}
+.phpdocumentor-topnav {
+ display: flex;
+ align-items: center;
+ margin: 0;
+ max-height: 0;
+ overflow: hidden;
+ transition: max-height 0.2s ease-out;
+ flex-basis: 100%;
+}
+
+.phpdocumentor-topnav__menu {
+ text-align: right;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ flex: 1;
+ display: flex;
+ flex-flow: row wrap;
+ justify-content: center;
+}
+
+.phpdocumentor-topnav__menu-item {
+ margin: 0;
+ width: 100%;
+ display: inline-block;
+ text-align: center;
+ padding: var(--spacing-sm) 0
+}
+
+.phpdocumentor-topnav__menu-item.-social {
+ width: auto;
+ padding: var(--spacing-sm)
+}
+
+.phpdocumentor-topnav__menu-item a {
+ display: inline-block;
+ color: var(--text-color);
+ text-decoration: none;
+ font-size: var(--text-lg);
+ transition: all .3s ease-out;
+ border-bottom: 1px dotted transparent;
+ line-height: 1;
+}
+
+.phpdocumentor-topnav__menu-item a:hover {
+ transform: perspective(15rem) translateY(.1rem);
+ border-bottom: 1px dotted var(--text-color);
+}
+
+@media (min-width: 1000px) {
+ .phpdocumentor-topnav {
+ max-height: none;
+ overflow: visible;
+ flex-basis: auto;
+ }
+
+ .phpdocumentor-topnav__menu {
+ display: flex;
+ flex-flow: row wrap;
+ justify-content: flex-end;
+ }
+
+ .phpdocumentor-topnav__menu-item,
+ .phpdocumentor-topnav__menu-item.-social {
+ width: auto;
+ display: inline;
+ text-align: right;
+ padding: 0 0 0 var(--spacing-md)
+ }
+}
+.phpdocumentor-sidebar {
+ margin: 0;
+ overflow: hidden;
+ max-height: 0;
+}
+
+.phpdocumentor .phpdocumentor-sidebar .phpdocumentor-list {
+ padding-top: var(--spacing-xs);
+ padding-left: var(--spacing-md);
+ list-style: none;
+}
+
+.phpdocumentor .phpdocumentor-sidebar li {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ padding: 0 0 var(--spacing-xxxs) var(--spacing-md);
+}
+
+.phpdocumentor .phpdocumentor-sidebar abbr,
+.phpdocumentor .phpdocumentor-sidebar a {
+ text-decoration: none;
+ border-bottom: none;
+ color: var(--text-color);
+ font-size: var(--text-md);
+ padding-left: 0;
+ transition: padding-left .4s ease-out;
+}
+
+.phpdocumentor .phpdocumentor-sidebar a:hover {
+ padding-left: 5px;
+ font-weight: 600;
+}
+
+.phpdocumentor .phpdocumentor-sidebar__category > * {
+ border-left: 1px solid var(--primary-color-lighten);
+}
+
+.phpdocumentor .phpdocumentor-sidebar__category {
+ margin-bottom: var(--spacing-lg);
+}
+
+.phpdocumentor .phpdocumentor-sidebar__category-header {
+ font-size: var(--text-md);
+ margin-bottom: var(--spacing-xs);
+ color: var(--link-color-primary);
+ font-weight: 600;
+ border-left: 0;
+}
+
+.phpdocumentor .phpdocumentor-sidebar__root-package,
+.phpdocumentor .phpdocumentor-sidebar__root-namespace {
+ font-size: var(--text-md);
+ margin: 0;
+ padding-top: var(--spacing-xs);
+ padding-left: var(--spacing-md);
+ color: var(--text-color);
+ font-weight: normal;
+}
+
+@media (min-width: 550px) {
+ .phpdocumentor-sidebar {
+ border-right: var(--sidebar-border-color) solid 1px;
+ }
+}
+
+.phpdocumentor-sidebar__menu-button {
+ position: absolute;
+ top: -100%;
+ left: -100%;
+}
+
+.phpdocumentor-sidebar__menu-icon {
+ font-size: var(--text-md);
+ font-weight: 600;
+ background: var(--primary-color);
+ color: white;
+ margin: 0 0 var(--spacing-lg);
+ display: block;
+ padding: var(--spacing-sm);
+ text-align: center;
+ border-radius: 3px;
+ text-transform: uppercase;
+ letter-spacing: .15rem;
+}
+
+.phpdocumentor-sidebar__menu-button:checked ~ .phpdocumentor-sidebar {
+ max-height: 100%;
+ padding-top: var(--spacing-md);
+}
+
+@media (min-width: 550px) {
+ .phpdocumentor-sidebar {
+ overflow: visible;
+ max-height: 100%;
+ }
+
+ .phpdocumentor-sidebar__menu-icon {
+ display: none;
+ }
+}
+.phpdocumentor-admonition {
+ border: 1px solid var(--admonition-border-color);
+ border-radius: var(--border-radius-base-size);
+ border-color: var(--primary-color-lighten);
+ background-color: var(--primary-color-lighter);
+ font-size: 85%;
+ padding: .5rem;
+ margin: 2rem 0;
+ display: flex;
+ flex-direction: row;
+}
+
+.phpdocumentor-admonition--success {
+ border-color: var(--admonition-success-color);
+}
+
+.phpdocumentor-admonition__icon {
+ font-size: 2rem;
+ margin: .75rem 0.75rem 1.25rem 0.5rem;
+ color: var(--primary-color);
+}
+.phpdocumentor ul.phpdocumentor-breadcrumbs {
+ font-size: var(--text-md);
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.phpdocumentor ul.phpdocumentor-breadcrumbs a {
+ color: var(--text-color);
+ text-decoration: none;
+}
+
+.phpdocumentor ul.phpdocumentor-breadcrumbs > li {
+ display: inline-block;
+ margin: 0;
+}
+
+.phpdocumentor ul.phpdocumentor-breadcrumbs > li + li:before {
+ color: var(--dark-gray);
+ content: "\\\A0";
+ padding: 0;
+}
+.phpdocumentor .phpdocumentor-back-to-top {
+ position: fixed;
+ bottom: 2rem;
+ font-size: 2.5rem;
+ opacity: .25;
+ transition: all .3s ease-in-out;
+ right: 2rem;
+}
+
+.phpdocumentor .phpdocumentor-back-to-top:hover {
+ color: var(--link-color-primary);
+ opacity: 1;
+}
+.phpdocumentor-search {
+ position: relative;
+ display: none; /** disable by default for non-js flow */
+ opacity: .3; /** white-out default for loading indication */
+ transition: opacity .3s, background .3s;
+ margin: var(--spacing-sm) 0;
+ flex: 1;
+ min-width: 100%;
+}
+
+.phpdocumentor-search label {
+ display: flex;
+ align-items: center;
+ flex: 1;
+}
+
+.phpdocumentor-search__icon {
+ color: var(--primary-color);
+ margin-right: var(--spacing-sm);
+ width: 1rem;
+ height: 1rem;
+}
+
+.phpdocumentor-search--enabled {
+ display: flex;
+}
+
+.phpdocumentor-search--active {
+ opacity: 1;
+}
+
+.phpdocumentor-search input:disabled {
+ background-color: lightgray;
+}
+
+.phpdocumentor-search__field:focus,
+.phpdocumentor-search__field {
+ margin-bottom: 0;
+ border: 0;
+ border-bottom: 2px solid var(--primary-color);
+ padding: 0;
+ border-radius: 0;
+ flex: 1;
+}
+
+@media (min-width: 1000px) {
+ .phpdocumentor-search {
+ min-width: auto;
+ max-width: 20rem;
+ margin: 0 0 0 auto;
+ }
+}
+.phpdocumentor-content {
+ position: relative;
+}
+
+.phpdocumentor-search-results {
+ backdrop-filter: blur(5px);
+ background: var(--popover-background-color);
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ padding: 0;
+ opacity: 1;
+ pointer-events: all;
+
+ transition: opacity .3s, background .3s;
+}
+
+.phpdocumentor-search-results--hidden {
+ background: transparent;
+ backdrop-filter: blur(0);
+ opacity: 0;
+ pointer-events: none;
+}
+
+.phpdocumentor-search-results__dialog {
+ width: 100%;
+ background: white;
+ max-height: 100%;
+ display: flex;
+ flex-direction: column;
+}
+
+.phpdocumentor-search-results__body {
+ overflow: auto;
+}
+
+.phpdocumentor-search-results__header {
+ padding: var(--spacing-lg);
+ display: flex;
+ justify-content: space-between;
+ background: var(--primary-color-darken);
+ color: white;
+ align-items: center;
+}
+
+.phpdocumentor-search-results__close {
+ font-size: var(--text-xl);
+ background: none;
+ border: none;
+ padding: 0;
+ margin: 0;
+}
+
+.phpdocumentor .phpdocumentor-search-results__title {
+ font-size: var(--text-xl);
+ margin-bottom: 0;
+}
+
+.phpdocumentor-search-results__entries {
+ list-style: none;
+ padding: 0 var(--spacing-lg);
+ margin: 0;
+}
+
+.phpdocumentor-search-results__entry {
+ border-bottom: 1px solid var(--table-separator-color);
+ padding: var(--spacing-sm) 0;
+ text-align: left;
+}
+
+.phpdocumentor-search-results__entry a {
+ display: block;
+}
+
+.phpdocumentor-search-results__entry small {
+ margin-top: var(--spacing-xs);
+ margin-bottom: var(--spacing-md);
+ color: var(--primary-color-darker);
+ display: block;
+ word-break: break-word;
+}
+
+.phpdocumentor-search-results__entry h3 {
+ font-size: var(--text-lg);
+ margin: 0;
+}
+
+@media (min-width: 550px) {
+ .phpdocumentor-search-results {
+ padding: 0 var(--spacing-lg);
+ }
+
+ .phpdocumentor-search-results__entry h3 {
+ font-size: var(--text-xxl);
+ }
+
+ .phpdocumentor-search-results__dialog {
+ margin: var(--spacing-xl) auto;
+ max-width: 40rem;
+ background: white;
+ border: 1px solid silver;
+ box-shadow: 0 2px 5px silver;
+ max-height: 40rem;
+ border-radius: 3px;
+ }
+}
+
+/* Used for screen readers and such */
+.visually-hidden {
+ display: none;
+}
diff --git a/css/normalize.css b/css/normalize.css
new file mode 100644
index 00000000..46f646a5
--- /dev/null
+++ b/css/normalize.css
@@ -0,0 +1,427 @@
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+
+/**
+ * 1. Set default font family to sans-serif.
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
+ * user zoom.
+ */
+
+html {
+ font-family: sans-serif; /* 1 */
+ -ms-text-size-adjust: 100%; /* 2 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/**
+ * Remove default margin.
+ */
+
+body {
+ margin: 0;
+}
+
+/* HTML5 display definitions
+ ========================================================================== */
+
+/**
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
+ * and Firefox.
+ * Correct `block` display not defined for `main` in IE 11.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/**
+ * 1. Correct `inline-block` display not defined in IE 8/9.
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+ */
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block; /* 1 */
+ vertical-align: baseline; /* 2 */
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Address `[hidden]` styling not present in IE 8/9/10.
+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
+ */
+
+[hidden],
+template {
+ display: none;
+}
+
+/* Links
+ ========================================================================== */
+
+/**
+ * Remove the gray background color from active links in IE 10.
+ */
+
+a {
+ background-color: transparent;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* Text-level semantics
+ ========================================================================== */
+
+/**
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+/**
+ * Address styling not present in Safari and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Address variable `h1` font-size and margin within `section` and `article`
+ * contexts in Firefox 4+, Safari, and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/**
+ * Address styling not present in IE 8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* Embedded content
+ ========================================================================== */
+
+/**
+ * Remove border when inside `a` element in IE 8/9/10.
+ */
+
+img {
+ border: 0;
+}
+
+/**
+ * Correct overflow not hidden in IE 9/10/11.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* Grouping content
+ ========================================================================== */
+
+/**
+ * Address margin not present in IE 8/9 and Safari.
+ */
+
+figure {
+ margin: 1em 40px;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ */
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+
+/**
+ * Contain overflow in all browsers.
+ */
+
+pre {
+ overflow: auto;
+}
+
+/**
+ * Address odd `em`-unit font size rendering in all browsers.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+/* Forms
+ ========================================================================== */
+
+/**
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
+ * styling of `select`, unless a `border` property is set.
+ */
+
+/**
+ * 1. Correct color not being inherited.
+ * Known issue: affects color of disabled elements.
+ * 2. Correct font properties not being inherited.
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit; /* 1 */
+ font: inherit; /* 2 */
+ margin: 0; /* 3 */
+}
+
+/**
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
+ */
+
+button {
+ overflow: visible;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
+ * Correct `select` style inheritance in Firefox.
+ */
+
+button,
+select {
+ text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+/**
+ * Remove inner padding and border in Firefox 4+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/**
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+input {
+ line-height: normal;
+}
+
+/**
+ * It's recommended that you don't attempt to style these elements.
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
+ *
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
+ * 2. Remove excess padding in IE 8/9/10.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
+ * `font-size` values of the `input`, it causes the cursor style of the
+ * decrement button to change from `default` to `text`.
+ */
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
+ * (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; /* 2 */
+ box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
+ * Safari (but not Chrome) clips the cancel button when the search input has
+ * padding (and `textfield` appearance).
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Remove default vertical scrollbar in IE 8/9/10/11.
+ */
+
+textarea {
+ overflow: auto;
+}
+
+/**
+ * Don't inherit the `font-weight` (applied by a rule above).
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+ */
+
+optgroup {
+ font-weight: bold;
+}
+
+/* Tables
+ ========================================================================== */
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+td,
+th {
+ padding: 0;
+}
diff --git a/css/template.css b/css/template.css
new file mode 100644
index 00000000..fb905f3d
--- /dev/null
+++ b/css/template.css
@@ -0,0 +1,169 @@
+.phpdocumentor-summary {
+ font-style: italic;
+}
+.phpdocumentor-description {
+ margin-bottom: var(--spacing-md);
+}
+.phpdocumentor-element {
+ position: relative;
+}
+
+.phpdocumentor .phpdocumentor-element__name {
+ line-height: 1;
+}
+
+.phpdocumentor-element__package,
+.phpdocumentor-element__extends,
+.phpdocumentor-element__implements {
+ display: block;
+ font-size: var(--text-xxs);
+ font-weight: normal;
+ opacity: .7;
+}
+
+.phpdocumentor-element__package .phpdocumentor-breadcrumbs {
+ display: inline;
+}
+
+.phpdocumentor-element:not(:last-child) {
+ border-bottom: 1px solid var(--primary-color-lighten);
+ padding-bottom: var(--spacing-lg);
+}
+
+.phpdocumentor-element.-deprecated .phpdocumentor-element__name {
+ text-decoration: line-through;
+}
+
+.phpdocumentor-element__modifier {
+ font-size: var(--text-xxs);
+ padding: calc(var(--spacing-base-size) / 4) calc(var(--spacing-base-size) / 2);
+ color: var(--text-color);
+ background-color: var(--light-gray);
+ border-radius: 3px;
+ text-transform: uppercase;
+}
+.phpdocumentor-signature {
+ display: inline-block;
+ font-size: var(--text-sm);
+ margin-bottom: var(--spacing-md);
+}
+
+.phpdocumentor-signature.-deprecated .phpdocumentor-signature__name {
+ text-decoration: line-through;
+}
+.phpdocumentor-table-of-contents {
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry {
+ padding-top: var(--spacing-xs);
+ margin-left: 2rem;
+ display: flex;
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry > a {
+ flex: 0 1 auto;
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry > span {
+ flex: 1;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry:after {
+ content: '';
+ height: 12px;
+ width: 12px;
+ left: 16px;
+ position: absolute;
+}
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-private:after {
+ background: url('data:image/svg+xml;utf8, ') no-repeat;
+}
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-protected:after {
+ left: 13px;
+ background: url('data:image/svg+xml;utf8, ') no-repeat;
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry:before {
+ width: 1.25rem;
+ height: 1.25rem;
+ line-height: 1.25rem;
+ background: transparent url('data:image/svg+xml;utf8, ') no-repeat center center;
+ content: '';
+ position: absolute;
+ left: 0;
+ border-radius: 50%;
+ font-weight: 600;
+ color: white;
+ text-align: center;
+ font-size: .75rem;
+ margin-top: .2rem;
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-method:before {
+ content: 'M';
+ background-image: url('data:image/svg+xml;utf8, ');
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-function:before {
+ content: 'M';
+ background-image: url('data:image/svg+xml;utf8, ');
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-property:before {
+ content: 'P'
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-constant:before {
+ content: 'C';
+ background-color: transparent;
+ background-image: url('data:image/svg+xml;utf8, ');
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-class:before {
+ content: 'C'
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-interface:before {
+ content: 'I'
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-trait:before {
+ content: 'T'
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-namespace:before {
+ content: 'N'
+}
+
+.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-package:before {
+ content: 'P'
+}
+
+.phpdocumentor-table-of-contents dd {
+ font-style: italic;
+ margin-left: 2rem;
+}
+.phpdocumentor-element-found-in {
+ position: absolute;
+ top: 0;
+ right: 0;
+ font-size: var(--text-sm);
+ color: gray;
+}
+.phpdocumentor-class-graph {
+ width: 100%; height: 600px; border:1px solid black; overflow: hidden
+}
+
+.phpdocumentor-class-graph__graph {
+ width: 100%;
+}
+.phpdocumentor-tag-list__definition {
+ display: flex;
+}
+
+.phpdocumentor-tag-link {
+ margin-right: var(--spacing-sm);
+}
diff --git a/files/src-parse-httpclients-parsecurl.html b/files/src-parse-httpclients-parsecurl.html
new file mode 100644
index 00000000..08a643be
--- /dev/null
+++ b/files/src-parse-httpclients-parsecurl.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseCurl.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseCurl
+ Class ParseCurl - Wrapper for abstracted curl usage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-httpclients-parsecurlhttpclient.html b/files/src-parse-httpclients-parsecurlhttpclient.html
new file mode 100644
index 00000000..81ef93f4
--- /dev/null
+++ b/files/src-parse-httpclients-parsecurlhttpclient.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseCurlHttpClient.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseCurlHttpClient
+ Class ParseCurlHttpClient - Curl http client
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-httpclients-parsehttpable.html b/files/src-parse-httpclients-parsehttpable.html
new file mode 100644
index 00000000..84c43c56
--- /dev/null
+++ b/files/src-parse-httpclients-parsehttpable.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseHttpable.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ ParseHttpable
+ Class ParseHttpable - Interface for an HTTPable client
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-httpclients-parsestream.html b/files/src-parse-httpclients-parsestream.html
new file mode 100644
index 00000000..2fdc30fd
--- /dev/null
+++ b/files/src-parse-httpclients-parsestream.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseStream.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseStream
+ Class ParseStream - Wrapper for abstracted stream usage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-httpclients-parsestreamhttpclient.html b/files/src-parse-httpclients-parsestreamhttpclient.html
new file mode 100644
index 00000000..daa1b1bc
--- /dev/null
+++ b/files/src-parse-httpclients-parsestreamhttpclient.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseStreamHttpClient.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseStreamHttpClient
+ Class ParseStreamHttpClient - Stream http client
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-internal-addoperation.html b/files/src-parse-internal-addoperation.html
new file mode 100644
index 00000000..bfec8369
--- /dev/null
+++ b/files/src-parse-internal-addoperation.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AddOperation.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ AddOperation
+ Class AddOperation - FieldOperation for adding object(s) to array fields.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-internal-adduniqueoperation.html b/files/src-parse-internal-adduniqueoperation.html
new file mode 100644
index 00000000..ef7f68cb
--- /dev/null
+++ b/files/src-parse-internal-adduniqueoperation.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AddUniqueOperation.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ AddUniqueOperation
+ Class AddUniqueOperation - Operation to add unique objects to an array key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-internal-deleteoperation.html b/files/src-parse-internal-deleteoperation.html
new file mode 100644
index 00000000..716cf477
--- /dev/null
+++ b/files/src-parse-internal-deleteoperation.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DeleteOperation.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ DeleteOperation
+ Class DeleteOperation - FieldOperation to remove a key from an object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-internal-encodable.html b/files/src-parse-internal-encodable.html
new file mode 100644
index 00000000..9199d588
--- /dev/null
+++ b/files/src-parse-internal-encodable.html
@@ -0,0 +1,134 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodable.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ Encodable
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-internal-fieldoperation.html b/files/src-parse-internal-fieldoperation.html
new file mode 100644
index 00000000..dabaa517
--- /dev/null
+++ b/files/src-parse-internal-fieldoperation.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FieldOperation.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ FieldOperation
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-internal-incrementoperation.html b/files/src-parse-internal-incrementoperation.html
new file mode 100644
index 00000000..4bac9f8c
--- /dev/null
+++ b/files/src-parse-internal-incrementoperation.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IncrementOperation.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ IncrementOperation
+ Class IncrementOperation - Operation to increment numeric object key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-internal-parserelationoperation.html b/files/src-parse-internal-parserelationoperation.html
new file mode 100644
index 00000000..ec578e6d
--- /dev/null
+++ b/files/src-parse-internal-parserelationoperation.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseRelationOperation.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseRelationOperation
+ Class ParseRelationOperation - A class that is used to manage ParseRelation changes such as object add or remove.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-internal-removeoperation.html b/files/src-parse-internal-removeoperation.html
new file mode 100644
index 00000000..fa8aa1ba
--- /dev/null
+++ b/files/src-parse-internal-removeoperation.html
@@ -0,0 +1,134 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RemoveOperation.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ RemoveOperation
+ Class RemoveOperation - FieldOperation for removing object(s) from array
+fields.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-internal-setoperation.html b/files/src-parse-internal-setoperation.html
new file mode 100644
index 00000000..2bbfdf65
--- /dev/null
+++ b/files/src-parse-internal-setoperation.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SetOperation.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ SetOperation
+ Class SetOperation - Operation to set a value for an object key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseacl.html b/files/src-parse-parseacl.html
new file mode 100644
index 00000000..845e389d
--- /dev/null
+++ b/files/src-parse-parseacl.html
@@ -0,0 +1,138 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseACL.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseACL
+ Class ParseACL - is used to control which users can access or modify a particular
+object. Each ParseObject can have its own ParseACL. You can grant read and
+write permissions separately to specific users, to groups of users that
+belong to roles, or you can grant permissions to "the public" so that, for
+example, any user could read a particular object but only a particular set
+of users could write to that object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseaggregateexception.html b/files/src-parse-parseaggregateexception.html
new file mode 100644
index 00000000..0e94ea63
--- /dev/null
+++ b/files/src-parse-parseaggregateexception.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseAggregateException.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseAggregateException
+ Class ParseAggregateException - Multiple error condition.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseanalytics.html b/files/src-parse-parseanalytics.html
new file mode 100644
index 00000000..fe03a91e
--- /dev/null
+++ b/files/src-parse-parseanalytics.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseAnalytics.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseAnalytics
+ Class ParseAnalytics - Handles sending app-open and custom analytics events.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseaudience.html b/files/src-parse-parseaudience.html
new file mode 100644
index 00000000..ae715960
--- /dev/null
+++ b/files/src-parse-parseaudience.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseAudience.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseAudience
+ Class ParseAudience - Representation of Audience for tracking and sending push notifications
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsebytes.html b/files/src-parse-parsebytes.html
new file mode 100644
index 00000000..90c9b711
--- /dev/null
+++ b/files/src-parse-parsebytes.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseBytes.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseBytes
+ Class ParseBytes - Representation of a Byte array for storage on a Parse Object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseclient.html b/files/src-parse-parseclient.html
new file mode 100644
index 00000000..473b9a82
--- /dev/null
+++ b/files/src-parse-parseclient.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseClient.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseClient
+ Class ParseClient - Main class for Parse initialization and communication.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsecloud.html b/files/src-parse-parsecloud.html
new file mode 100644
index 00000000..0d533330
--- /dev/null
+++ b/files/src-parse-parsecloud.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseCloud.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseCloud
+ Class ParseCloud - Facilitates calling Parse Cloud functions.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseconfig.html b/files/src-parse-parseconfig.html
new file mode 100644
index 00000000..dae6b83f
--- /dev/null
+++ b/files/src-parse-parseconfig.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseConfig.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseConfig
+ Class ParseConfig - For accessing Parse Config settings.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseexception.html b/files/src-parse-parseexception.html
new file mode 100644
index 00000000..08d2aa28
--- /dev/null
+++ b/files/src-parse-parseexception.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseException.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseException
+ Class ParseException - Wrapper for \Exception class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsefile.html b/files/src-parse-parsefile.html
new file mode 100644
index 00000000..87a5133c
--- /dev/null
+++ b/files/src-parse-parsefile.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseFile.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseFile
+ Class ParseFile - Representation of a Parse File object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsegeopoint.html b/files/src-parse-parsegeopoint.html
new file mode 100644
index 00000000..e7021a54
--- /dev/null
+++ b/files/src-parse-parsegeopoint.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseGeoPoint.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseGeoPoint
+ Class ParseGeoPoint - Representation of a Parse GeoPoint object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsehooks.html b/files/src-parse-parsehooks.html
new file mode 100644
index 00000000..a2aff31e
--- /dev/null
+++ b/files/src-parse-parsehooks.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseHooks.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseHooks
+ Class ParseHooks - Representation of a Parse Hooks object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseinstallation.html b/files/src-parse-parseinstallation.html
new file mode 100644
index 00000000..e72ab30f
--- /dev/null
+++ b/files/src-parse-parseinstallation.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseInstallation.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseInstallation
+ Class ParseInstallation - Representation of an Installation stored on Parse.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parselogs.html b/files/src-parse-parselogs.html
new file mode 100644
index 00000000..d9197dca
--- /dev/null
+++ b/files/src-parse-parselogs.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseLogs.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseLogs
+ Class ParseLogs - Allows access to server side parse script logs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsememorystorage.html b/files/src-parse-parsememorystorage.html
new file mode 100644
index 00000000..557613e7
--- /dev/null
+++ b/files/src-parse-parsememorystorage.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseMemoryStorage.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseMemoryStorage
+ Class ParseMemoryStorage - Uses non-persisted memory for storage.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseobject.html b/files/src-parse-parseobject.html
new file mode 100644
index 00000000..98465ea3
--- /dev/null
+++ b/files/src-parse-parseobject.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseObject.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseObject
+ Class ParseObject - Representation of an object stored on Parse.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsepolygon.html b/files/src-parse-parsepolygon.html
new file mode 100644
index 00000000..aa29bd7a
--- /dev/null
+++ b/files/src-parse-parsepolygon.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParsePolygon.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParsePolygon
+ ParsePolygon - Representation of a Parse Polygon object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsepush.html b/files/src-parse-parsepush.html
new file mode 100644
index 00000000..6beb6d1e
--- /dev/null
+++ b/files/src-parse-parsepush.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParsePush.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParsePush
+ Class ParsePush - Handles sending push notifications with Parse.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsepushstatus.html b/files/src-parse-parsepushstatus.html
new file mode 100644
index 00000000..fe97c35d
--- /dev/null
+++ b/files/src-parse-parsepushstatus.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParsePushStatus.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParsePushStatus
+ Class ParsePushStatus - Representation of PushStatus for push notifications
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsequery.html b/files/src-parse-parsequery.html
new file mode 100644
index 00000000..e9db6882
--- /dev/null
+++ b/files/src-parse-parsequery.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseQuery.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseQuery
+ Class ParseQuery - Handles querying data from Parse.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parserelation.html b/files/src-parse-parserelation.html
new file mode 100644
index 00000000..cc85777c
--- /dev/null
+++ b/files/src-parse-parserelation.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseRelation.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseRelation
+ Class ParseRelation - A class that is used to access all of the children of a many-to-many relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parserole.html b/files/src-parse-parserole.html
new file mode 100644
index 00000000..d5e4bfde
--- /dev/null
+++ b/files/src-parse-parserole.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseRole.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseRole
+ Class ParseRole - Representation of an access Role.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseschema.html b/files/src-parse-parseschema.html
new file mode 100644
index 00000000..78126327
--- /dev/null
+++ b/files/src-parse-parseschema.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseSchema.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseSchema
+ Class ParseSchema - Handles schemas data from Parse.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseserverinfo.html b/files/src-parse-parseserverinfo.html
new file mode 100644
index 00000000..1929f659
--- /dev/null
+++ b/files/src-parse-parseserverinfo.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseServerInfo.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseServerInfo
+ Class ParseFeatures - Representation of server-side features
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsesession.html b/files/src-parse-parsesession.html
new file mode 100644
index 00000000..b63e7f90
--- /dev/null
+++ b/files/src-parse-parsesession.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseSession.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseSession
+ Class ParseSession - Representation of an expiring user session.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsesessionstorage.html b/files/src-parse-parsesessionstorage.html
new file mode 100644
index 00000000..3ded1647
--- /dev/null
+++ b/files/src-parse-parsesessionstorage.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseSessionStorage.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseSessionStorage
+ Class ParseSessionStorage - Uses PHP session support for persistent storage.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parsestorageinterface.html b/files/src-parse-parsestorageinterface.html
new file mode 100644
index 00000000..2a8d6ef5
--- /dev/null
+++ b/files/src-parse-parsestorageinterface.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseStorageInterface.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ ParseStorageInterface
+ Class ParseStorageInterface - Specifies an interface for implementing persistence.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/src-parse-parseuser.html b/files/src-parse-parseuser.html
new file mode 100644
index 00000000..ea75b7fe
--- /dev/null
+++ b/files/src-parse-parseuser.html
@@ -0,0 +1,133 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ParseUser.php
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+
+ ParseUser
+ Class ParseUser - Representation of a user object stored on Parse.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/graphs/classes.html b/graphs/classes.html
new file mode 100644
index 00000000..203a2718
--- /dev/null
+++ b/graphs/classes.html
@@ -0,0 +1,110 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..84d7417d
--- /dev/null
+++ b/index.html
@@ -0,0 +1,134 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Documentation
+
+
+
+ Packages
+
+
+
+
+ Default
+ Parse
+
+
+
+ Namespaces
+
+
+
+
+ Parse
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indices/files.html b/indices/files.html
new file mode 100644
index 00000000..f5d4e004
--- /dev/null
+++ b/indices/files.html
@@ -0,0 +1,174 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Files
+
A
+
+
D
+
+
E
+
+
F
+
+
I
+
+
P
+
+
R
+
+
S
+
+
+
+
+
+
+
+
+
+
+
diff --git a/js/search.js b/js/search.js
new file mode 100644
index 00000000..a7e35954
--- /dev/null
+++ b/js/search.js
@@ -0,0 +1,173 @@
+// Search module for phpDocumentor
+//
+// This module is a wrapper around fuse.js that will use a given index and attach itself to a
+// search form and to a search results pane identified by the following data attributes:
+//
+// 1. data-search-form
+// 2. data-search-results
+//
+// The data-search-form is expected to have a single input element of type 'search' that will trigger searching for
+// a series of results, were the data-search-results pane is expected to have a direct UL child that will be populated
+// with rendered results.
+//
+// The search has various stages, upon loading this stage the data-search-form receives the CSS class
+// 'phpdocumentor-search--enabled'; this indicates that JS is allowed and indices are being loaded. It is recommended
+// to hide the form by default and show it when it receives this class to achieve progressive enhancement for this
+// feature.
+//
+// After loading this module, it is expected to load a search index asynchronously, for example:
+//
+//
+//
+// In this script the generated index should attach itself to the search module using the `appendIndex` function. By
+// doing it like this the page will continue loading, unhindered by the loading of the search.
+//
+// After the page has fully loaded, and all these deferred indexes loaded, the initialization of the search module will
+// be called and the form will receive the class 'phpdocumentor-search--active', indicating search is ready. At this
+// point, the input field will also have it's 'disabled' attribute removed.
+var Search = (function () {
+ var fuse;
+ var index = [];
+ var options = {
+ shouldSort: true,
+ threshold: 0.6,
+ location: 0,
+ distance: 100,
+ maxPatternLength: 32,
+ minMatchCharLength: 1,
+ keys: [
+ "fqsen",
+ "name",
+ "summary",
+ "url"
+ ]
+ };
+
+ // Credit David Walsh (https://davidwalsh.name/javascript-debounce-function)
+ // Returns a function, that, as long as it continues to be invoked, will not
+ // be triggered. The function will be called after it stops being called for
+ // N milliseconds. If `immediate` is passed, trigger the function on the
+ // leading edge, instead of the trailing.
+ function debounce(func, wait, immediate) {
+ var timeout;
+
+ return function executedFunction() {
+ var context = this;
+ var args = arguments;
+
+ var later = function () {
+ timeout = null;
+ if (!immediate) func.apply(context, args);
+ };
+
+ var callNow = immediate && !timeout;
+ clearTimeout(timeout);
+ timeout = setTimeout(later, wait);
+ if (callNow) func.apply(context, args);
+ };
+ }
+
+ function close() {
+ // Start scroll prevention: https://css-tricks.com/prevent-page-scrolling-when-a-modal-is-open/
+ const scrollY = document.body.style.top;
+ document.body.style.position = '';
+ document.body.style.top = '';
+ window.scrollTo(0, parseInt(scrollY || '0') * -1);
+ // End scroll prevention
+
+ var form = document.querySelector('[data-search-form]');
+ var searchResults = document.querySelector('[data-search-results]');
+
+ form.classList.toggle('phpdocumentor-search--has-results', false);
+ searchResults.classList.add('phpdocumentor-search-results--hidden');
+ var searchField = document.querySelector('[data-search-form] input[type="search"]');
+ searchField.blur();
+ }
+
+ function search(event) {
+ // Start scroll prevention: https://css-tricks.com/prevent-page-scrolling-when-a-modal-is-open/
+ document.body.style.position = 'fixed';
+ document.body.style.top = `-${window.scrollY}px`;
+ // End scroll prevention
+
+ // prevent enter's from autosubmitting
+ event.stopPropagation();
+
+ var form = document.querySelector('[data-search-form]');
+ var searchResults = document.querySelector('[data-search-results]');
+ var searchResultEntries = document.querySelector('[data-search-results] .phpdocumentor-search-results__entries');
+
+ searchResultEntries.innerHTML = '';
+
+ if (!event.target.value) {
+ close();
+ return;
+ }
+
+ form.classList.toggle('phpdocumentor-search--has-results', true);
+ searchResults.classList.remove('phpdocumentor-search-results--hidden');
+ var results = fuse.search(event.target.value, {limit: 25});
+
+ results.forEach(function (result) {
+ var entry = document.createElement("li");
+ entry.classList.add("phpdocumentor-search-results__entry");
+ entry.innerHTML += '\n";
+ entry.innerHTML += '' + result.fqsen + " \n";
+ entry.innerHTML += '' + result.summary + '
';
+ searchResultEntries.appendChild(entry)
+ });
+ }
+
+ function appendIndex(added) {
+ index = index.concat(added);
+
+ // re-initialize search engine when appending an index after initialisation
+ if (typeof fuse !== 'undefined') {
+ fuse = new Fuse(index, options);
+ }
+ }
+
+ function init() {
+ fuse = new Fuse(index, options);
+
+ var form = document.querySelector('[data-search-form]');
+ var searchField = document.querySelector('[data-search-form] input[type="search"]');
+
+ var closeButton = document.querySelector('.phpdocumentor-search-results__close');
+ closeButton.addEventListener('click', function() { close() }.bind(this));
+
+ var searchResults = document.querySelector('[data-search-results]');
+ searchResults.addEventListener('click', function() { close() }.bind(this));
+
+ form.classList.add('phpdocumentor-search--active');
+
+ searchField.setAttribute('placeholder', 'Search (Press "/" to focus)');
+ searchField.removeAttribute('disabled');
+ searchField.addEventListener('keyup', debounce(search, 300));
+
+ window.addEventListener('keyup', function (event) {
+ if (event.key === '/') {
+ searchField.focus();
+ }
+ if (event.code === 'Escape') {
+ close();
+ }
+ }.bind(this));
+ }
+
+ return {
+ appendIndex,
+ init
+ }
+})();
+
+window.addEventListener('DOMContentLoaded', function () {
+ var form = document.querySelector('[data-search-form]');
+
+ // When JS is supported; show search box. Must be before including the search for it to take effect immediately
+ form.classList.add('phpdocumentor-search--enabled');
+});
+
+window.addEventListener('load', function () {
+ Search.init();
+});
diff --git a/js/searchIndex.js b/js/searchIndex.js
new file mode 100644
index 00000000..80a7b8d4
--- /dev/null
+++ b/js/searchIndex.js
@@ -0,0 +1,3329 @@
+Search.appendIndex(
+ [
+ {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurl",
+ "name": "ParseCurl",
+ "summary": "Class\u0020ParseCurl\u0020\u002D\u0020Wrapper\u0020for\u0020abstracted\u0020curl\u0020usage",
+ "url": "classes/Parse-HttpClients-ParseCurl.html"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurl\u003A\u003Ainit\u0028\u0029",
+ "name": "init",
+ "summary": "Sets\u0020up\u0020a\u0020new\u0020curl\u0020instance\u0020internally\u0020if\u0020needed",
+ "url": "classes/Parse-HttpClients-ParseCurl.html#method_init"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurl\u003A\u003Aexec\u0028\u0029",
+ "name": "exec",
+ "summary": "Executes\u0020this\u0020curl\u0020request",
+ "url": "classes/Parse-HttpClients-ParseCurl.html#method_exec"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurl\u003A\u003AsetOption\u0028\u0029",
+ "name": "setOption",
+ "summary": "Sets\u0020a\u0020curl\u0020option",
+ "url": "classes/Parse-HttpClients-ParseCurl.html#method_setOption"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurl\u003A\u003AsetOptionsArray\u0028\u0029",
+ "name": "setOptionsArray",
+ "summary": "Sets\u0020multiple\u0020curl\u0020options",
+ "url": "classes/Parse-HttpClients-ParseCurl.html#method_setOptionsArray"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurl\u003A\u003AgetInfo\u0028\u0029",
+ "name": "getInfo",
+ "summary": "Gets\u0020info\u0020for\u0020this\u0020curl\u0020handle",
+ "url": "classes/Parse-HttpClients-ParseCurl.html#method_getInfo"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurl\u003A\u003AgetError\u0028\u0029",
+ "name": "getError",
+ "summary": "Gets\u0020the\u0020curl\u0020error\u0020message",
+ "url": "classes/Parse-HttpClients-ParseCurl.html#method_getError"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurl\u003A\u003AgetErrorCode\u0028\u0029",
+ "name": "getErrorCode",
+ "summary": "Gets\u0020the\u0020curl\u0020error\u0020code",
+ "url": "classes/Parse-HttpClients-ParseCurl.html#method_getErrorCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurl\u003A\u003Aclose\u0028\u0029",
+ "name": "close",
+ "summary": "Closed\u0020our\u0020curl\u0020handle\u0020and\u0020disposes\u0020of\u0020it",
+ "url": "classes/Parse-HttpClients-ParseCurl.html#method_close"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurl\u003A\u003A\u0024curl",
+ "name": "curl",
+ "summary": "Curl\u0020handle",
+ "url": "classes/Parse-HttpClients-ParseCurl.html#property_curl"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient",
+ "name": "ParseCurlHttpClient",
+ "summary": "Class\u0020ParseCurlHttpClient\u0020\u002D\u0020Curl\u0020http\u0020client",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "ParseCurlHttpClient\u0020constructor.",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AaddRequestHeader\u0028\u0029",
+ "name": "addRequestHeader",
+ "summary": "Adds\u0020a\u0020header\u0020to\u0020this\u0020request",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_addRequestHeader"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AbuildRequestHeaders\u0028\u0029",
+ "name": "buildRequestHeaders",
+ "summary": "Builds\u0020and\u0020returns\u0020the\u0020coalesced\u0020request\u0020headers",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_buildRequestHeaders"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AgetResponseHeaders\u0028\u0029",
+ "name": "getResponseHeaders",
+ "summary": "Gets\u0020headers\u0020in\u0020the\u0020response",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_getResponseHeaders"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AgetResponseStatusCode\u0028\u0029",
+ "name": "getResponseStatusCode",
+ "summary": "Returns\u0020the\u0020status\u0020code\u0020of\u0020the\u0020response",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_getResponseStatusCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AgetResponseContentType\u0028\u0029",
+ "name": "getResponseContentType",
+ "summary": "Returns\u0020the\u0020content\u0020type\u0020of\u0020the\u0020response",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_getResponseContentType"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003Asetup\u0028\u0029",
+ "name": "setup",
+ "summary": "Sets\u0020up\u0020our\u0020cURL\u0020request\u0020in\u0020advance",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_setup"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003Asend\u0028\u0029",
+ "name": "send",
+ "summary": "Sends\u0020an\u0020HTTP\u0020request",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_send"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AgetHeadersArray\u0028\u0029",
+ "name": "getHeadersArray",
+ "summary": "Convert\u0020and\u0020return\u0020response\u0020headers\u0020as\u0020an\u0020array",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_getHeadersArray"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AsetConnectionTimeout\u0028\u0029",
+ "name": "setConnectionTimeout",
+ "summary": "Sets\u0020the\u0020connection\u0020timeout",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_setConnectionTimeout"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AsetTimeout\u0028\u0029",
+ "name": "setTimeout",
+ "summary": "Sets\u0020the\u0020request\u0020timeout",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_setTimeout"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AsetCAFile\u0028\u0029",
+ "name": "setCAFile",
+ "summary": "Sets\u0020the\u0020CA\u0020file\u0020to\u0020validate\u0020requests\u0020with",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_setCAFile"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AsetHttpOptions\u0028\u0029",
+ "name": "setHttpOptions",
+ "summary": "Sets\u0020multiple\u0020curl\u0020options\nhttps\u003A\/\/www.php.net\/manual\/en\/function.curl\u002Dsetopt.php",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_setHttpOptions"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AgetErrorCode\u0028\u0029",
+ "name": "getErrorCode",
+ "summary": "Gets\u0020the\u0020error\u0020code",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_getErrorCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AgetErrorMessage\u0028\u0029",
+ "name": "getErrorMessage",
+ "summary": "Gets\u0020the\u0020error\u0020message",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_getErrorMessage"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AgetHeaderSize\u0028\u0029",
+ "name": "getHeaderSize",
+ "summary": "Return\u0020proper\u0020header\u0020size",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_getHeaderSize"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003AneedsCurlProxyFix\u0028\u0029",
+ "name": "needsCurlProxyFix",
+ "summary": "Detect\u0020versions\u0020of\u0020Curl\u0020which\u0020report\u0020incorrect\u0020header\u0020lengths\u0020when\nusing\u0020Proxies.",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#method_needsCurlProxyFix"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003ACURL_PROXY_QUIRK_VER",
+ "name": "CURL_PROXY_QUIRK_VER",
+ "summary": "",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#constant_CURL_PROXY_QUIRK_VER"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003ACONNECTION_ESTABLISHED",
+ "name": "CONNECTION_ESTABLISHED",
+ "summary": "",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#constant_CONNECTION_ESTABLISHED"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003A\u0024parseCurl",
+ "name": "parseCurl",
+ "summary": "Curl\u0020handle",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#property_parseCurl"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003A\u0024headers",
+ "name": "headers",
+ "summary": "Request\u0020Headers",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#property_headers"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003A\u0024responseHeaders",
+ "name": "responseHeaders",
+ "summary": "Response\u0020headers",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#property_responseHeaders"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003A\u0024responseCode",
+ "name": "responseCode",
+ "summary": "Response\u0020code",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#property_responseCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003A\u0024responseContentType",
+ "name": "responseContentType",
+ "summary": "Content\u0020type\u0020of\u0020our\u0020response",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#property_responseContentType"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003A\u0024curlErrorCode",
+ "name": "curlErrorCode",
+ "summary": "cURL\u0020error\u0020code",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#property_curlErrorCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003A\u0024curlErrorMessage",
+ "name": "curlErrorMessage",
+ "summary": "cURL\u0020error\u0020message",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#property_curlErrorMessage"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseCurlHttpClient\u003A\u003A\u0024response",
+ "name": "response",
+ "summary": "Response\u0020from\u0020our\u0020request",
+ "url": "classes/Parse-HttpClients-ParseCurlHttpClient.html#property_response"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable",
+ "name": "ParseHttpable",
+ "summary": "Class\u0020ParseHttpable\u0020\u002D\u0020Interface\u0020for\u0020an\u0020HTTPable\u0020client",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003AaddRequestHeader\u0028\u0029",
+ "name": "addRequestHeader",
+ "summary": "Adds\u0020a\u0020header\u0020to\u0020this\u0020request",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_addRequestHeader"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003AgetResponseHeaders\u0028\u0029",
+ "name": "getResponseHeaders",
+ "summary": "Gets\u0020headers\u0020in\u0020the\u0020response",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_getResponseHeaders"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003AgetResponseStatusCode\u0028\u0029",
+ "name": "getResponseStatusCode",
+ "summary": "Returns\u0020the\u0020status\u0020code\u0020of\u0020the\u0020response",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_getResponseStatusCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003AgetResponseContentType\u0028\u0029",
+ "name": "getResponseContentType",
+ "summary": "Returns\u0020the\u0020content\u0020type\u0020of\u0020the\u0020response",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_getResponseContentType"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003AsetConnectionTimeout\u0028\u0029",
+ "name": "setConnectionTimeout",
+ "summary": "Sets\u0020the\u0020connection\u0020timeout",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_setConnectionTimeout"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003AsetTimeout\u0028\u0029",
+ "name": "setTimeout",
+ "summary": "Sets\u0020the\u0020request\u0020timeout",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_setTimeout"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003AsetCAFile\u0028\u0029",
+ "name": "setCAFile",
+ "summary": "Sets\u0020the\u0020CA\u0020file\u0020to\u0020validate\u0020requests\u0020with",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_setCAFile"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003AsetHttpOptions\u0028\u0029",
+ "name": "setHttpOptions",
+ "summary": "Sets\u0020http\u0020options\u0020to\u0020pass\u0020to\u0020the\u0020http\u0020client",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_setHttpOptions"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003AgetErrorCode\u0028\u0029",
+ "name": "getErrorCode",
+ "summary": "Gets\u0020the\u0020error\u0020code",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_getErrorCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003AgetErrorMessage\u0028\u0029",
+ "name": "getErrorMessage",
+ "summary": "Gets\u0020the\u0020error\u0020message",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_getErrorMessage"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003Asetup\u0028\u0029",
+ "name": "setup",
+ "summary": "Sets\u0020up\u0020our\u0020client\u0020before\u0020we\u0020make\u0020a\u0020request",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_setup"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseHttpable\u003A\u003Asend\u0028\u0029",
+ "name": "send",
+ "summary": "Sends\u0020an\u0020HTTP\u0020request",
+ "url": "classes/Parse-HttpClients-ParseHttpable.html#method_send"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream",
+ "name": "ParseStream",
+ "summary": "Class\u0020ParseStream\u0020\u002D\u0020Wrapper\u0020for\u0020abstracted\u0020stream\u0020usage",
+ "url": "classes/Parse-HttpClients-ParseStream.html"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream\u003A\u003AcreateContext\u0028\u0029",
+ "name": "createContext",
+ "summary": "Create\u0020a\u0020stream\u0020context",
+ "url": "classes/Parse-HttpClients-ParseStream.html#method_createContext"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream\u003A\u003Aget\u0028\u0029",
+ "name": "get",
+ "summary": "Gets\u0020the\u0020contents\u0020from\u0020the\u0020given\u0020url",
+ "url": "classes/Parse-HttpClients-ParseStream.html#method_get"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream\u003A\u003AgetResponseHeaders\u0028\u0029",
+ "name": "getResponseHeaders",
+ "summary": "Returns\u0020the\u0020response\u0020headers\u0020for\u0020the\u0020last\u0020request",
+ "url": "classes/Parse-HttpClients-ParseStream.html#method_getResponseHeaders"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream\u003A\u003AgetErrorMessage\u0028\u0029",
+ "name": "getErrorMessage",
+ "summary": "Gets\u0020the\u0020current\u0020error\u0020message",
+ "url": "classes/Parse-HttpClients-ParseStream.html#method_getErrorMessage"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream\u003A\u003AgetErrorCode\u0028\u0029",
+ "name": "getErrorCode",
+ "summary": "Get\u0020the\u0020current\u0020error\u0020code",
+ "url": "classes/Parse-HttpClients-ParseStream.html#method_getErrorCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream\u003A\u003AgetFileContents\u0028\u0029",
+ "name": "getFileContents",
+ "summary": "Wrapper\u0020for\u0020file_get_contents,\u0020used\u0020for\u0020testing",
+ "url": "classes/Parse-HttpClients-ParseStream.html#method_getFileContents"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream\u003A\u003A\u0024stream",
+ "name": "stream",
+ "summary": "Stream\u0020context",
+ "url": "classes/Parse-HttpClients-ParseStream.html#property_stream"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream\u003A\u003A\u0024responseHeaders",
+ "name": "responseHeaders",
+ "summary": "Response\u0020headers",
+ "url": "classes/Parse-HttpClients-ParseStream.html#property_responseHeaders"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream\u003A\u003A\u0024errorMessage",
+ "name": "errorMessage",
+ "summary": "Error\u0020message",
+ "url": "classes/Parse-HttpClients-ParseStream.html#property_errorMessage"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStream\u003A\u003A\u0024errorCode",
+ "name": "errorCode",
+ "summary": "Error\u0020code",
+ "url": "classes/Parse-HttpClients-ParseStream.html#property_errorCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient",
+ "name": "ParseStreamHttpClient",
+ "summary": "Class\u0020ParseStreamHttpClient\u0020\u002D\u0020Stream\u0020http\u0020client",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "ParseStreamHttpClient\u0020constructor.",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AaddRequestHeader\u0028\u0029",
+ "name": "addRequestHeader",
+ "summary": "Adds\u0020a\u0020header\u0020to\u0020this\u0020request",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_addRequestHeader"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AgetResponseHeaders\u0028\u0029",
+ "name": "getResponseHeaders",
+ "summary": "Gets\u0020headers\u0020in\u0020the\u0020response",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_getResponseHeaders"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AgetResponseStatusCode\u0028\u0029",
+ "name": "getResponseStatusCode",
+ "summary": "Returns\u0020the\u0020status\u0020code\u0020of\u0020the\u0020response",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_getResponseStatusCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AgetResponseContentType\u0028\u0029",
+ "name": "getResponseContentType",
+ "summary": "Returns\u0020the\u0020content\u0020type\u0020of\u0020the\u0020response",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_getResponseContentType"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AbuildRequestHeaders\u0028\u0029",
+ "name": "buildRequestHeaders",
+ "summary": "Builds\u0020and\u0020returns\u0020the\u0020coalesced\u0020request\u0020headers",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_buildRequestHeaders"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003Asetup\u0028\u0029",
+ "name": "setup",
+ "summary": "Sets\u0020up\u0020ssl\u0020related\u0020options\u0020for\u0020the\u0020stream\u0020context",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_setup"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003Asend\u0028\u0029",
+ "name": "send",
+ "summary": "Sends\u0020an\u0020HTTP\u0020request",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_send"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AformatHeaders\u0028\u0029",
+ "name": "formatHeaders",
+ "summary": "Converts\u0020unformatted\u0020headers\u0020to\u0020an\u0020array\u0020of\u0020headers",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_formatHeaders"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AgetStatusCodeFromHeader\u0028\u0029",
+ "name": "getStatusCodeFromHeader",
+ "summary": "Extracts\u0020the\u0020Http\u0020status\u0020code\u0020from\u0020the\u0020given\u0020header",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_getStatusCodeFromHeader"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AgetErrorCode\u0028\u0029",
+ "name": "getErrorCode",
+ "summary": "Gets\u0020the\u0020error\u0020code",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_getErrorCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AgetErrorMessage\u0028\u0029",
+ "name": "getErrorMessage",
+ "summary": "Gets\u0020the\u0020error\u0020message",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_getErrorMessage"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AsetConnectionTimeout\u0028\u0029",
+ "name": "setConnectionTimeout",
+ "summary": "Sets\u0020a\u0020connection\u0020timeout.\u0020UNUSED\u0020in\u0020the\u0020stream\u0020client.",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_setConnectionTimeout"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AsetCAFile\u0028\u0029",
+ "name": "setCAFile",
+ "summary": "Sets\u0020the\u0020CA\u0020file\u0020to\u0020validate\u0020requests\u0020with",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_setCAFile"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AsetHttpOptions\u0028\u0029",
+ "name": "setHttpOptions",
+ "summary": "Sets\u0020http\u0020options\u0020to\u0020pass\u0020to\u0020the\u0020stream\u0020context\nhttps\u003A\/\/www.php.net\/manual\/en\/context.php",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_setHttpOptions"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003AsetTimeout\u0028\u0029",
+ "name": "setTimeout",
+ "summary": "Sets\u0020the\u0020request\u0020timeout",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#method_setTimeout"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024parseStream",
+ "name": "parseStream",
+ "summary": "Stream\u0020handle",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_parseStream"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024headers",
+ "name": "headers",
+ "summary": "Request\u0020Headers",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_headers"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024responseHeaders",
+ "name": "responseHeaders",
+ "summary": "Response\u0020headers",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_responseHeaders"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024responseCode",
+ "name": "responseCode",
+ "summary": "Response\u0020code",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_responseCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024responseContentType",
+ "name": "responseContentType",
+ "summary": "Content\u0020type\u0020of\u0020our\u0020response",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_responseContentType"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024streamErrorCode",
+ "name": "streamErrorCode",
+ "summary": "Stream\u0020error\u0020code",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_streamErrorCode"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024streamErrorMessage",
+ "name": "streamErrorMessage",
+ "summary": "Stream\u0020error\u0020message",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_streamErrorMessage"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024options",
+ "name": "options",
+ "summary": "Options\u0020to\u0020pass\u0020to\u0020our\u0020stream",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_options"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024caFile",
+ "name": "caFile",
+ "summary": "Optional\u0020CA\u0020file\u0020to\u0020verify\u0020our\u0020peers\u0020with",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_caFile"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024httpOptions",
+ "name": "httpOptions",
+ "summary": "Options\u0020to\u0020pass\u0020to\u0020the\u0020stream\u0020context.",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_httpOptions"
+ }, {
+ "fqsen": "\\Parse\\HttpClients\\ParseStreamHttpClient\u003A\u003A\u0024timeout",
+ "name": "timeout",
+ "summary": "Optional\u0020timeout\u0020for\u0020this\u0020request",
+ "url": "classes/Parse-HttpClients-ParseStreamHttpClient.html#property_timeout"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddOperation",
+ "name": "AddOperation",
+ "summary": "Class\u0020AddOperation\u0020\u002D\u0020FieldOperation\u0020for\u0020adding\u0020object\u0028s\u0029\u0020to\u0020array\u0020fields.",
+ "url": "classes/Parse-Internal-AddOperation.html"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddOperation\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Creates\u0020an\u0020AddOperation\u0020with\u0020the\u0020provided\u0020objects.",
+ "url": "classes/Parse-Internal-AddOperation.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddOperation\u003A\u003AgetValue\u0028\u0029",
+ "name": "getValue",
+ "summary": "Gets\u0020the\u0020objects\u0020for\u0020this\u0020operation.",
+ "url": "classes/Parse-Internal-AddOperation.html#method_getValue"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddOperation\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Returns\u0020associative\u0020array\u0020representing\u0020encoded\u0020operation.",
+ "url": "classes/Parse-Internal-AddOperation.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddOperation\u003A\u003A_mergeWithPrevious\u0028\u0029",
+ "name": "_mergeWithPrevious",
+ "summary": "Takes\u0020a\u0020previous\u0020operation\u0020and\u0020returns\u0020a\u0020merged\u0020operation\u0020to\u0020replace\u0020it.",
+ "url": "classes/Parse-Internal-AddOperation.html#method__mergeWithPrevious"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddOperation\u003A\u003A_apply\u0028\u0029",
+ "name": "_apply",
+ "summary": "Applies\u0020current\u0020operation,\u0020returns\u0020resulting\u0020value.",
+ "url": "classes/Parse-Internal-AddOperation.html#method__apply"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddOperation\u003A\u003A\u0024objects",
+ "name": "objects",
+ "summary": "Array\u0020with\u0020objects\u0020to\u0020add.",
+ "url": "classes/Parse-Internal-AddOperation.html#property_objects"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddUniqueOperation",
+ "name": "AddUniqueOperation",
+ "summary": "Class\u0020AddUniqueOperation\u0020\u002D\u0020Operation\u0020to\u0020add\u0020unique\u0020objects\u0020to\u0020an\u0020array\u0020key.",
+ "url": "classes/Parse-Internal-AddUniqueOperation.html"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddUniqueOperation\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Creates\u0020an\u0020operation\u0020for\u0020adding\u0020unique\u0020values\u0020to\u0020an\u0020array\u0020key.",
+ "url": "classes/Parse-Internal-AddUniqueOperation.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddUniqueOperation\u003A\u003AgetValue\u0028\u0029",
+ "name": "getValue",
+ "summary": "Returns\u0020the\u0020values\u0020for\u0020this\u0020operation.",
+ "url": "classes/Parse-Internal-AddUniqueOperation.html#method_getValue"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddUniqueOperation\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Returns\u0020an\u0020associative\u0020array\u0020encoding\u0020of\u0020this\u0020operation.",
+ "url": "classes/Parse-Internal-AddUniqueOperation.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddUniqueOperation\u003A\u003A_mergeWithPrevious\u0028\u0029",
+ "name": "_mergeWithPrevious",
+ "summary": "Merge\u0020this\u0020operation\u0020with\u0020the\u0020previous\u0020operation\u0020and\u0020return\u0020the\u0020result.",
+ "url": "classes/Parse-Internal-AddUniqueOperation.html#method__mergeWithPrevious"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddUniqueOperation\u003A\u003A_apply\u0028\u0029",
+ "name": "_apply",
+ "summary": "Apply\u0020the\u0020current\u0020operation\u0020and\u0020return\u0020the\u0020result.",
+ "url": "classes/Parse-Internal-AddUniqueOperation.html#method__apply"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddUniqueOperation\u003A\u003AisParseObjectInArray\u0028\u0029",
+ "name": "isParseObjectInArray",
+ "summary": "Checks\u0020if\u0020a\u0020parse\u0020object\u0020is\u0020contained\u0020in\u0020a\u0020given\u0020array\u0020of\u0020values",
+ "url": "classes/Parse-Internal-AddUniqueOperation.html#method_isParseObjectInArray"
+ }, {
+ "fqsen": "\\Parse\\Internal\\AddUniqueOperation\u003A\u003A\u0024objects",
+ "name": "objects",
+ "summary": "Array\u0020containing\u0020objects\u0020to\u0020add.",
+ "url": "classes/Parse-Internal-AddUniqueOperation.html#property_objects"
+ }, {
+ "fqsen": "\\Parse\\Internal\\DeleteOperation",
+ "name": "DeleteOperation",
+ "summary": "Class\u0020DeleteOperation\u0020\u002D\u0020FieldOperation\u0020to\u0020remove\u0020a\u0020key\u0020from\u0020an\u0020object.",
+ "url": "classes/Parse-Internal-DeleteOperation.html"
+ }, {
+ "fqsen": "\\Parse\\Internal\\DeleteOperation\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Returns\u0020an\u0020associative\u0020array\u0020encoding\u0020of\u0020the\u0020current\u0020operation.",
+ "url": "classes/Parse-Internal-DeleteOperation.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\Internal\\DeleteOperation\u003A\u003A_apply\u0028\u0029",
+ "name": "_apply",
+ "summary": "Applies\u0020the\u0020current\u0020operation\u0020and\u0020returns\u0020the\u0020result.",
+ "url": "classes/Parse-Internal-DeleteOperation.html#method__apply"
+ }, {
+ "fqsen": "\\Parse\\Internal\\DeleteOperation\u003A\u003A_mergeWithPrevious\u0028\u0029",
+ "name": "_mergeWithPrevious",
+ "summary": "Merge\u0020this\u0020operation\u0020with\u0020a\u0020previous\u0020operation\u0020and\u0020return\u0020the\u0020result.",
+ "url": "classes/Parse-Internal-DeleteOperation.html#method__mergeWithPrevious"
+ }, {
+ "fqsen": "\\Parse\\Internal\\Encodable",
+ "name": "Encodable",
+ "summary": "Class\u0020Encodable\u0020\u002D\u0020Interface\u0020for\u0020Parse\u0020Classes\u0020which\u0020provide\u0020an\u0020encode\nmethod.",
+ "url": "classes/Parse-Internal-Encodable.html"
+ }, {
+ "fqsen": "\\Parse\\Internal\\Encodable\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Returns\u0020an\u0020associate\u0020array\u0020encoding\u0020of\u0020the\u0020implementing\u0020class.",
+ "url": "classes/Parse-Internal-Encodable.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\Internal\\FieldOperation",
+ "name": "FieldOperation",
+ "summary": "Class\u0020FieldOperation\u0020\u002D\u0020Interface\u0020for\u0020all\u0020Parse\u0020Field\u0020Operations.",
+ "url": "classes/Parse-Internal-FieldOperation.html"
+ }, {
+ "fqsen": "\\Parse\\Internal\\FieldOperation\u003A\u003A_apply\u0028\u0029",
+ "name": "_apply",
+ "summary": "Applies\u0020the\u0020current\u0020operation\u0020and\u0020returns\u0020the\u0020result.",
+ "url": "classes/Parse-Internal-FieldOperation.html#method__apply"
+ }, {
+ "fqsen": "\\Parse\\Internal\\FieldOperation\u003A\u003A_mergeWithPrevious\u0028\u0029",
+ "name": "_mergeWithPrevious",
+ "summary": "Merge\u0020this\u0020operation\u0020with\u0020a\u0020previous\u0020operation\u0020and\u0020return\u0020the\u0020new\noperation.",
+ "url": "classes/Parse-Internal-FieldOperation.html#method__mergeWithPrevious"
+ }, {
+ "fqsen": "\\Parse\\Internal\\IncrementOperation",
+ "name": "IncrementOperation",
+ "summary": "Class\u0020IncrementOperation\u0020\u002D\u0020Operation\u0020to\u0020increment\u0020numeric\u0020object\u0020key.",
+ "url": "classes/Parse-Internal-IncrementOperation.html"
+ }, {
+ "fqsen": "\\Parse\\Internal\\IncrementOperation\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Creates\u0020an\u0020IncrementOperation\u0020object.",
+ "url": "classes/Parse-Internal-IncrementOperation.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\Internal\\IncrementOperation\u003A\u003AgetValue\u0028\u0029",
+ "name": "getValue",
+ "summary": "Get\u0020the\u0020value\u0020for\u0020this\u0020operation.",
+ "url": "classes/Parse-Internal-IncrementOperation.html#method_getValue"
+ }, {
+ "fqsen": "\\Parse\\Internal\\IncrementOperation\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Get\u0020an\u0020associative\u0020array\u0020encoding\u0020for\u0020this\u0020operation.",
+ "url": "classes/Parse-Internal-IncrementOperation.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\Internal\\IncrementOperation\u003A\u003A_apply\u0028\u0029",
+ "name": "_apply",
+ "summary": "Apply\u0020the\u0020current\u0020operation\u0020and\u0020return\u0020the\u0020result.",
+ "url": "classes/Parse-Internal-IncrementOperation.html#method__apply"
+ }, {
+ "fqsen": "\\Parse\\Internal\\IncrementOperation\u003A\u003A_mergeWithPrevious\u0028\u0029",
+ "name": "_mergeWithPrevious",
+ "summary": "Merge\u0020this\u0020operation\u0020with\u0020a\u0020previous\u0020operation\u0020and\u0020return\u0020the\nresulting\u0020operation.",
+ "url": "classes/Parse-Internal-IncrementOperation.html#method__mergeWithPrevious"
+ }, {
+ "fqsen": "\\Parse\\Internal\\IncrementOperation\u003A\u003A\u0024value",
+ "name": "value",
+ "summary": "Amount\u0020to\u0020increment\u0020by.",
+ "url": "classes/Parse-Internal-IncrementOperation.html#property_value"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation",
+ "name": "ParseRelationOperation",
+ "summary": "Class\u0020ParseRelationOperation\u0020\u002D\u0020A\u0020class\u0020that\u0020is\u0020used\u0020to\u0020manage\u0020ParseRelation\u0020changes\u0020such\u0020as\u0020object\u0020add\u0020or\u0020remove.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "ParseRelationOperation\u0020constructor.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003AcheckAndAssignClassName\u0028\u0029",
+ "name": "checkAndAssignClassName",
+ "summary": "Helper\u0020function\u0020to\u0020check\u0020that\u0020all\u0020passed\u0020ParseObjects\u0020have\u0020same\u0020class\u0020name\nand\u0020assign\u0020targetClassName\u0020variable.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#method_checkAndAssignClassName"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003AaddObjects\u0028\u0029",
+ "name": "addObjects",
+ "summary": "Adds\u0020an\u0020object\u0020or\u0020array\u0020of\u0020objects\u0020to\u0020the\u0020array,\u0020replacing\u0020any\nexisting\u0020instance\u0020of\u0020the\u0020same\u0020object.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#method_addObjects"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003AremoveObjects\u0028\u0029",
+ "name": "removeObjects",
+ "summary": "Removes\u0020an\u0020object\u0020\u0028and\u0020any\u0020duplicate\u0020instances\u0020of\u0020that\u0020object\u0029\u0020from\u0020the\u0020array.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#method_removeObjects"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003A_apply\u0028\u0029",
+ "name": "_apply",
+ "summary": "Applies\u0020the\u0020current\u0020operation\u0020and\u0020returns\u0020the\u0020result.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#method__apply"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003A_mergeWithPrevious\u0028\u0029",
+ "name": "_mergeWithPrevious",
+ "summary": "Merge\u0020this\u0020operation\u0020with\u0020a\u0020previous\u0020operation\u0020and\u0020return\u0020the\u0020new\noperation.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#method__mergeWithPrevious"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Returns\u0020an\u0020associative\u0020array\u0020encoding\u0020of\u0020the\u0020current\u0020operation.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003A_getTargetClass\u0028\u0029",
+ "name": "_getTargetClass",
+ "summary": "Gets\u0020the\u0020className\u0020of\u0020the\u0020target\u0020objects.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#method__getTargetClass"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003AremoveElementsFromArray\u0028\u0029",
+ "name": "removeElementsFromArray",
+ "summary": "Remove\u0020element\u0020or\u0020array\u0020of\u0020elements\u0020from\u0020one\u0020dimensional\u0020array.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#method_removeElementsFromArray"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003AconvertToOneDimensionalArray\u0028\u0029",
+ "name": "convertToOneDimensionalArray",
+ "summary": "Convert\u0020any\u0020array\u0020to\u0020one\u0020dimensional\u0020array.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#method_convertToOneDimensionalArray"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003A\u0024targetClassName",
+ "name": "targetClassName",
+ "summary": "The\u0020className\u0020of\u0020the\u0020target\u0020objects.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#property_targetClassName"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003A\u0024relationsToAdd",
+ "name": "relationsToAdd",
+ "summary": "Array\u0020of\u0020objects\u0020to\u0020add\u0020to\u0020this\u0020relation.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#property_relationsToAdd"
+ }, {
+ "fqsen": "\\Parse\\Internal\\ParseRelationOperation\u003A\u003A\u0024relationsToRemove",
+ "name": "relationsToRemove",
+ "summary": "Array\u0020of\u0020objects\u0020to\u0020remove\u0020from\u0020this\u0020relation.",
+ "url": "classes/Parse-Internal-ParseRelationOperation.html#property_relationsToRemove"
+ }, {
+ "fqsen": "\\Parse\\Internal\\RemoveOperation",
+ "name": "RemoveOperation",
+ "summary": "Class\u0020RemoveOperation\u0020\u002D\u0020FieldOperation\u0020for\u0020removing\u0020object\u0028s\u0029\u0020from\u0020array\nfields.",
+ "url": "classes/Parse-Internal-RemoveOperation.html"
+ }, {
+ "fqsen": "\\Parse\\Internal\\RemoveOperation\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Creates\u0020an\u0020RemoveOperation\u0020with\u0020the\u0020provided\u0020objects.",
+ "url": "classes/Parse-Internal-RemoveOperation.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\Internal\\RemoveOperation\u003A\u003AgetValue\u0028\u0029",
+ "name": "getValue",
+ "summary": "Gets\u0020the\u0020objects\u0020for\u0020this\u0020operation.",
+ "url": "classes/Parse-Internal-RemoveOperation.html#method_getValue"
+ }, {
+ "fqsen": "\\Parse\\Internal\\RemoveOperation\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Returns\u0020associative\u0020array\u0020representing\u0020encoded\u0020operation.",
+ "url": "classes/Parse-Internal-RemoveOperation.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\Internal\\RemoveOperation\u003A\u003A_mergeWithPrevious\u0028\u0029",
+ "name": "_mergeWithPrevious",
+ "summary": "Takes\u0020a\u0020previous\u0020operation\u0020and\u0020returns\u0020a\u0020merged\u0020operation\u0020to\u0020replace\u0020it.",
+ "url": "classes/Parse-Internal-RemoveOperation.html#method__mergeWithPrevious"
+ }, {
+ "fqsen": "\\Parse\\Internal\\RemoveOperation\u003A\u003A_apply\u0028\u0029",
+ "name": "_apply",
+ "summary": "Applies\u0020current\u0020operation,\u0020returns\u0020resulting\u0020value.",
+ "url": "classes/Parse-Internal-RemoveOperation.html#method__apply"
+ }, {
+ "fqsen": "\\Parse\\Internal\\RemoveOperation\u003A\u003A\u0024objects",
+ "name": "objects",
+ "summary": "Array\u0020with\u0020objects\u0020to\u0020remove.",
+ "url": "classes/Parse-Internal-RemoveOperation.html#property_objects"
+ }, {
+ "fqsen": "\\Parse\\Internal\\SetOperation",
+ "name": "SetOperation",
+ "summary": "Class\u0020SetOperation\u0020\u002D\u0020Operation\u0020to\u0020set\u0020a\u0020value\u0020for\u0020an\u0020object\u0020key.",
+ "url": "classes/Parse-Internal-SetOperation.html"
+ }, {
+ "fqsen": "\\Parse\\Internal\\SetOperation\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Create\u0020a\u0020SetOperation\u0020with\u0020a\u0020value.",
+ "url": "classes/Parse-Internal-SetOperation.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\Internal\\SetOperation\u003A\u003AgetValue\u0028\u0029",
+ "name": "getValue",
+ "summary": "Get\u0020the\u0020value\u0020for\u0020this\u0020operation.",
+ "url": "classes/Parse-Internal-SetOperation.html#method_getValue"
+ }, {
+ "fqsen": "\\Parse\\Internal\\SetOperation\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Returns\u0020an\u0020associative\u0020array\u0020encoding\u0020of\u0020the\u0020current\u0020operation.",
+ "url": "classes/Parse-Internal-SetOperation.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\Internal\\SetOperation\u003A\u003A_apply\u0028\u0029",
+ "name": "_apply",
+ "summary": "Apply\u0020the\u0020current\u0020operation\u0020and\u0020return\u0020the\u0020result.",
+ "url": "classes/Parse-Internal-SetOperation.html#method__apply"
+ }, {
+ "fqsen": "\\Parse\\Internal\\SetOperation\u003A\u003A_mergeWithPrevious\u0028\u0029",
+ "name": "_mergeWithPrevious",
+ "summary": "Merge\u0020this\u0020operation\u0020with\u0020a\u0020previous\u0020operation\u0020and\u0020return\u0020the\nresulting\u0020operation.",
+ "url": "classes/Parse-Internal-SetOperation.html#method__mergeWithPrevious"
+ }, {
+ "fqsen": "\\Parse\\Internal\\SetOperation\u003A\u003A\u0024value",
+ "name": "value",
+ "summary": "Value\u0020to\u0020set\u0020for\u0020this\u0020operation.",
+ "url": "classes/Parse-Internal-SetOperation.html#property_value"
+ }, {
+ "fqsen": "\\Parse\\Internal\\SetOperation\u003A\u003A\u0024isAssociativeArray",
+ "name": "isAssociativeArray",
+ "summary": "If\u0020the\u0020value\u0020should\u0020be\u0020forced\u0020as\u0020object.",
+ "url": "classes/Parse-Internal-SetOperation.html#property_isAssociativeArray"
+ }, {
+ "fqsen": "\\Parse\\ParseACL",
+ "name": "ParseACL",
+ "summary": "Class\u0020ParseACL\u0020\u002D\u0020is\u0020used\u0020to\u0020control\u0020which\u0020users\u0020can\u0020access\u0020or\u0020modify\u0020a\u0020particular\nobject.\u0020Each\u0020ParseObject\u0020can\u0020have\u0020its\u0020own\u0020ParseACL.\u0020You\u0020can\u0020grant\u0020read\u0020and\nwrite\u0020permissions\u0020separately\u0020to\u0020specific\u0020users,\u0020to\u0020groups\u0020of\u0020users\u0020that\nbelong\u0020to\u0020roles,\u0020or\u0020you\u0020can\u0020grant\u0020permissions\u0020to\u0020\u0022the\u0020public\u0022\u0020so\u0020that,\u0020for\nexample,\u0020any\u0020user\u0020could\u0020read\u0020a\u0020particular\u0020object\u0020but\u0020only\u0020a\u0020particular\u0020set\nof\u0020users\u0020could\u0020write\u0020to\u0020that\u0020object.",
+ "url": "classes/Parse-ParseACL.html"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AcreateACLWithUser\u0028\u0029",
+ "name": "createACLWithUser",
+ "summary": "Create\u0020new\u0020ParseACL\u0020with\u0020read\u0020and\u0020write\u0020access\u0020for\u0020the\u0020given\u0020user.",
+ "url": "classes/Parse-ParseACL.html#method_createACLWithUser"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A_createACLFromJSON\u0028\u0029",
+ "name": "_createACLFromJSON",
+ "summary": "Create\u0020new\u0020ParseACL\u0020from\u0020existing\u0020permissions.",
+ "url": "classes/Parse-ParseACL.html#method__createACLFromJSON"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A_isShared\u0028\u0029",
+ "name": "_isShared",
+ "summary": "Return\u0020if\u0020ParseACL\u0020shared\u0020or\u0020not.",
+ "url": "classes/Parse-ParseACL.html#method__isShared"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A_setShared\u0028\u0029",
+ "name": "_setShared",
+ "summary": "Set\u0020shared\u0020for\u0020ParseACL.",
+ "url": "classes/Parse-ParseACL.html#method__setShared"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Returns\u0020an\u0020associate\u0020array\u0020encoding\u0020of\u0020this\u0020ParseACL\u0020instance.",
+ "url": "classes/Parse-ParseACL.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetAccess\u0028\u0029",
+ "name": "setAccess",
+ "summary": "Set\u0020access\u0020permission\u0020with\u0020access\u0020name,\u0020user\u0020id\u0020and\u0020if\nthe\u0020user\u0020has\u0020permission\u0020for\u0020accessing\u0020or\u0020not.",
+ "url": "classes/Parse-ParseACL.html#method_setAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetAccess\u0028\u0029",
+ "name": "getAccess",
+ "summary": "Get\u0020if\u0020the\u0020given\u0020userId\u0020has\u0020a\u0020permission\u0020for\u0020the\u0020given\u0020access\u0020type\u0020or\u0020not.",
+ "url": "classes/Parse-ParseACL.html#method_getAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetReadAccess\u0028\u0029",
+ "name": "setReadAccess",
+ "summary": "Set\u0020whether\u0020the\u0020given\u0020user\u0020id\u0020is\u0020allowed\u0020to\u0020read\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_setReadAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetReadAccess\u0028\u0029",
+ "name": "getReadAccess",
+ "summary": "Get\u0020whether\u0020the\u0020given\u0020user\u0020id\u0020is\u0020\u002Aexplicitly\u002A\u0020allowed\u0020to\u0020read\u0020this\nobject.\u0020Even\u0020if\u0020this\u0020returns\u0020false,\u0020the\u0020user\u0020may\u0020still\u0020be\u0020able\u0020to\naccess\u0020it\u0020if\u0020getPublicReadAccess\u0020returns\u0020true\u0020or\u0020a\u0020role\u0020that\u0020the\nuser\u0020belongs\u0020to\u0020has\u0020read\u0020access.",
+ "url": "classes/Parse-ParseACL.html#method_getReadAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetWriteAccess\u0028\u0029",
+ "name": "setWriteAccess",
+ "summary": "Set\u0020whether\u0020the\u0020given\u0020user\u0020id\u0020is\u0020allowed\u0020to\u0020write\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_setWriteAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetWriteAccess\u0028\u0029",
+ "name": "getWriteAccess",
+ "summary": "Get\u0020whether\u0020the\u0020given\u0020user\u0020id\u0020is\u0020\u002Aexplicitly\u002A\u0020allowed\u0020to\u0020write\u0020this\nobject.\u0020Even\u0020if\u0020this\u0020returns\u0020false,\u0020the\u0020user\u0020may\u0020still\u0020be\u0020able\u0020to\naccess\u0020it\u0020if\u0020getPublicWriteAccess\u0020returns\u0020true\u0020or\u0020a\u0020role\u0020that\u0020the\nuser\u0020belongs\u0020to\u0020has\u0020write\u0020access.",
+ "url": "classes/Parse-ParseACL.html#method_getWriteAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetPublicReadAccess\u0028\u0029",
+ "name": "setPublicReadAccess",
+ "summary": "Set\u0020whether\u0020the\u0020public\u0020is\u0020allowed\u0020to\u0020read\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_setPublicReadAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetPublicReadAccess\u0028\u0029",
+ "name": "getPublicReadAccess",
+ "summary": "Get\u0020whether\u0020the\u0020public\u0020is\u0020allowed\u0020to\u0020read\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_getPublicReadAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetPublicWriteAccess\u0028\u0029",
+ "name": "setPublicWriteAccess",
+ "summary": "Set\u0020whether\u0020the\u0020public\u0020is\u0020allowed\u0020to\u0020write\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_setPublicWriteAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetPublicWriteAccess\u0028\u0029",
+ "name": "getPublicWriteAccess",
+ "summary": "Get\u0020whether\u0020the\u0020public\u0020is\u0020allowed\u0020to\u0020write\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_getPublicWriteAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetUserReadAccess\u0028\u0029",
+ "name": "setUserReadAccess",
+ "summary": "Set\u0020whether\u0020the\u0020given\u0020user\u0020is\u0020allowed\u0020to\u0020read\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_setUserReadAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetUserReadAccess\u0028\u0029",
+ "name": "getUserReadAccess",
+ "summary": "Get\u0020whether\u0020the\u0020given\u0020user\u0020is\u0020\u002Aexplicitly\u002A\u0020allowed\u0020to\u0020read\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_getUserReadAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetUserWriteAccess\u0028\u0029",
+ "name": "setUserWriteAccess",
+ "summary": "Set\u0020whether\u0020the\u0020given\u0020user\u0020is\u0020allowed\u0020to\u0020write\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_setUserWriteAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetUserWriteAccess\u0028\u0029",
+ "name": "getUserWriteAccess",
+ "summary": "Get\u0020whether\u0020the\u0020given\u0020user\u0020is\u0020\u002Aexplicitly\u002A\u0020allowed\u0020to\u0020write\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_getUserWriteAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetRoleReadAccessWithName\u0028\u0029",
+ "name": "getRoleReadAccessWithName",
+ "summary": "Get\u0020whether\u0020users\u0020belonging\u0020to\u0020the\u0020role\u0020with\u0020the\u0020given\u0020roleName\u0020are\nallowed\u0020to\u0020read\u0020this\u0020object.\u0020Even\u0020if\u0020this\u0020returns\u0020false,\u0020the\u0020role\u0020may\nstill\u0020be\u0020able\u0020to\u0020read\u0020it\u0020if\u0020a\u0020parent\u0020role\u0020has\u0020read\u0020access.",
+ "url": "classes/Parse-ParseACL.html#method_getRoleReadAccessWithName"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetRoleReadAccessWithName\u0028\u0029",
+ "name": "setRoleReadAccessWithName",
+ "summary": "Set\u0020whether\u0020users\u0020belonging\u0020to\u0020the\u0020role\u0020with\u0020the\u0020given\u0020roleName\nare\u0020allowed\u0020to\u0020read\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_setRoleReadAccessWithName"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetRoleWriteAccessWithName\u0028\u0029",
+ "name": "getRoleWriteAccessWithName",
+ "summary": "Get\u0020whether\u0020users\u0020belonging\u0020to\u0020the\u0020role\u0020with\u0020the\u0020given\u0020roleName\u0020are\nallowed\u0020to\u0020write\u0020this\u0020object.\u0020Even\u0020if\u0020this\u0020returns\u0020false,\u0020the\u0020role\u0020may\nstill\u0020be\u0020able\u0020to\u0020write\u0020it\u0020if\u0020a\u0020parent\u0020role\u0020has\u0020write\u0020access.",
+ "url": "classes/Parse-ParseACL.html#method_getRoleWriteAccessWithName"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetRoleWriteAccessWithName\u0028\u0029",
+ "name": "setRoleWriteAccessWithName",
+ "summary": "Set\u0020whether\u0020users\u0020belonging\u0020to\u0020the\u0020role\u0020with\u0020the\u0020given\u0020roleName\nare\u0020allowed\u0020to\u0020write\u0020this\u0020object.",
+ "url": "classes/Parse-ParseACL.html#method_setRoleWriteAccessWithName"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AvalidateRoleState\u0028\u0029",
+ "name": "validateRoleState",
+ "summary": "Check\u0020whether\u0020the\u0020role\u0020is\u0020valid\u0020or\u0020not.",
+ "url": "classes/Parse-ParseACL.html#method_validateRoleState"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetRoleReadAccess\u0028\u0029",
+ "name": "getRoleReadAccess",
+ "summary": "Get\u0020whether\u0020users\u0020belonging\u0020to\u0020the\u0020given\u0020role\u0020are\u0020allowed\u0020to\u0020read\u0020this\nobject.\u0020Even\u0020if\u0020this\u0020returns\u0020false,\u0020the\u0020role\u0020may\u0020still\u0020be\u0020able\u0020to\u0020read\nit\u0020if\u0020a\u0020parent\u0020role\u0020has\u0020read\u0020access.\u0020The\u0020role\u0020must\u0020already\u0020be\u0020saved\u0020on\nthe\u0020server\u0020and\u0020its\u0020data\u0020must\u0020have\u0020been\u0020fetched\u0020in\u0020order\u0020to\u0020use\u0020this\u0020method.",
+ "url": "classes/Parse-ParseACL.html#method_getRoleReadAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetRoleReadAccess\u0028\u0029",
+ "name": "setRoleReadAccess",
+ "summary": "Set\u0020whether\u0020users\u0020belonging\u0020to\u0020the\u0020given\u0020role\u0020are\u0020allowed\u0020to\u0020read\u0020this\nobject.\u0020The\u0020role\u0020must\u0020already\u0020be\u0020saved\u0020on\u0020the\u0020server\u0020and\u0020its\u0020data\u0020must\nhave\u0020been\u0020fetched\u0020in\u0020order\u0020to\u0020use\u0020this\u0020method.",
+ "url": "classes/Parse-ParseACL.html#method_setRoleReadAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AgetRoleWriteAccess\u0028\u0029",
+ "name": "getRoleWriteAccess",
+ "summary": "Get\u0020whether\u0020users\u0020belonging\u0020to\u0020the\u0020given\u0020role\u0020are\u0020allowed\u0020to\u0020write\u0020this\nobject.\u0020Even\u0020if\u0020this\u0020returns\u0020false,\u0020the\u0020role\u0020may\u0020still\u0020be\u0020able\u0020to\u0020write\nit\u0020if\u0020a\u0020parent\u0020role\u0020has\u0020write\u0020access.\u0020The\u0020role\u0020must\u0020already\u0020be\u0020saved\u0020on\nthe\u0020server\u0020and\u0020its\u0020data\u0020must\u0020have\u0020been\u0020fetched\u0020in\u0020order\u0020to\u0020use\u0020this\u0020method.",
+ "url": "classes/Parse-ParseACL.html#method_getRoleWriteAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetRoleWriteAccess\u0028\u0029",
+ "name": "setRoleWriteAccess",
+ "summary": "Set\u0020whether\u0020users\u0020belonging\u0020to\u0020the\u0020given\u0020role\u0020are\u0020allowed\u0020to\u0020write\u0020this\nobject.\u0020The\u0020role\u0020must\u0020already\u0020be\u0020saved\u0020on\u0020the\u0020server\u0020and\u0020its\u0020data\u0020must\nhave\u0020been\u0020fetched\u0020in\u0020order\u0020to\u0020use\u0020this\u0020method.",
+ "url": "classes/Parse-ParseACL.html#method_setRoleWriteAccess"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003AsetDefaultACL\u0028\u0029",
+ "name": "setDefaultACL",
+ "summary": "Sets\u0020a\u0020default\u0020ACL\u0020that\u0020will\u0020be\u0020applied\u0020to\u0020all\u0020ParseObjects\u0020when\u0020they\nare\u0020created.",
+ "url": "classes/Parse-ParseACL.html#method_setDefaultACL"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A_getDefaultACL\u0028\u0029",
+ "name": "_getDefaultACL",
+ "summary": "Get\u0020the\u0020defaultACL.",
+ "url": "classes/Parse-ParseACL.html#method__getDefaultACL"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003APUBLIC_KEY",
+ "name": "PUBLIC_KEY",
+ "summary": "",
+ "url": "classes/Parse-ParseACL.html#constant_PUBLIC_KEY"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A\u0024permissionsById",
+ "name": "permissionsById",
+ "summary": "Array\u0020of\u0020permissions\u0020by\u0020id",
+ "url": "classes/Parse-ParseACL.html#property_permissionsById"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A\u0024shared",
+ "name": "shared",
+ "summary": "Whether\u0020this\u0020ACL\u0020is\u0020shared",
+ "url": "classes/Parse-ParseACL.html#property_shared"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A\u0024lastCurrentUser",
+ "name": "lastCurrentUser",
+ "summary": "The\u0020last\u0020known\u0020current\u0020user",
+ "url": "classes/Parse-ParseACL.html#property_lastCurrentUser"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A\u0024defaultACLWithCurrentUser",
+ "name": "defaultACLWithCurrentUser",
+ "summary": "An\u0020ACL\u0020with\u0020defaults\u0020set\u0020with\u0020the\u0020current\u0020user",
+ "url": "classes/Parse-ParseACL.html#property_defaultACLWithCurrentUser"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A\u0024defaultACL",
+ "name": "defaultACL",
+ "summary": "An\u0020ACL\u0020with\u0020defaults\u0020set",
+ "url": "classes/Parse-ParseACL.html#property_defaultACL"
+ }, {
+ "fqsen": "\\Parse\\ParseACL\u003A\u003A\u0024defaultACLUsesCurrentUser",
+ "name": "defaultACLUsesCurrentUser",
+ "summary": "Whether\u0020the\u0020default\u0020acl\u0020uses\u0020the\u0020current\u0020user\u0020or\u0020not",
+ "url": "classes/Parse-ParseACL.html#property_defaultACLUsesCurrentUser"
+ }, {
+ "fqsen": "\\Parse\\ParseAggregateException",
+ "name": "ParseAggregateException",
+ "summary": "Class\u0020ParseAggregateException\u0020\u002D\u0020Multiple\u0020error\u0020condition.",
+ "url": "classes/Parse-ParseAggregateException.html"
+ }, {
+ "fqsen": "\\Parse\\ParseAggregateException\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Constructs\u0020a\u0020Parse\\ParseAggregateException.",
+ "url": "classes/Parse-ParseAggregateException.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\ParseAggregateException\u003A\u003AgetErrors\u0028\u0029",
+ "name": "getErrors",
+ "summary": "Return\u0020the\u0020aggregated\u0020errors\u0020that\u0020were\u0020thrown.",
+ "url": "classes/Parse-ParseAggregateException.html#method_getErrors"
+ }, {
+ "fqsen": "\\Parse\\ParseAggregateException\u003A\u003A\u0024errors",
+ "name": "errors",
+ "summary": "Collection\u0020of\u0020error\u0020values",
+ "url": "classes/Parse-ParseAggregateException.html#property_errors"
+ }, {
+ "fqsen": "\\Parse\\ParseAnalytics",
+ "name": "ParseAnalytics",
+ "summary": "Class\u0020ParseAnalytics\u0020\u002D\u0020Handles\u0020sending\u0020app\u002Dopen\u0020and\u0020custom\u0020analytics\u0020events.",
+ "url": "classes/Parse-ParseAnalytics.html"
+ }, {
+ "fqsen": "\\Parse\\ParseAnalytics\u003A\u003Atrack\u0028\u0029",
+ "name": "track",
+ "summary": "Tracks\u0020the\u0020occurrence\u0020of\u0020a\u0020custom\u0020event\u0020with\u0020additional\u0020dimensions.",
+ "url": "classes/Parse-ParseAnalytics.html#method_track"
+ }, {
+ "fqsen": "\\Parse\\ParseAnalytics\u003A\u003A_toSaveJSON\u0028\u0029",
+ "name": "_toSaveJSON",
+ "summary": "Encodes\u0020and\u0020returns\u0020the\u0020given\u0020data\u0020as\u0020a\u0020json\u0020object",
+ "url": "classes/Parse-ParseAnalytics.html#method__toSaveJSON"
+ }, {
+ "fqsen": "\\Parse\\ParseAudience",
+ "name": "ParseAudience",
+ "summary": "Class\u0020ParseAudience\u0020\u002D\u0020Representation\u0020of\u0020Audience\u0020for\u0020tracking\u0020and\u0020sending\u0020push\u0020notifications",
+ "url": "classes/Parse-ParseAudience.html"
+ }, {
+ "fqsen": "\\Parse\\ParseAudience\u003A\u003AcreateAudience\u0028\u0029",
+ "name": "createAudience",
+ "summary": "Create\u0020a\u0020new\u0020audience\u0020with\u0020name\u0020\u0026\u0020query",
+ "url": "classes/Parse-ParseAudience.html#method_createAudience"
+ }, {
+ "fqsen": "\\Parse\\ParseAudience\u003A\u003AsetName\u0028\u0029",
+ "name": "setName",
+ "summary": "Sets\u0020the\u0020name\u0020of\u0020this\u0020audience",
+ "url": "classes/Parse-ParseAudience.html#method_setName"
+ }, {
+ "fqsen": "\\Parse\\ParseAudience\u003A\u003AgetName\u0028\u0029",
+ "name": "getName",
+ "summary": "Gets\u0020the\u0020name\u0020for\u0020this\u0020audience",
+ "url": "classes/Parse-ParseAudience.html#method_getName"
+ }, {
+ "fqsen": "\\Parse\\ParseAudience\u003A\u003AsetQuery\u0028\u0029",
+ "name": "setQuery",
+ "summary": "Sets\u0020the\u0020query\u0020for\u0020this\u0020Audience",
+ "url": "classes/Parse-ParseAudience.html#method_setQuery"
+ }, {
+ "fqsen": "\\Parse\\ParseAudience\u003A\u003AgetQuery\u0028\u0029",
+ "name": "getQuery",
+ "summary": "Gets\u0020the\u0020query\u0020for\u0020this\u0020Audience",
+ "url": "classes/Parse-ParseAudience.html#method_getQuery"
+ }, {
+ "fqsen": "\\Parse\\ParseAudience\u003A\u003AgetLastUsed\u0028\u0029",
+ "name": "getLastUsed",
+ "summary": "Gets\u0020when\u0020this\u0020Audience\u0020was\u0020last\u0020used",
+ "url": "classes/Parse-ParseAudience.html#method_getLastUsed"
+ }, {
+ "fqsen": "\\Parse\\ParseAudience\u003A\u003AgetTimesUsed\u0028\u0029",
+ "name": "getTimesUsed",
+ "summary": "Gets\u0020the\u0020times\u0020this\u0020Audience\u0020has\u0020been\u0020used",
+ "url": "classes/Parse-ParseAudience.html#method_getTimesUsed"
+ }, {
+ "fqsen": "\\Parse\\ParseAudience\u003A\u003A\u0024parseClassName",
+ "name": "parseClassName",
+ "summary": "Parse\u0020Class\u0020name",
+ "url": "classes/Parse-ParseAudience.html#property_parseClassName"
+ }, {
+ "fqsen": "\\Parse\\ParseBytes",
+ "name": "ParseBytes",
+ "summary": "Class\u0020ParseBytes\u0020\u002D\u0020Representation\u0020of\u0020a\u0020Byte\u0020array\u0020for\u0020storage\u0020on\u0020a\u0020Parse\u0020Object.",
+ "url": "classes/Parse-ParseBytes.html"
+ }, {
+ "fqsen": "\\Parse\\ParseBytes\u003A\u003AcreateFromByteArray\u0028\u0029",
+ "name": "createFromByteArray",
+ "summary": "Create\u0020a\u0020ParseBytes\u0020object\u0020with\u0020a\u0020given\u0020byte\u0020array.",
+ "url": "classes/Parse-ParseBytes.html#method_createFromByteArray"
+ }, {
+ "fqsen": "\\Parse\\ParseBytes\u003A\u003AcreateFromBase64Data\u0028\u0029",
+ "name": "createFromBase64Data",
+ "summary": "Create\u0020a\u0020ParseBytes\u0020object\u0020with\u0020a\u0020given\u0020base\u002064\u0020encoded\u0020data\u0020string.",
+ "url": "classes/Parse-ParseBytes.html#method_createFromBase64Data"
+ }, {
+ "fqsen": "\\Parse\\ParseBytes\u003A\u003AsetBase64Data\u0028\u0029",
+ "name": "setBase64Data",
+ "summary": "Decodes\u0020and\u0020unpacks\u0020a\u0020given\u0020base64\u0020encoded\u0020array\u0020of\u0020data",
+ "url": "classes/Parse-ParseBytes.html#method_setBase64Data"
+ }, {
+ "fqsen": "\\Parse\\ParseBytes\u003A\u003AsetByteArray\u0028\u0029",
+ "name": "setByteArray",
+ "summary": "Sets\u0020a\u0020new\u0020byte\u0020array",
+ "url": "classes/Parse-ParseBytes.html#method_setByteArray"
+ }, {
+ "fqsen": "\\Parse\\ParseBytes\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Encode\u0020to\u0020associative\u0020array\u0020representation.",
+ "url": "classes/Parse-ParseBytes.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\ParseBytes\u003A\u003A\u0024byteArray",
+ "name": "byteArray",
+ "summary": "Byte\u0020array.",
+ "url": "classes/Parse-ParseBytes.html#property_byteArray"
+ }, {
+ "fqsen": "\\Parse\\ParseClient",
+ "name": "ParseClient",
+ "summary": "Class\u0020ParseClient\u0020\u002D\u0020Main\u0020class\u0020for\u0020Parse\u0020initialization\u0020and\u0020communication.",
+ "url": "classes/Parse-ParseClient.html"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003Ainitialize\u0028\u0029",
+ "name": "initialize",
+ "summary": "Parse\\Client\u003A\u003Ainitialize,\u0020must\u0020be\u0020called\u0020before\u0020using\u0020Parse\u0020features.",
+ "url": "classes/Parse-ParseClient.html#method_initialize"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AsetServerURL\u0028\u0029",
+ "name": "setServerURL",
+ "summary": "ParseClient\u003A\u003AsetServerURL,\u0020to\u0020change\u0020the\u0020Parse\u0020Server\u0020address\u0020\u0026\u0020mount\u0020path\u0020for\u0020this\u0020app",
+ "url": "classes/Parse-ParseClient.html#method_setServerURL"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A_clearServerURL\u0028\u0029",
+ "name": "_clearServerURL",
+ "summary": "Clears\u0020the\u0020existing\u0020server\u0020url.",
+ "url": "classes/Parse-ParseClient.html#method__clearServerURL"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A_clearMountPath\u0028\u0029",
+ "name": "_clearMountPath",
+ "summary": "Clears\u0020the\u0020existing\u0020mount\u0020path.",
+ "url": "classes/Parse-ParseClient.html#method__clearMountPath"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AsetHttpClient\u0028\u0029",
+ "name": "setHttpClient",
+ "summary": "Sets\u0020the\u0020Http\u0020client\u0020to\u0020use\u0020for\u0020requests",
+ "url": "classes/Parse-ParseClient.html#method_setHttpClient"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AgetServerHealth\u0028\u0029",
+ "name": "getServerHealth",
+ "summary": "Returns\u0020an\u0020array\u0020of\u0020information\u0020regarding\u0020the\u0020current\u0020server\u0027s\u0020health",
+ "url": "classes/Parse-ParseClient.html#method_getServerHealth"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AgetHttpClient\u0028\u0029",
+ "name": "getHttpClient",
+ "summary": "Gets\u0020the\u0020current\u0020Http\u0020client,\u0020or\u0020creates\u0020one\u0020to\u0020suite\u0020the\u0020need",
+ "url": "classes/Parse-ParseClient.html#method_getHttpClient"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AclearHttpClient\u0028\u0029",
+ "name": "clearHttpClient",
+ "summary": "Clears\u0020the\u0020currently\u0020set\u0020http\u0020client",
+ "url": "classes/Parse-ParseClient.html#method_clearHttpClient"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AsetCAFile\u0028\u0029",
+ "name": "setCAFile",
+ "summary": "Sets\u0020a\u0020CA\u0020file\u0020to\u0020validate\u0020peers\u0020of\u0020our\u0020requests\u0020with",
+ "url": "classes/Parse-ParseClient.html#method_setCAFile"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AsetHttpOptions\u0028\u0029",
+ "name": "setHttpOptions",
+ "summary": "Sets\u0020http\u0020options\u0020to\u0020pass\u0020to\u0020the\u0020http\u0020client\nFor\u0020curl\nhttps\u003A\/\/www.php.net\/manual\/en\/function.curl\u002Dsetopt.php",
+ "url": "classes/Parse-ParseClient.html#method_setHttpOptions"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "ParseClient\u003A\u003A_encode,\u0020internal\u0020method\u0020for\u0020encoding\u0020object\u0020values.",
+ "url": "classes/Parse-ParseClient.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A_decode\u0028\u0029",
+ "name": "_decode",
+ "summary": "ParseClient\u003A\u003A_decode,\u0020internal\u0020method\u0020for\u0020decoding\u0020server\u0020responses.",
+ "url": "classes/Parse-ParseClient.html#method__decode"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A_encodeArray\u0028\u0029",
+ "name": "_encodeArray",
+ "summary": "ParseClient\u003A\u003A_encodeArray,\u0020internal\u0020method\u0020for\u0020encoding\u0020arrays.",
+ "url": "classes/Parse-ParseClient.html#method__encodeArray"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AgetPreparedHttpClient\u0028\u0029",
+ "name": "getPreparedHttpClient",
+ "summary": "Returns\u0020an\u0020httpClient\u0020prepared\u0020for\u0020use",
+ "url": "classes/Parse-ParseClient.html#method_getPreparedHttpClient"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AcreateRequestUrl\u0028\u0029",
+ "name": "createRequestUrl",
+ "summary": "Creates\u0020an\u0020absolute\u0020request\u0020url\u0020from\u0020a\u0020relative\u0020one",
+ "url": "classes/Parse-ParseClient.html#method_createRequestUrl"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A_request\u0028\u0029",
+ "name": "_request",
+ "summary": "Parse\\Client\u003A\u003A_request,\u0020internal\u0020method\u0020for\u0020communicating\u0020with\u0020Parse.",
+ "url": "classes/Parse-ParseClient.html#method__request"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AgetLastJSONErrorMsg\u0028\u0029",
+ "name": "getLastJSONErrorMsg",
+ "summary": "Returns\u0020the\u0020last\u0020error\u0020message\u0020from\u0020a\u0020failed\u0020json_decode\u0020call",
+ "url": "classes/Parse-ParseClient.html#method_getLastJSONErrorMsg"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AsetStorage\u0028\u0029",
+ "name": "setStorage",
+ "summary": "ParseClient\u003A\u003AsetStorage,\u0020will\u0020update\u0020the\u0020storage\u0020object\u0020used\u0020for\npersistence.",
+ "url": "classes/Parse-ParseClient.html#method_setStorage"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AgetStorage\u0028\u0029",
+ "name": "getStorage",
+ "summary": "ParseClient\u003A\u003AgetStorage,\u0020will\u0020return\u0020the\u0020storage\u0020object\u0020used\u0020for\npersistence.",
+ "url": "classes/Parse-ParseClient.html#method_getStorage"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A_unsetStorage\u0028\u0029",
+ "name": "_unsetStorage",
+ "summary": "ParseClient\u003A\u003A_unsetStorage,\u0020will\u0020null\u0020the\u0020storage\u0020object.",
+ "url": "classes/Parse-ParseClient.html#method__unsetStorage"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AassertServerInitialized\u0028\u0029",
+ "name": "assertServerInitialized",
+ "summary": "Asserts\u0020that\u0020the\u0020server\u0020and\u0020mount\u0020path\u0020have\u0020been\u0020initialized",
+ "url": "classes/Parse-ParseClient.html#method_assertServerInitialized"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AassertParseInitialized\u0028\u0029",
+ "name": "assertParseInitialized",
+ "summary": "Asserts\u0020that\u0020the\u0020sdk\u0020has\u0020been\u0020initialized\u0020with\u0020a\u0020valid\u0020application\u0020id",
+ "url": "classes/Parse-ParseClient.html#method_assertParseInitialized"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AgetAPIUrl\u0028\u0029",
+ "name": "getAPIUrl",
+ "summary": "Get\u0020remote\u0020Parse\u0020API\u0020url.",
+ "url": "classes/Parse-ParseClient.html#method_getAPIUrl"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AgetMountPath\u0028\u0029",
+ "name": "getMountPath",
+ "summary": "Get\u0020remote\u0020Parse\u0020API\u0020mount\u0020path",
+ "url": "classes/Parse-ParseClient.html#method_getMountPath"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AgetProperDateFormat\u0028\u0029",
+ "name": "getProperDateFormat",
+ "summary": "Get\u0020a\u0020date\u0020value\u0020in\u0020the\u0020format\u0020stored\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseClient.html#method_getProperDateFormat"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AgetPushDateFormat\u0028\u0029",
+ "name": "getPushDateFormat",
+ "summary": "Get\u0020a\u0020date\u0020value\u0020in\u0020the\u0020format\u0020to\u0020use\u0020in\u0020Local\u0020Push\u0020Scheduling\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseClient.html#method_getPushDateFormat"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AenableRevocableSessions\u0028\u0029",
+ "name": "enableRevocableSessions",
+ "summary": "Allows\u0020an\u0020existing\u0020application\u0020to\u0020start\u0020using\u0020revocable\u0020sessions,\u0020without\u0020forcing\nall\u0020requests\u0020for\u0020the\u0020app\u0020to\u0020use\u0020them.\u0020\u0020\u0020\u0020After\u0020calling\u0020this\u0020method,\u0020login\u0020\u0026\u0020signup\u0020requests\nwill\u0020be\u0020returned\u0020a\u0020unique\u0020and\u0020revocable\u0020session\u0020token.",
+ "url": "classes/Parse-ParseClient.html#method_enableRevocableSessions"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AsetConnectionTimeout\u0028\u0029",
+ "name": "setConnectionTimeout",
+ "summary": "Sets\u0020number\u0020of\u0020seconds\u0020to\u0020wait\u0020while\u0020trying\u0020to\u0020connect.\u0020Use\u00200\u0020to\u0020wait\u0020indefinitely,\u0020null\u0020to\u0020default\u0020behaviour.",
+ "url": "classes/Parse-ParseClient.html#method_setConnectionTimeout"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AsetTimeout\u0028\u0029",
+ "name": "setTimeout",
+ "summary": "Sets\u0020maximum\u0020number\u0020of\u0020seconds\u0020of\u0020request\/response\u0020operation.",
+ "url": "classes/Parse-ParseClient.html#method_setTimeout"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003AVERSION_STRING",
+ "name": "VERSION_STRING",
+ "summary": "Constant\u0020for\u0020version\u0020string\u0020to\u0020include\u0020with\u0020requests.",
+ "url": "classes/Parse-ParseClient.html#constant_VERSION_STRING"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024serverURL",
+ "name": "serverURL",
+ "summary": "The\u0020remote\u0020Parse\u0020Server\u0020to\u0020communicate\u0020with",
+ "url": "classes/Parse-ParseClient.html#property_serverURL"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024mountPath",
+ "name": "mountPath",
+ "summary": "The\u0020mount\u0020path\u0020for\u0020the\u0020current\u0020parse\u0020server",
+ "url": "classes/Parse-ParseClient.html#property_mountPath"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024applicationId",
+ "name": "applicationId",
+ "summary": "The\u0020application\u0020id.",
+ "url": "classes/Parse-ParseClient.html#property_applicationId"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024restKey",
+ "name": "restKey",
+ "summary": "The\u0020REST\u0020API\u0020Key.",
+ "url": "classes/Parse-ParseClient.html#property_restKey"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024masterKey",
+ "name": "masterKey",
+ "summary": "The\u0020Master\u0020Key.",
+ "url": "classes/Parse-ParseClient.html#property_masterKey"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024enableCurlExceptions",
+ "name": "enableCurlExceptions",
+ "summary": "Enable\/Disable\u0020curl\u0020exceptions.",
+ "url": "classes/Parse-ParseClient.html#property_enableCurlExceptions"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024storage",
+ "name": "storage",
+ "summary": "The\u0020object\u0020for\u0020managing\u0020persistence.",
+ "url": "classes/Parse-ParseClient.html#property_storage"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024forceRevocableSession",
+ "name": "forceRevocableSession",
+ "summary": "Are\u0020revocable\u0020sessions\u0020enabled\u003F",
+ "url": "classes/Parse-ParseClient.html#property_forceRevocableSession"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024connectionTimeout",
+ "name": "connectionTimeout",
+ "summary": "Number\u0020of\u0020seconds\u0020to\u0020wait\u0020while\u0020trying\u0020to\u0020connect.\u0020Use\u00200\u0020to\u0020wait\u0020indefinitely.",
+ "url": "classes/Parse-ParseClient.html#property_connectionTimeout"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024timeout",
+ "name": "timeout",
+ "summary": "Maximum\u0020number\u0020of\u0020seconds\u0020of\u0020request\/response\u0020operation.",
+ "url": "classes/Parse-ParseClient.html#property_timeout"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024httpClient",
+ "name": "httpClient",
+ "summary": "Http\u0020client\u0020for\u0020requests",
+ "url": "classes/Parse-ParseClient.html#property_httpClient"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024caFile",
+ "name": "caFile",
+ "summary": "CA\u0020file\u0020holding\u0020one\u0020or\u0020more\u0020certificates\u0020to\u0020verify\u0020a\u0020peer",
+ "url": "classes/Parse-ParseClient.html#property_caFile"
+ }, {
+ "fqsen": "\\Parse\\ParseClient\u003A\u003A\u0024httpOptions",
+ "name": "httpOptions",
+ "summary": "Options\u0020to\u0020pass\u0020to\u0020the\u0020http\u0020client.",
+ "url": "classes/Parse-ParseClient.html#property_httpOptions"
+ }, {
+ "fqsen": "\\Parse\\ParseCloud",
+ "name": "ParseCloud",
+ "summary": "Class\u0020ParseCloud\u0020\u002D\u0020Facilitates\u0020calling\u0020Parse\u0020Cloud\u0020functions.",
+ "url": "classes/Parse-ParseCloud.html"
+ }, {
+ "fqsen": "\\Parse\\ParseCloud\u003A\u003Arun\u0028\u0029",
+ "name": "run",
+ "summary": "Makes\u0020a\u0020call\u0020to\u0020a\u0020Cloud\u0020function.",
+ "url": "classes/Parse-ParseCloud.html#method_run"
+ }, {
+ "fqsen": "\\Parse\\ParseCloud\u003A\u003AgetJobsData\u0028\u0029",
+ "name": "getJobsData",
+ "summary": "Gets\u0020data\u0020for\u0020the\u0020current\u0020set\u0020of\u0020cloud\u0020jobs",
+ "url": "classes/Parse-ParseCloud.html#method_getJobsData"
+ }, {
+ "fqsen": "\\Parse\\ParseCloud\u003A\u003AstartJob\u0028\u0029",
+ "name": "startJob",
+ "summary": "Starts\u0020a\u0020given\u0020cloud\u0020job,\u0020which\u0020will\u0020process\u0020asynchronously",
+ "url": "classes/Parse-ParseCloud.html#method_startJob"
+ }, {
+ "fqsen": "\\Parse\\ParseCloud\u003A\u003AgetJobStatus\u0028\u0029",
+ "name": "getJobStatus",
+ "summary": "Gets\u0020job\u0020status\u0020by\u0020id",
+ "url": "classes/Parse-ParseCloud.html#method_getJobStatus"
+ }, {
+ "fqsen": "\\Parse\\ParseConfig",
+ "name": "ParseConfig",
+ "summary": "Class\u0020ParseConfig\u0020\u002D\u0020For\u0020accessing\u0020Parse\u0020Config\u0020settings.",
+ "url": "classes/Parse-ParseConfig.html"
+ }, {
+ "fqsen": "\\Parse\\ParseConfig\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "ParseConfig\u0020constructor.",
+ "url": "classes/Parse-ParseConfig.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\ParseConfig\u003A\u003Aget\u0028\u0029",
+ "name": "get",
+ "summary": "Gets\u0020a\u0020config\u0020value",
+ "url": "classes/Parse-ParseConfig.html#method_get"
+ }, {
+ "fqsen": "\\Parse\\ParseConfig\u003A\u003Aset\u0028\u0029",
+ "name": "set",
+ "summary": "Sets\u0020a\u0020config\u0020value",
+ "url": "classes/Parse-ParseConfig.html#method_set"
+ }, {
+ "fqsen": "\\Parse\\ParseConfig\u003A\u003Aescape\u0028\u0029",
+ "name": "escape",
+ "summary": "Gets\u0020a\u0020config\u0020value\u0020with\u0020html\u0020characters\u0020encoded",
+ "url": "classes/Parse-ParseConfig.html#method_escape"
+ }, {
+ "fqsen": "\\Parse\\ParseConfig\u003A\u003AsetConfig\u0028\u0029",
+ "name": "setConfig",
+ "summary": "Sets\u0020the\u0020config",
+ "url": "classes/Parse-ParseConfig.html#method_setConfig"
+ }, {
+ "fqsen": "\\Parse\\ParseConfig\u003A\u003AgetConfig\u0028\u0029",
+ "name": "getConfig",
+ "summary": "Gets\u0020the\u0020current\u0020config",
+ "url": "classes/Parse-ParseConfig.html#method_getConfig"
+ }, {
+ "fqsen": "\\Parse\\ParseConfig\u003A\u003Asave\u0028\u0029",
+ "name": "save",
+ "summary": "Saves\u0020the\u0020current\u0020config",
+ "url": "classes/Parse-ParseConfig.html#method_save"
+ }, {
+ "fqsen": "\\Parse\\ParseConfig\u003A\u003A\u0024currentConfig",
+ "name": "currentConfig",
+ "summary": "Current\u0020configuration\u0020data",
+ "url": "classes/Parse-ParseConfig.html#property_currentConfig"
+ }, {
+ "fqsen": "\\Parse\\ParseException",
+ "name": "ParseException",
+ "summary": "Class\u0020ParseException\u0020\u002D\u0020Wrapper\u0020for\u0020\\Exception\u0020class.",
+ "url": "classes/Parse-ParseException.html"
+ }, {
+ "fqsen": "\\Parse\\ParseException\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Constructs\u0020a\u0020Parse\\Exception.",
+ "url": "classes/Parse-ParseException.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\ParseFile",
+ "name": "ParseFile",
+ "summary": "Class\u0020ParseFile\u0020\u002D\u0020Representation\u0020of\u0020a\u0020Parse\u0020File\u0020object.",
+ "url": "classes/Parse-ParseFile.html"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003AgetData\u0028\u0029",
+ "name": "getData",
+ "summary": "Return\u0020the\u0020data\u0020for\u0020the\u0020file,\u0020downloading\u0020it\u0020if\u0020not\u0020already\u0020present.",
+ "url": "classes/Parse-ParseFile.html#method_getData"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003AgetURL\u0028\u0029",
+ "name": "getURL",
+ "summary": "Return\u0020the\u0020URL\u0020for\u0020the\u0020file,\u0020if\u0020saved.",
+ "url": "classes/Parse-ParseFile.html#method_getURL"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003AgetName\u0028\u0029",
+ "name": "getName",
+ "summary": "Return\u0020the\u0020name\u0020for\u0020the\u0020file\nUpon\u0020saving\u0020to\u0020Parse,\u0020the\u0020name\u0020will\u0020change\u0020to\u0020a\u0020unique\u0020identifier.",
+ "url": "classes/Parse-ParseFile.html#method_getName"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003Adelete\u0028\u0029",
+ "name": "delete",
+ "summary": "Send\u0020a\u0020REST\u0020request\u0020to\u0020delete\u0020the\u0020ParseFile.",
+ "url": "classes/Parse-ParseFile.html#method_delete"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003AgetMimeType\u0028\u0029",
+ "name": "getMimeType",
+ "summary": "Return\u0020the\u0020mimeType\u0020for\u0020the\u0020file,\u0020if\u0020set.",
+ "url": "classes/Parse-ParseFile.html#method_getMimeType"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003AcreateFromData\u0028\u0029",
+ "name": "createFromData",
+ "summary": "Create\u0020a\u0020Parse\u0020File\u0020from\u0020data\ni.e.\u0020\u0024file\u0020\u003D\u0020ParseFile\u003A\u003AcreateFromData\u0028\u0027hello\u0020world\u0021\u0027,\u0020\u0027hi.txt\u0027\u0029\u003B.",
+ "url": "classes/Parse-ParseFile.html#method_createFromData"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003AcreateFromFile\u0028\u0029",
+ "name": "createFromFile",
+ "summary": "Create\u0020a\u0020Parse\u0020File\u0020from\u0020the\u0020contents\u0020of\u0020a\u0020local\u0020file\ni.e.\u0020\u0024file\u0020\u003D\u0020ParseFile\u003A\u003AcreateFromFile\u0028\u0027\/tmp\/foo.bar\u0027,\n\u0027foo.bar\u0027\u0029\u003B.",
+ "url": "classes/Parse-ParseFile.html#method_createFromFile"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003A_createFromServer\u0028\u0029",
+ "name": "_createFromServer",
+ "summary": "Internal\u0020method\u0020used\u0020when\u0020constructing\u0020a\u0020Parse\u0020File\u0020from\u0020Parse.",
+ "url": "classes/Parse-ParseFile.html#method__createFromServer"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Encode\u0020to\u0020associative\u0020array\u0020representation.",
+ "url": "classes/Parse-ParseFile.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003Asave\u0028\u0029",
+ "name": "save",
+ "summary": "Uploads\u0020the\u0020file\u0020contents\u0020to\u0020Parse,\u0020if\u0020not\u0020saved.",
+ "url": "classes/Parse-ParseFile.html#method_save"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003Aupload\u0028\u0029",
+ "name": "upload",
+ "summary": "Internally\u0020uploads\u0020the\u0020contents\u0020of\u0020the\u0020file\u0020to\u0020a\u0020Parse\u0020Server",
+ "url": "classes/Parse-ParseFile.html#method_upload"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003Adownload\u0028\u0029",
+ "name": "download",
+ "summary": "Attempts\u0020to\u0020download\u0020and\u0020return\u0020the\u0020contents\u0020of\u0020a\u0020ParseFile\u0027s\u0020url",
+ "url": "classes/Parse-ParseFile.html#method_download"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003AgetMimeTypeForExtension\u0028\u0029",
+ "name": "getMimeTypeForExtension",
+ "summary": "Returns\u0020the\u0020mimetype\u0020for\u0020a\u0020given\u0020extension",
+ "url": "classes/Parse-ParseFile.html#method_getMimeTypeForExtension"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003A\u0024name",
+ "name": "name",
+ "summary": "The\u0020filename.",
+ "url": "classes/Parse-ParseFile.html#property_name"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003A\u0024url",
+ "name": "url",
+ "summary": "The\u0020URL\u0020of\u0020file\u0020data\u0020stored\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseFile.html#property_url"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003A\u0024data",
+ "name": "data",
+ "summary": "The\u0020data.",
+ "url": "classes/Parse-ParseFile.html#property_data"
+ }, {
+ "fqsen": "\\Parse\\ParseFile\u003A\u003A\u0024mimeType",
+ "name": "mimeType",
+ "summary": "The\u0020mime\u0020type.",
+ "url": "classes/Parse-ParseFile.html#property_mimeType"
+ }, {
+ "fqsen": "\\Parse\\ParseGeoPoint",
+ "name": "ParseGeoPoint",
+ "summary": "Class\u0020ParseGeoPoint\u0020\u002D\u0020Representation\u0020of\u0020a\u0020Parse\u0020GeoPoint\u0020object.",
+ "url": "classes/Parse-ParseGeoPoint.html"
+ }, {
+ "fqsen": "\\Parse\\ParseGeoPoint\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Create\u0020a\u0020Parse\u0020GeoPoint\u0020object.",
+ "url": "classes/Parse-ParseGeoPoint.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\ParseGeoPoint\u003A\u003AgetLatitude\u0028\u0029",
+ "name": "getLatitude",
+ "summary": "Returns\u0020the\u0020Latitude\u0020value\u0020for\u0020this\u0020GeoPoint.",
+ "url": "classes/Parse-ParseGeoPoint.html#method_getLatitude"
+ }, {
+ "fqsen": "\\Parse\\ParseGeoPoint\u003A\u003AsetLatitude\u0028\u0029",
+ "name": "setLatitude",
+ "summary": "Set\u0020the\u0020Latitude\u0020value\u0020for\u0020this\u0020GeoPoint.",
+ "url": "classes/Parse-ParseGeoPoint.html#method_setLatitude"
+ }, {
+ "fqsen": "\\Parse\\ParseGeoPoint\u003A\u003AgetLongitude\u0028\u0029",
+ "name": "getLongitude",
+ "summary": "Returns\u0020the\u0020Longitude\u0020value\u0020for\u0020this\u0020GeoPoint.",
+ "url": "classes/Parse-ParseGeoPoint.html#method_getLongitude"
+ }, {
+ "fqsen": "\\Parse\\ParseGeoPoint\u003A\u003AsetLongitude\u0028\u0029",
+ "name": "setLongitude",
+ "summary": "Set\u0020the\u0020Longitude\u0020value\u0020for\u0020this\u0020GeoPoint.",
+ "url": "classes/Parse-ParseGeoPoint.html#method_setLongitude"
+ }, {
+ "fqsen": "\\Parse\\ParseGeoPoint\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Encode\u0020to\u0020associative\u0020array\u0020representation.",
+ "url": "classes/Parse-ParseGeoPoint.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\ParseGeoPoint\u003A\u003A\u0024latitude",
+ "name": "latitude",
+ "summary": "The\u0020latitude.",
+ "url": "classes/Parse-ParseGeoPoint.html#property_latitude"
+ }, {
+ "fqsen": "\\Parse\\ParseGeoPoint\u003A\u003A\u0024longitude",
+ "name": "longitude",
+ "summary": "The\u0020longitude.",
+ "url": "classes/Parse-ParseGeoPoint.html#property_longitude"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks",
+ "name": "ParseHooks",
+ "summary": "Class\u0020ParseHooks\u0020\u002D\u0020Representation\u0020of\u0020a\u0020Parse\u0020Hooks\u0020object.",
+ "url": "classes/Parse-ParseHooks.html"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks\u003A\u003AfetchFunctions\u0028\u0029",
+ "name": "fetchFunctions",
+ "summary": "Fetch\u0020the\u0020list\u0020of\u0020all\u0020cloud\u0020functions.",
+ "url": "classes/Parse-ParseHooks.html#method_fetchFunctions"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks\u003A\u003AfetchFunction\u0028\u0029",
+ "name": "fetchFunction",
+ "summary": "Fetch\u0020a\u0020single\u0020cloud\u0020function\u0020with\u0020a\u0020given\u0020name.",
+ "url": "classes/Parse-ParseHooks.html#method_fetchFunction"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks\u003A\u003AfetchTriggers\u0028\u0029",
+ "name": "fetchTriggers",
+ "summary": "Fetch\u0020the\u0020list\u0020of\u0020all\u0020cloud\u0020triggers.",
+ "url": "classes/Parse-ParseHooks.html#method_fetchTriggers"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks\u003A\u003AfetchTrigger\u0028\u0029",
+ "name": "fetchTrigger",
+ "summary": "Fetch\u0020a\u0020single\u0020cloud\u0020trigger.",
+ "url": "classes/Parse-ParseHooks.html#method_fetchTrigger"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks\u003A\u003AcreateFunction\u0028\u0029",
+ "name": "createFunction",
+ "summary": "Create\u0020a\u0020new\u0020function\u0020webhook.",
+ "url": "classes/Parse-ParseHooks.html#method_createFunction"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks\u003A\u003AcreateTrigger\u0028\u0029",
+ "name": "createTrigger",
+ "summary": "Create\u0020a\u0020new\u0020trigger\u0020webhook.",
+ "url": "classes/Parse-ParseHooks.html#method_createTrigger"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks\u003A\u003AeditFunction\u0028\u0029",
+ "name": "editFunction",
+ "summary": "Edit\u0020the\u0020url\u0020of\u0020a\u0020function\u0020webhook\u0020that\u0020was\u0020already\u0020created.",
+ "url": "classes/Parse-ParseHooks.html#method_editFunction"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks\u003A\u003AeditTrigger\u0028\u0029",
+ "name": "editTrigger",
+ "summary": "Edit\u0020the\u0020url\u0020of\u0020a\u0020trigger\u0020webhook\u0020that\u0020was\u0020already\u0020crated.",
+ "url": "classes/Parse-ParseHooks.html#method_editTrigger"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks\u003A\u003AdeleteFunction\u0028\u0029",
+ "name": "deleteFunction",
+ "summary": "Delete\u0020a\u0020function\u0020webhook.",
+ "url": "classes/Parse-ParseHooks.html#method_deleteFunction"
+ }, {
+ "fqsen": "\\Parse\\ParseHooks\u003A\u003AdeleteTrigger\u0028\u0029",
+ "name": "deleteTrigger",
+ "summary": "Delete\u0020a\u0020trigger\u0020webhook.",
+ "url": "classes/Parse-ParseHooks.html#method_deleteTrigger"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation",
+ "name": "ParseInstallation",
+ "summary": "Class\u0020ParseInstallation\u0020\u002D\u0020Representation\u0020of\u0020an\u0020Installation\u0020stored\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseInstallation.html"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetInstallationId\u0028\u0029",
+ "name": "getInstallationId",
+ "summary": "Gets\u0020the\u0020installation\u0020id\u0020for\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getInstallationId"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetDeviceToken\u0028\u0029",
+ "name": "getDeviceToken",
+ "summary": "Gets\u0020the\u0020device\u0020token\u0020for\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getDeviceToken"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetChannels\u0028\u0029",
+ "name": "getChannels",
+ "summary": "Get\u0020channels\u0020for\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getChannels"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetDeviceType\u0028\u0029",
+ "name": "getDeviceType",
+ "summary": "Gets\u0020the\u0020device\u0020type\u0020of\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getDeviceType"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetPushType\u0028\u0029",
+ "name": "getPushType",
+ "summary": "Gets\u0020the\u0020push\u0020type\u0020of\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getPushType"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetGCMSenderId\u0028\u0029",
+ "name": "getGCMSenderId",
+ "summary": "Gets\u0020the\u0020GCM\u0020sender\u0020id\u0020of\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getGCMSenderId"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetTimeZone\u0028\u0029",
+ "name": "getTimeZone",
+ "summary": "Gets\u0020the\u0020time\u0020zone\u0020of\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getTimeZone"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetLocaleIdentifier\u0028\u0029",
+ "name": "getLocaleIdentifier",
+ "summary": "Gets\u0020the\u0020locale\u0020id\u0020for\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getLocaleIdentifier"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetBadge\u0028\u0029",
+ "name": "getBadge",
+ "summary": "Gets\u0020the\u0020badge\u0020number\u0020of\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getBadge"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetAppVersion\u0028\u0029",
+ "name": "getAppVersion",
+ "summary": "Gets\u0020the\u0020app\u0020version\u0020of\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getAppVersion"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetAppName\u0028\u0029",
+ "name": "getAppName",
+ "summary": "Get\u0020the\u0020app\u0020name\u0020for\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getAppName"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetAppIdentifier\u0028\u0029",
+ "name": "getAppIdentifier",
+ "summary": "Gets\u0020the\u0020app\u0020identifier\u0020for\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getAppIdentifier"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003AgetParseVersion\u0028\u0029",
+ "name": "getParseVersion",
+ "summary": "Gets\u0020the\u0020parse\u0020version\u0020for\u0020this\u0020installation",
+ "url": "classes/Parse-ParseInstallation.html#method_getParseVersion"
+ }, {
+ "fqsen": "\\Parse\\ParseInstallation\u003A\u003A\u0024parseClassName",
+ "name": "parseClassName",
+ "summary": "Parse\u0020Class\u0020name",
+ "url": "classes/Parse-ParseInstallation.html#property_parseClassName"
+ }, {
+ "fqsen": "\\Parse\\ParseLogs",
+ "name": "ParseLogs",
+ "summary": "Class\u0020ParseLogs\u0020\u002D\u0020Allows\u0020access\u0020to\u0020server\u0020side\u0020parse\u0020script\u0020logs",
+ "url": "classes/Parse-ParseLogs.html"
+ }, {
+ "fqsen": "\\Parse\\ParseLogs\u003A\u003AgetScriptLogs\u0028\u0029",
+ "name": "getScriptLogs",
+ "summary": "Requests\u0020script\u0020logs\u0020from\u0020the\u0020server",
+ "url": "classes/Parse-ParseLogs.html#method_getScriptLogs"
+ }, {
+ "fqsen": "\\Parse\\ParseLogs\u003A\u003AgetInfoLogs\u0028\u0029",
+ "name": "getInfoLogs",
+ "summary": "Returns\u0020info\u0020logs",
+ "url": "classes/Parse-ParseLogs.html#method_getInfoLogs"
+ }, {
+ "fqsen": "\\Parse\\ParseLogs\u003A\u003AgetErrorLogs\u0028\u0029",
+ "name": "getErrorLogs",
+ "summary": "Returns\u0020error\u0020logs",
+ "url": "classes/Parse-ParseLogs.html#method_getErrorLogs"
+ }, {
+ "fqsen": "\\Parse\\ParseMemoryStorage",
+ "name": "ParseMemoryStorage",
+ "summary": "Class\u0020ParseMemoryStorage\u0020\u002D\u0020Uses\u0020non\u002Dpersisted\u0020memory\u0020for\u0020storage.",
+ "url": "classes/Parse-ParseMemoryStorage.html"
+ }, {
+ "fqsen": "\\Parse\\ParseMemoryStorage\u003A\u003Aset\u0028\u0029",
+ "name": "set",
+ "summary": "Sets\u0020a\u0020key\u002Dvalue\u0020pair\u0020in\u0020storage.",
+ "url": "classes/Parse-ParseMemoryStorage.html#method_set"
+ }, {
+ "fqsen": "\\Parse\\ParseMemoryStorage\u003A\u003Aremove\u0028\u0029",
+ "name": "remove",
+ "summary": "Remove\u0020a\u0020key\u0020from\u0020storage.",
+ "url": "classes/Parse-ParseMemoryStorage.html#method_remove"
+ }, {
+ "fqsen": "\\Parse\\ParseMemoryStorage\u003A\u003Aget\u0028\u0029",
+ "name": "get",
+ "summary": "Gets\u0020the\u0020value\u0020for\u0020a\u0020key\u0020from\u0020storage.",
+ "url": "classes/Parse-ParseMemoryStorage.html#method_get"
+ }, {
+ "fqsen": "\\Parse\\ParseMemoryStorage\u003A\u003Aclear\u0028\u0029",
+ "name": "clear",
+ "summary": "Clear\u0020all\u0020the\u0020values\u0020in\u0020storage.",
+ "url": "classes/Parse-ParseMemoryStorage.html#method_clear"
+ }, {
+ "fqsen": "\\Parse\\ParseMemoryStorage\u003A\u003Asave\u0028\u0029",
+ "name": "save",
+ "summary": "Save\u0020the\u0020data,\u0020if\u0020necessary.\u0020Not\u0020implemented.",
+ "url": "classes/Parse-ParseMemoryStorage.html#method_save"
+ }, {
+ "fqsen": "\\Parse\\ParseMemoryStorage\u003A\u003AgetKeys\u0028\u0029",
+ "name": "getKeys",
+ "summary": "Get\u0020all\u0020keys\u0020in\u0020storage.",
+ "url": "classes/Parse-ParseMemoryStorage.html#method_getKeys"
+ }, {
+ "fqsen": "\\Parse\\ParseMemoryStorage\u003A\u003AgetAll\u0028\u0029",
+ "name": "getAll",
+ "summary": "Get\u0020all\u0020key\u002Dvalue\u0020pairs\u0020from\u0020storage.",
+ "url": "classes/Parse-ParseMemoryStorage.html#method_getAll"
+ }, {
+ "fqsen": "\\Parse\\ParseMemoryStorage\u003A\u003A\u0024storage",
+ "name": "storage",
+ "summary": "Memory\u0020storage",
+ "url": "classes/Parse-ParseMemoryStorage.html#property_storage"
+ }, {
+ "fqsen": "\\Parse\\ParseObject",
+ "name": "ParseObject",
+ "summary": "Class\u0020ParseObject\u0020\u002D\u0020Representation\u0020of\u0020an\u0020object\u0020stored\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseObject.html"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Create\u0020a\u0020Parse\u0020Object.",
+ "url": "classes/Parse-ParseObject.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetSubclass\u0028\u0029",
+ "name": "getSubclass",
+ "summary": "Gets\u0020the\u0020Subclass\u0020className\u0020if\u0020exists,\u0020otherwise\u0020false.",
+ "url": "classes/Parse-ParseObject.html#method_getSubclass"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A__set\u0028\u0029",
+ "name": "__set",
+ "summary": "Setter\u0020to\u0020catch\u0020property\u0020calls\u0020and\u0020protect\u0020certain\u0020fields.",
+ "url": "classes/Parse-ParseObject.html#method___set"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A__get\u0028\u0029",
+ "name": "__get",
+ "summary": "Getter\u0020to\u0020catch\u0020direct\u0020property\u0020calls\u0020and\u0020pass\u0020them\u0020to\u0020the\u0020get\u0020function.",
+ "url": "classes/Parse-ParseObject.html#method___get"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A__isset\u0028\u0029",
+ "name": "__isset",
+ "summary": "Magic\u0020handler\u0020to\u0020catch\u0020isset\u0020calls\u0020to\u0020object\u0020properties.",
+ "url": "classes/Parse-ParseObject.html#method___isset"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Aget\u0028\u0029",
+ "name": "get",
+ "summary": "Get\u0020current\u0020value\u0020for\u0020an\u0020object\u0020property.",
+ "url": "classes/Parse-ParseObject.html#method_get"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetAllKeys\u0028\u0029",
+ "name": "getAllKeys",
+ "summary": "Get\u0020values\u0020for\u0020all\u0020keys\u0020of\u0020an\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method_getAllKeys"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Ahas\u0028\u0029",
+ "name": "has",
+ "summary": "Check\u0020if\u0020the\u0020object\u0020has\u0020a\u0020given\u0020key.",
+ "url": "classes/Parse-ParseObject.html#method_has"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AisKeyDirty\u0028\u0029",
+ "name": "isKeyDirty",
+ "summary": "Check\u0020if\u0020the\u0020a\u0020value\u0020associated\u0020with\u0020a\u0020key\u0020has\u0020been\nadded\/updated\/removed\u0020and\u0020not\u0020saved\u0020yet.",
+ "url": "classes/Parse-ParseObject.html#method_isKeyDirty"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AisDirty\u0028\u0029",
+ "name": "isDirty",
+ "summary": "Check\u0020if\u0020the\u0020object\u0020or\u0020any\u0020of\u0020its\u0020child\u0020objects\u0020have\u0020unsaved\u0020operations.",
+ "url": "classes/Parse-ParseObject.html#method_isDirty"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A_isDirty\u0028\u0029",
+ "name": "_isDirty",
+ "summary": "Detects\u0020if\u0020the\u0020object\u0020\u0028and\u0020optionally\u0020the\u0020child\u0020objects\u0029\u0020has\u0020unsaved\nchanges.",
+ "url": "classes/Parse-ParseObject.html#method__isDirty"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AhasDirtyChildren\u0028\u0029",
+ "name": "hasDirtyChildren",
+ "summary": "Determines\u0020whether\u0020this\u0020object\u0020has\u0020child\u0020objects\u0020that\u0020are\u0020dirty",
+ "url": "classes/Parse-ParseObject.html#method_hasDirtyChildren"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Aexists\u0028\u0029",
+ "name": "exists",
+ "summary": "Returns\u0020true\u0020if\u0020this\u0020object\u0020exists\u0020on\u0020the\u0020Server",
+ "url": "classes/Parse-ParseObject.html#method_exists"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Aset\u0028\u0029",
+ "name": "set",
+ "summary": "Validate\u0020and\u0020set\u0020a\u0020value\u0020for\u0020an\u0020object\u0020key.",
+ "url": "classes/Parse-ParseObject.html#method_set"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AsetArray\u0028\u0029",
+ "name": "setArray",
+ "summary": "Set\u0020an\u0020array\u0020value\u0020for\u0020an\u0020object\u0020key.",
+ "url": "classes/Parse-ParseObject.html#method_setArray"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AsetAssociativeArray\u0028\u0029",
+ "name": "setAssociativeArray",
+ "summary": "Set\u0020an\u0020associative\u0020array\u0020value\u0020for\u0020an\u0020object\u0020key.",
+ "url": "classes/Parse-ParseObject.html#method_setAssociativeArray"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Aremove\u0028\u0029",
+ "name": "remove",
+ "summary": "Remove\u0020a\u0020value\u0020from\u0020an\u0020array\u0020for\u0020an\u0020object\u0020key.",
+ "url": "classes/Parse-ParseObject.html#method_remove"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Arevert\u0028\u0029",
+ "name": "revert",
+ "summary": "Revert\u0020all\u0020unsaved\u0020operations.",
+ "url": "classes/Parse-ParseObject.html#method_revert"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Aclear\u0028\u0029",
+ "name": "clear",
+ "summary": "Clear\u0020all\u0020keys\u0020on\u0020this\u0020object\u0020by\u0020creating\u0020delete\u0020operations\nfor\u0020each\u0020key.",
+ "url": "classes/Parse-ParseObject.html#method_clear"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A_performOperation\u0028\u0029",
+ "name": "_performOperation",
+ "summary": "Perform\u0020an\u0020operation\u0020on\u0020an\u0020object\u0020property.",
+ "url": "classes/Parse-ParseObject.html#method__performOperation"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetClassName\u0028\u0029",
+ "name": "getClassName",
+ "summary": "Get\u0020the\u0020Parse\u0020Class\u0020Name\u0020for\u0020the\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method_getClassName"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetObjectId\u0028\u0029",
+ "name": "getObjectId",
+ "summary": "Get\u0020the\u0020objectId\u0020for\u0020the\u0020object,\u0020or\u0020null\u0020if\u0020unsaved.",
+ "url": "classes/Parse-ParseObject.html#method_getObjectId"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetCreatedAt\u0028\u0029",
+ "name": "getCreatedAt",
+ "summary": "Get\u0020the\u0020createdAt\u0020for\u0020the\u0020object,\u0020or\u0020null\u0020if\u0020unsaved.",
+ "url": "classes/Parse-ParseObject.html#method_getCreatedAt"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AisDataAvailable\u0028\u0029",
+ "name": "isDataAvailable",
+ "summary": "Returns\u0020true\u0020if\u0020the\u0020object\u0020has\u0020been\u0020fetched.",
+ "url": "classes/Parse-ParseObject.html#method_isDataAvailable"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A_isDataAvailable\u0028\u0029",
+ "name": "_isDataAvailable",
+ "summary": "Returns\u0020whether\u0020or\u0020not\u0020data\u0020is\u0020available\u0020for\u0020a\u0020given\u0020key",
+ "url": "classes/Parse-ParseObject.html#method__isDataAvailable"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetUpdatedAt\u0028\u0029",
+ "name": "getUpdatedAt",
+ "summary": "Get\u0020the\u0020updatedAt\u0020for\u0020the\u0020object,\u0020or\u0020null\u0020if\u0020unsaved.",
+ "url": "classes/Parse-ParseObject.html#method_getUpdatedAt"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Acreate\u0028\u0029",
+ "name": "create",
+ "summary": "Static\u0020method\u0020which\u0020returns\u0020a\u0020new\u0020Parse\u0020Object\u0020for\u0020a\u0020given\u0020class\nOptionally\u0020creates\u0020a\u0020pointer\u0020object\u0020if\u0020the\u0020objectId\u0020is\u0020provided.",
+ "url": "classes/Parse-ParseObject.html#method_create"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Afetch\u0028\u0029",
+ "name": "fetch",
+ "summary": "Fetch\u0020the\u0020whole\u0020object\u0020from\u0020the\u0020server\u0020and\u0020update\u0020the\u0020local\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method_fetch"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AfetchWithInclude\u0028\u0029",
+ "name": "fetchWithInclude",
+ "summary": "Fetch\u0020an\u0020array\u0020of\u0020Parse\u0020objects\u0020from\u0020the\u0020server.",
+ "url": "classes/Parse-ParseObject.html#method_fetchWithInclude"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AfetchAll\u0028\u0029",
+ "name": "fetchAll",
+ "summary": "Fetch\u0020an\u0020array\u0020of\u0020Parse\u0020objects\u0020from\u0020the\u0020server.",
+ "url": "classes/Parse-ParseObject.html#method_fetchAll"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AfetchAllWithInclude\u0028\u0029",
+ "name": "fetchAllWithInclude",
+ "summary": "Fetch\u0020an\u0020array\u0020of\u0020Parse\u0020Objects\u0020from\u0020the\u0020server\u0020with\u0020nested\u0020Parse\u0020Objects.",
+ "url": "classes/Parse-ParseObject.html#method_fetchAllWithInclude"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AtoObjectIdArray\u0028\u0029",
+ "name": "toObjectIdArray",
+ "summary": "Creates\u0020an\u0020array\u0020of\u0020object\u0020ids\u0020from\u0020a\u0020given\u0020array\u0020of\u0020ParseObjects",
+ "url": "classes/Parse-ParseObject.html#method_toObjectIdArray"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AupdateWithFetchedResults\u0028\u0029",
+ "name": "updateWithFetchedResults",
+ "summary": "Merges\u0020an\u0020existing\u0020array\u0020of\u0020objects\u0020with\u0020their\u0020fetched\u0020counterparts",
+ "url": "classes/Parse-ParseObject.html#method_updateWithFetchedResults"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A_mergeAfterFetch\u0028\u0029",
+ "name": "_mergeAfterFetch",
+ "summary": "Merges\u0020data\u0020received\u0020from\u0020the\u0020server.",
+ "url": "classes/Parse-ParseObject.html#method__mergeAfterFetch"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A_mergeAfterFetchWithSelectedKeys\u0028\u0029",
+ "name": "_mergeAfterFetchWithSelectedKeys",
+ "summary": "Merges\u0020data\u0020received\u0020from\u0020the\u0020server\u0020with\u0020a\u0020given\u0020selected\u0020keys.",
+ "url": "classes/Parse-ParseObject.html#method__mergeAfterFetchWithSelectedKeys"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AmergeFromServer\u0028\u0029",
+ "name": "mergeFromServer",
+ "summary": "Merges\u0020data\u0020received\u0020from\u0020the\u0020server.",
+ "url": "classes/Parse-ParseObject.html#method_mergeFromServer"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AmergeFromObject\u0028\u0029",
+ "name": "mergeFromObject",
+ "summary": "Merge\u0020data\u0020from\u0020other\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method_mergeFromObject"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A_mergeMagicFields\u0028\u0029",
+ "name": "_mergeMagicFields",
+ "summary": "Handle\u0020merging\u0020of\u0020special\u0020fields\u0020for\u0020the\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method__mergeMagicFields"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003ArebuildEstimatedData\u0028\u0029",
+ "name": "rebuildEstimatedData",
+ "summary": "Start\u0020from\u0020serverData\u0020and\u0020process\u0020operations\u0020to\u0020generate\u0020the\u0020current\nvalue\u0020set\u0020for\u0020an\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method_rebuildEstimatedData"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AapplyOperations\u0028\u0029",
+ "name": "applyOperations",
+ "summary": "Apply\u0020operations\u0020to\u0020a\u0020target\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method_applyOperations"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Adestroy\u0028\u0029",
+ "name": "destroy",
+ "summary": "Delete\u0020the\u0020object\u0020from\u0020Parse.",
+ "url": "classes/Parse-ParseObject.html#method_destroy"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AdestroyAll\u0028\u0029",
+ "name": "destroyAll",
+ "summary": "Delete\u0020an\u0020array\u0020of\u0020objects.",
+ "url": "classes/Parse-ParseObject.html#method_destroyAll"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AdestroyBatch\u0028\u0029",
+ "name": "destroyBatch",
+ "summary": "Destroy\u0020batch\u0020of\u0020objects.",
+ "url": "classes/Parse-ParseObject.html#method_destroyBatch"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Aincrement\u0028\u0029",
+ "name": "increment",
+ "summary": "Increment\u0020a\u0020numeric\u0020key\u0020by\u0020a\u0020certain\u0020value.",
+ "url": "classes/Parse-ParseObject.html#method_increment"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Aadd\u0028\u0029",
+ "name": "add",
+ "summary": "Add\u0020a\u0020value\u0020to\u0020an\u0020array\u0020property.",
+ "url": "classes/Parse-ParseObject.html#method_add"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AaddUnique\u0028\u0029",
+ "name": "addUnique",
+ "summary": "Add\u0020unique\u0020values\u0020to\u0020an\u0020array\u0020property.",
+ "url": "classes/Parse-ParseObject.html#method_addUnique"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Adelete\u0028\u0029",
+ "name": "delete",
+ "summary": "Delete\u0020a\u0020key\u0020from\u0020an\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method_delete"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Return\u0020a\u0020JSON\u0020encoded\u0020value\u0020of\u0020the\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Aencode\u0028\u0029",
+ "name": "encode",
+ "summary": "Returns\u0020a\u0020JSON\u0020encoded\u0020array\u0020of\u0020a\u0020ParseObject",
+ "url": "classes/Parse-ParseObject.html#method_encode"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Adecode\u0028\u0029",
+ "name": "decode",
+ "summary": "Decodes\u0020and\u0020returns\u0020a\u0020ParseObject\u0020from\u0020an\u0020encoded\u0020object",
+ "url": "classes/Parse-ParseObject.html#method_decode"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetSaveJSON\u0028\u0029",
+ "name": "getSaveJSON",
+ "summary": "Returns\u0020JSON\u0020object\u0020of\u0020the\u0020unsaved\u0020operations.",
+ "url": "classes/Parse-ParseObject.html#method_getSaveJSON"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AbeforeSave\u0028\u0029",
+ "name": "beforeSave",
+ "summary": "Before\u0020save\u0020stub",
+ "url": "classes/Parse-ParseObject.html#method_beforeSave"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Asave\u0028\u0029",
+ "name": "save",
+ "summary": "Save\u0020Object\u0020to\u0020Parse.",
+ "url": "classes/Parse-ParseObject.html#method_save"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AsaveAll\u0028\u0029",
+ "name": "saveAll",
+ "summary": "Save\u0020all\u0020the\u0020objects\u0020in\u0020the\u0020provided\u0020array.",
+ "url": "classes/Parse-ParseObject.html#method_saveAll"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AdeepSave\u0028\u0029",
+ "name": "deepSave",
+ "summary": "Save\u0020object\u0020and\u0020unsaved\u0020children\u0020within.",
+ "url": "classes/Parse-ParseObject.html#method_deepSave"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AfindUnsavedChildren\u0028\u0029",
+ "name": "findUnsavedChildren",
+ "summary": "Find\u0020unsaved\u0020children\u0020inside\u0020an\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method_findUnsavedChildren"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Atraverse\u0028\u0029",
+ "name": "traverse",
+ "summary": "Traverse\u0020object\u0020to\u0020find\u0020children.",
+ "url": "classes/Parse-ParseObject.html#method_traverse"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AcanBeSerialized\u0028\u0029",
+ "name": "canBeSerialized",
+ "summary": "Determine\u0020if\u0020the\u0020current\u0020object\u0020can\u0020be\u0020serialized\u0020for\u0020saving.",
+ "url": "classes/Parse-ParseObject.html#method_canBeSerialized"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AcanBeSerializedAsValue\u0028\u0029",
+ "name": "canBeSerializedAsValue",
+ "summary": "Checks\u0020the\u0020given\u0020object\u0020and\u0020any\u0020children\u0020to\u0020see\u0020if\u0020the\u0020whole\u0020object\ncan\u0020be\u0020serialized\u0020for\u0020saving.",
+ "url": "classes/Parse-ParseObject.html#method_canBeSerializedAsValue"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AmergeAfterSave\u0028\u0029",
+ "name": "mergeAfterSave",
+ "summary": "Merge\u0020server\u0020data\u0020after\u0020a\u0020save\u0020completes.",
+ "url": "classes/Parse-ParseObject.html#method_mergeAfterSave"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetRelation\u0028\u0029",
+ "name": "getRelation",
+ "summary": "Access\u0020or\u0020create\u0020a\u0020Relation\u0020value\u0020for\u0020a\u0020key.",
+ "url": "classes/Parse-ParseObject.html#method_getRelation"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A_toPointer\u0028\u0029",
+ "name": "_toPointer",
+ "summary": "Gets\u0020a\u0020Pointer\u0020referencing\u0020this\u0020Object.",
+ "url": "classes/Parse-ParseObject.html#method__toPointer"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AsetACL\u0028\u0029",
+ "name": "setACL",
+ "summary": "Set\u0020ACL\u0020for\u0020this\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method_setACL"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetACL\u0028\u0029",
+ "name": "getACL",
+ "summary": "Get\u0020the\u0020ACL\u0020assigned\u0020to\u0020the\u0020object.",
+ "url": "classes/Parse-ParseObject.html#method_getACL"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetACLWithCopy\u0028\u0029",
+ "name": "getACLWithCopy",
+ "summary": "Internally\u0020retrieves\u0020the\u0020ACL\u0020assigned\u0020to\u0020this\u0020object,\u0020conditionally\u0020returning\u0020a\u0020copy\u0020of\u0020the\u0020existing\u0020one",
+ "url": "classes/Parse-ParseObject.html#method_getACLWithCopy"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AregisterSubclass\u0028\u0029",
+ "name": "registerSubclass",
+ "summary": "Register\u0020a\u0020subclass.\u0020\u0020\u0020\u0020Should\u0020be\u0020called\u0020before\u0020any\u0020other\u0020Parse\u0020functions.",
+ "url": "classes/Parse-ParseObject.html#method_registerSubclass"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A_unregisterSubclass\u0028\u0029",
+ "name": "_unregisterSubclass",
+ "summary": "Un\u002Dregister\u0020a\u0020subclass.",
+ "url": "classes/Parse-ParseObject.html#method__unregisterSubclass"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AhasRegisteredSubclass\u0028\u0029",
+ "name": "hasRegisteredSubclass",
+ "summary": "Check\u0020whether\u0020there\u0020is\u0020a\u0020subclass\u0020registered\u0020for\u0020a\u0020given\u0020parse\u0020class.",
+ "url": "classes/Parse-ParseObject.html#method_hasRegisteredSubclass"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003AgetRegisteredSubclass\u0028\u0029",
+ "name": "getRegisteredSubclass",
+ "summary": "Get\u0020the\u0020registered\u0020subclass\u0020for\u0020a\u0020Parse\u0020class,\u0020or\u0020a\u0020generic\u0020ParseObject\nif\u0020no\u0020subclass\u0020is\u0020registered.",
+ "url": "classes/Parse-ParseObject.html#method_getRegisteredSubclass"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003Aquery\u0028\u0029",
+ "name": "query",
+ "summary": "Creates\u0020a\u0020ParseQuery\u0020for\u0020the\u0020subclass\u0020of\u0020ParseObject.",
+ "url": "classes/Parse-ParseObject.html#method_query"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024serverData",
+ "name": "serverData",
+ "summary": "Data\u0020as\u0020it\u0020exists\u0020on\u0020the\u0020server.",
+ "url": "classes/Parse-ParseObject.html#property_serverData"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024operationSet",
+ "name": "operationSet",
+ "summary": "Set\u0020of\u0020unsaved\u0020operations.",
+ "url": "classes/Parse-ParseObject.html#property_operationSet"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024estimatedData",
+ "name": "estimatedData",
+ "summary": "Estimated\u0020value\u0020of\u0020applying\u0020operationSet\u0020to\u0020serverData.",
+ "url": "classes/Parse-ParseObject.html#property_estimatedData"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024dataAvailability",
+ "name": "dataAvailability",
+ "summary": "Determine\u0020if\u0020data\u0020available\u0020for\u0020a\u0020given\u0020key\u0020or\u0020not.",
+ "url": "classes/Parse-ParseObject.html#property_dataAvailability"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024className",
+ "name": "className",
+ "summary": "Class\u0020name\u0020for\u0020data\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseObject.html#property_className"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024objectId",
+ "name": "objectId",
+ "summary": "Unique\u0020identifier\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseObject.html#property_objectId"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024createdAt",
+ "name": "createdAt",
+ "summary": "Timestamp\u0020when\u0020object\u0020was\u0020created.",
+ "url": "classes/Parse-ParseObject.html#property_createdAt"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024updatedAt",
+ "name": "updatedAt",
+ "summary": "Timestamp\u0020when\u0020object\u0020was\u0020last\u0020updated.",
+ "url": "classes/Parse-ParseObject.html#property_updatedAt"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024hasBeenFetched",
+ "name": "hasBeenFetched",
+ "summary": "Whether\u0020the\u0020object\u0020has\u0020been\u0020fully\u0020fetched\u0020from\u0020Parse.",
+ "url": "classes/Parse-ParseObject.html#property_hasBeenFetched"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024registeredSubclasses",
+ "name": "registeredSubclasses",
+ "summary": "Holds\u0020the\u0020registered\u0020subclasses\u0020and\u0020Parse\u0020class\u0020names.",
+ "url": "classes/Parse-ParseObject.html#property_registeredSubclasses"
+ }, {
+ "fqsen": "\\Parse\\ParseObject\u003A\u003A\u0024parseClassName",
+ "name": "parseClassName",
+ "summary": "Parse\u0020Class\u0020name,\u0020overridden\u0020by\u0020classes\u0020subclassing\u0020ParseObject",
+ "url": "classes/Parse-ParseObject.html#property_parseClassName"
+ }, {
+ "fqsen": "\\Parse\\ParsePolygon",
+ "name": "ParsePolygon",
+ "summary": "ParsePolygon\u0020\u002D\u0020Representation\u0020of\u0020a\u0020Parse\u0020Polygon\u0020object.",
+ "url": "classes/Parse-ParsePolygon.html"
+ }, {
+ "fqsen": "\\Parse\\ParsePolygon\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Create\u0020a\u0020Parse\u0020Polygon\u0020object.",
+ "url": "classes/Parse-ParsePolygon.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\ParsePolygon\u003A\u003AsetCoordinates\u0028\u0029",
+ "name": "setCoordinates",
+ "summary": "Set\u0020the\u0020Coordinates\u0020value\u0020for\u0020this\u0020Polygon.",
+ "url": "classes/Parse-ParsePolygon.html#method_setCoordinates"
+ }, {
+ "fqsen": "\\Parse\\ParsePolygon\u003A\u003AgetCoordinates\u0028\u0029",
+ "name": "getCoordinates",
+ "summary": "Returns\u0020the\u0020Coordinates\u0020value\u0020for\u0020this\u0020Polygon.",
+ "url": "classes/Parse-ParsePolygon.html#method_getCoordinates"
+ }, {
+ "fqsen": "\\Parse\\ParsePolygon\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Encode\u0020to\u0020associative\u0020array\u0020representation.",
+ "url": "classes/Parse-ParsePolygon.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\ParsePolygon\u003A\u003A\u0024coordinates",
+ "name": "coordinates",
+ "summary": "The\u0020coordinates.",
+ "url": "classes/Parse-ParsePolygon.html#property_coordinates"
+ }, {
+ "fqsen": "\\Parse\\ParsePush",
+ "name": "ParsePush",
+ "summary": "Class\u0020ParsePush\u0020\u002D\u0020Handles\u0020sending\u0020push\u0020notifications\u0020with\u0020Parse.",
+ "url": "classes/Parse-ParsePush.html"
+ }, {
+ "fqsen": "\\Parse\\ParsePush\u003A\u003Asend\u0028\u0029",
+ "name": "send",
+ "summary": "Sends\u0020a\u0020push\u0020notification.",
+ "url": "classes/Parse-ParsePush.html#method_send"
+ }, {
+ "fqsen": "\\Parse\\ParsePush\u003A\u003AhasStatus\u0028\u0029",
+ "name": "hasStatus",
+ "summary": "Returns\u0020whether\u0020or\u0020not\u0020the\u0020given\u0020response\u0020has\u0020a\u0020push\u0020status\nChecks\u0020to\u0020see\u0020if\u0020X\u002DPush\u002DStatus\u002DId\u0020is\u0020present\u0020in\u0020\u0024response",
+ "url": "classes/Parse-ParsePush.html#method_hasStatus"
+ }, {
+ "fqsen": "\\Parse\\ParsePush\u003A\u003AgetStatus\u0028\u0029",
+ "name": "getStatus",
+ "summary": "Returns\u0020the\u0020PushStatus\u0020for\u0020a\u0020response\u0020from\u0020ParsePush\u003A\u003Asend",
+ "url": "classes/Parse-ParsePush.html#method_getStatus"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus",
+ "name": "ParsePushStatus",
+ "summary": "Class\u0020ParsePushStatus\u0020\u002D\u0020Representation\u0020of\u0020PushStatus\u0020for\u0020push\u0020notifications",
+ "url": "classes/Parse-ParsePushStatus.html"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AgetFromId\u0028\u0029",
+ "name": "getFromId",
+ "summary": "Returns\u0020a\u0020push\u0020status\u0020object\u0020or\u0020null\u0020from\u0020an\u0020id",
+ "url": "classes/Parse-ParsePushStatus.html#method_getFromId"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AgetPushTime\u0028\u0029",
+ "name": "getPushTime",
+ "summary": "Gets\u0020the\u0020time\u0020this\u0020push\u0020was\u0020sent\u0020at",
+ "url": "classes/Parse-ParsePushStatus.html#method_getPushTime"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AgetPushQuery\u0028\u0029",
+ "name": "getPushQuery",
+ "summary": "Gets\u0020the\u0020query\u0020used\u0020to\u0020send\u0020this\u0020push",
+ "url": "classes/Parse-ParsePushStatus.html#method_getPushQuery"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AgetPushPayload\u0028\u0029",
+ "name": "getPushPayload",
+ "summary": "Gets\u0020the\u0020payload",
+ "url": "classes/Parse-ParsePushStatus.html#method_getPushPayload"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AgetPushSource\u0028\u0029",
+ "name": "getPushSource",
+ "summary": "Gets\u0020the\u0020source\u0020of\u0020this\u0020push",
+ "url": "classes/Parse-ParsePushStatus.html#method_getPushSource"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AgetPushStatus\u0028\u0029",
+ "name": "getPushStatus",
+ "summary": "Gets\u0020the\u0020status\u0020of\u0020this\u0020push",
+ "url": "classes/Parse-ParsePushStatus.html#method_getPushStatus"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AisScheduled\u0028\u0029",
+ "name": "isScheduled",
+ "summary": "Indicates\u0020whether\u0020this\u0020push\u0020is\u0020scheduled",
+ "url": "classes/Parse-ParsePushStatus.html#method_isScheduled"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AisPending\u0028\u0029",
+ "name": "isPending",
+ "summary": "Indicates\u0020whether\u0020this\u0020push\u0020is\u0020pending",
+ "url": "classes/Parse-ParsePushStatus.html#method_isPending"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AisRunning\u0028\u0029",
+ "name": "isRunning",
+ "summary": "Indicates\u0020whether\u0020this\u0020push\u0020is\u0020running",
+ "url": "classes/Parse-ParsePushStatus.html#method_isRunning"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AhasSucceeded\u0028\u0029",
+ "name": "hasSucceeded",
+ "summary": "Indicates\u0020whether\u0020this\u0020push\u0020has\u0020succeeded",
+ "url": "classes/Parse-ParsePushStatus.html#method_hasSucceeded"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AhasFailed\u0028\u0029",
+ "name": "hasFailed",
+ "summary": "Indicates\u0020whether\u0020this\u0020push\u0020has\u0020failed",
+ "url": "classes/Parse-ParsePushStatus.html#method_hasFailed"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AgetPushesSent\u0028\u0029",
+ "name": "getPushesSent",
+ "summary": "Gets\u0020the\u0020number\u0020of\u0020pushes\u0020sent",
+ "url": "classes/Parse-ParsePushStatus.html#method_getPushesSent"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AgetPushHash\u0028\u0029",
+ "name": "getPushHash",
+ "summary": "Gets\u0020the\u0020hash\u0020for\u0020this\u0020push",
+ "url": "classes/Parse-ParsePushStatus.html#method_getPushHash"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003AgetPushesFailed\u0028\u0029",
+ "name": "getPushesFailed",
+ "summary": "Gets\u0020the\u0020number\u0020of\u0020pushes\u0020failed",
+ "url": "classes/Parse-ParsePushStatus.html#method_getPushesFailed"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003ASTATUS_SCHEDULED",
+ "name": "STATUS_SCHEDULED",
+ "summary": "",
+ "url": "classes/Parse-ParsePushStatus.html#constant_STATUS_SCHEDULED"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003ASTATUS_PENDING",
+ "name": "STATUS_PENDING",
+ "summary": "",
+ "url": "classes/Parse-ParsePushStatus.html#constant_STATUS_PENDING"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003ASTATUS_RUNNING",
+ "name": "STATUS_RUNNING",
+ "summary": "",
+ "url": "classes/Parse-ParsePushStatus.html#constant_STATUS_RUNNING"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003ASTATUS_SUCCEEDED",
+ "name": "STATUS_SUCCEEDED",
+ "summary": "",
+ "url": "classes/Parse-ParsePushStatus.html#constant_STATUS_SUCCEEDED"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003ASTATUS_FAILED",
+ "name": "STATUS_FAILED",
+ "summary": "",
+ "url": "classes/Parse-ParsePushStatus.html#constant_STATUS_FAILED"
+ }, {
+ "fqsen": "\\Parse\\ParsePushStatus\u003A\u003A\u0024parseClassName",
+ "name": "parseClassName",
+ "summary": "Parse\u0020Class\u0020name",
+ "url": "classes/Parse-ParsePushStatus.html#property_parseClassName"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery",
+ "name": "ParseQuery",
+ "summary": "Class\u0020ParseQuery\u0020\u002D\u0020Handles\u0020querying\u0020data\u0020from\u0020Parse.",
+ "url": "classes/Parse-ParseQuery.html"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Create\u0020a\u0020Parse\u0020Query\u0020for\u0020a\u0020given\u0020Parse\u0020Class.",
+ "url": "classes/Parse-ParseQuery.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Aget\u0028\u0029",
+ "name": "get",
+ "summary": "Execute\u0020a\u0020query\u0020to\u0020retrieve\u0020a\u0020specific\u0020object.",
+ "url": "classes/Parse-ParseQuery.html#method_get"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AequalTo\u0028\u0029",
+ "name": "equalTo",
+ "summary": "Set\u0020a\u0020constraint\u0020for\u0020a\u0020field\u0020matching\u0020a\u0020given\u0020value.",
+ "url": "classes/Parse-ParseQuery.html#method_equalTo"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AaddCondition\u0028\u0029",
+ "name": "addCondition",
+ "summary": "Helper\u0020for\u0020condition\u0020queries.",
+ "url": "classes/Parse-ParseQuery.html#method_addCondition"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A_setConditions\u0028\u0029",
+ "name": "_setConditions",
+ "summary": "Sets\u0020the\u0020conditions\u0020of\u0020this\u0020parse\u0020query\u0020from\u0020an\u0020array",
+ "url": "classes/Parse-ParseQuery.html#method__setConditions"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AnotEqualTo\u0028\u0029",
+ "name": "notEqualTo",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020not\u0020equal\u0020to\u0020the\u0020provided\u0020value.",
+ "url": "classes/Parse-ParseQuery.html#method_notEqualTo"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AlessThan\u0028\u0029",
+ "name": "lessThan",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020less\u0020than\u0020the\u0020provided\u0020value.",
+ "url": "classes/Parse-ParseQuery.html#method_lessThan"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AlessThanRelativeTime\u0028\u0029",
+ "name": "lessThanRelativeTime",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020less\u0020than\u0020the\u0020provided\u0020relative\u0020time\u0020string.",
+ "url": "classes/Parse-ParseQuery.html#method_lessThanRelativeTime"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AgreaterThan\u0028\u0029",
+ "name": "greaterThan",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020greater\u0020than\u0020the\u0020provided\u0020value.",
+ "url": "classes/Parse-ParseQuery.html#method_greaterThan"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AgreaterThanRelativeTime\u0028\u0029",
+ "name": "greaterThanRelativeTime",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020greater\u0020than\u0020the\u0020provided\u0020relative\u0020time\u0020string.",
+ "url": "classes/Parse-ParseQuery.html#method_greaterThanRelativeTime"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AgreaterThanOrEqualTo\u0028\u0029",
+ "name": "greaterThanOrEqualTo",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020greater\u0020than\u0020or\u0020equal\u0020to\u0020the\u0020provided\u0020value.",
+ "url": "classes/Parse-ParseQuery.html#method_greaterThanOrEqualTo"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AgreaterThanOrEqualToRelativeTime\u0028\u0029",
+ "name": "greaterThanOrEqualToRelativeTime",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020greater\u0020than\u0020or\u0020equal\u0020to\u0020the\u0020provided\u0020relative\u0020time\u0020string.",
+ "url": "classes/Parse-ParseQuery.html#method_greaterThanOrEqualToRelativeTime"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AlessThanOrEqualTo\u0028\u0029",
+ "name": "lessThanOrEqualTo",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020less\u0020than\u0020or\u0020equal\u0020to\u0020the\u0020provided\u0020value.",
+ "url": "classes/Parse-ParseQuery.html#method_lessThanOrEqualTo"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AlessThanOrEqualToRelativeTime\u0028\u0029",
+ "name": "lessThanOrEqualToRelativeTime",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020less\u0020than\u0020or\u0020equal\u0020to\u0020the\u0020provided\u0020date\u0020string.",
+ "url": "classes/Parse-ParseQuery.html#method_lessThanOrEqualToRelativeTime"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Aquote\u0028\u0029",
+ "name": "quote",
+ "summary": "Converts\u0020a\u0020string\u0020into\u0020a\u0020regex\u0020that\u0020matches\u0020it.",
+ "url": "classes/Parse-ParseQuery.html#method_quote"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AregexStartWith\u0028\u0029",
+ "name": "regexStartWith",
+ "summary": "Converts\u0020a\u0020string\u0020into\u0020a\u0020regex\u0020that\u0020matches\u0020it\u0020at\u0020the\u0020beginning",
+ "url": "classes/Parse-ParseQuery.html#method_regexStartWith"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AstartsWith\u0028\u0029",
+ "name": "startsWith",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nstart\u0020with\u0020the\u0020provided\u0020value.",
+ "url": "classes/Parse-ParseQuery.html#method_startsWith"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AendsWith\u0028\u0029",
+ "name": "endsWith",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nend\u0020with\u0020the\u0020provided\u0020value.",
+ "url": "classes/Parse-ParseQuery.html#method_endsWith"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Acontains\u0028\u0029",
+ "name": "contains",
+ "summary": "Adds\u0020a\u0020constraint\u0020for\u0020finding\u0020string\u0020values\u0020that\u0020contain\u0020a\u0020provided\nstring.\u0020This\u0020may\u0020be\u0020slow\u0020for\u0020large\u0020datasets.",
+ "url": "classes/Parse-ParseQuery.html#method_contains"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AcontainedBy\u0028\u0029",
+ "name": "containedBy",
+ "summary": "Adds\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020contained\u0020by\u0020the\u0020provided\u0020list\u0020of\u0020values.\u0020Get\u0020objects\u0020where\u0020all\u0020array\u0020elements\u0020match.",
+ "url": "classes/Parse-ParseQuery.html#method_containedBy"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AfullText\u0028\u0029",
+ "name": "fullText",
+ "summary": "Adds\u0020a\u0020constraint\u0020for\u0020finding\u0020string\u0020values\u0020that\u0020contain\u0020a\u0020provided\nstring\u0020using\u0020Full\u0020Text\u0020Search",
+ "url": "classes/Parse-ParseQuery.html#method_fullText"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A_getOptions\u0028\u0029",
+ "name": "_getOptions",
+ "summary": "Returns\u0020an\u0020associative\u0020array\u0020of\u0020the\u0020query\u0020constraints.",
+ "url": "classes/Parse-ParseQuery.html#method__getOptions"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Afirst\u0028\u0029",
+ "name": "first",
+ "summary": "Execute\u0020a\u0020query\u0020to\u0020get\u0020only\u0020the\u0020first\u0020result.",
+ "url": "classes/Parse-ParseQuery.html#method_first"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AbuildQueryString\u0028\u0029",
+ "name": "buildQueryString",
+ "summary": "Build\u0020query\u0020string\u0020from\u0020query\u0020constraints.",
+ "url": "classes/Parse-ParseQuery.html#method_buildQueryString"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024count",
+ "name": "count",
+ "summary": "Determines\u0020if\u0020the\u0020query\u0020is\u0020a\u0020count\u0020query\u0020or\u0020a\u0020results\u0020query.",
+ "url": "classes/Parse-ParseQuery.html#property_count"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AwithCount\u0028\u0029",
+ "name": "withCount",
+ "summary": "The\u0020response\u0020will\u0020include\u0020the\u0020total\u0020number\u0020of\u0020objects\u0020satisfying\u0020this\u0020query,\ndispite\u0020limit\u0020\/\u0020skip.\u0020Might\u0020be\u0020useful\u0020for\u0020pagination.",
+ "url": "classes/Parse-ParseQuery.html#method_withCount"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Adistinct\u0028\u0029",
+ "name": "distinct",
+ "summary": "Execute\u0020a\u0020distinct\u0020query\u0020and\u0020return\u0020unique\u0020values.",
+ "url": "classes/Parse-ParseQuery.html#method_distinct"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Aaggregate\u0028\u0029",
+ "name": "aggregate",
+ "summary": "Execute\u0020an\u0020aggregate\u0020query\u0020and\u0020returns\u0020aggregate\u0020results.",
+ "url": "classes/Parse-ParseQuery.html#method_aggregate"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Afind\u0028\u0029",
+ "name": "find",
+ "summary": "Execute\u0020a\u0020find\u0020query\u0020and\u0020return\u0020the\u0020results.",
+ "url": "classes/Parse-ParseQuery.html#method_find"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AhandleQueryResult\u0028\u0029",
+ "name": "handleQueryResult",
+ "summary": "Handles\u0020result\u0020from\u0020ParseClient\u003A\u003A_request",
+ "url": "classes/Parse-ParseQuery.html#method_handleQueryResult"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024skip",
+ "name": "skip",
+ "summary": "Skip\u0020from\u0020the\u0020beginning\u0020of\u0020the\u0020search\u0020results.",
+ "url": "classes/Parse-ParseQuery.html#property_skip"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024limit",
+ "name": "limit",
+ "summary": "Limit\u0020of\u0020results,\u0020defaults\u0020to\u0020100\u0020when\u0020not\u0020explicitly\u0020set.",
+ "url": "classes/Parse-ParseQuery.html#property_limit"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Aascending\u0028\u0029",
+ "name": "ascending",
+ "summary": "Set\u0020the\u0020query\u0020orderBy\u0020to\u0020ascending\u0020for\u0020the\u0020given\u0020key\u0028s\u0029.\u0020It\u0020overwrites\u0020the\nexisting\u0020order\u0020criteria.",
+ "url": "classes/Parse-ParseQuery.html#method_ascending"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AaddAscending\u0028\u0029",
+ "name": "addAscending",
+ "summary": "Set\u0020the\u0020query\u0020orderBy\u0020to\u0020ascending\u0020for\u0020the\u0020given\u0020key\u0028s\u0029.\u0020It\u0020can\u0020also\u0020add\nsecondary\u0020sort\u0020descriptors\u0020without\u0020overwriting\u0020the\u0020existing\u0020order.",
+ "url": "classes/Parse-ParseQuery.html#method_addAscending"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Adescending\u0028\u0029",
+ "name": "descending",
+ "summary": "Set\u0020the\u0020query\u0020orderBy\u0020to\u0020descending\u0020for\u0020a\u0020given\u0020key\u0028s\u0029.\u0020It\u0020overwrites\u0020the\nexisting\u0020order\u0020criteria.",
+ "url": "classes/Parse-ParseQuery.html#method_descending"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AaddDescending\u0028\u0029",
+ "name": "addDescending",
+ "summary": "Set\u0020the\u0020query\u0020orderBy\u0020to\u0020descending\u0020for\u0020a\u0020given\u0020key\u0028s\u0029.\u0020It\u0020can\u0020also\u0020add\nsecondary\u0020sort\u0020descriptors\u0020without\u0020overwriting\u0020the\u0020existing\u0020order.",
+ "url": "classes/Parse-ParseQuery.html#method_addDescending"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Anear\u0028\u0029",
+ "name": "near",
+ "summary": "Add\u0020a\u0020proximity\u0020based\u0020constraint\u0020for\u0020finding\u0020objects\u0020with\u0020key\u0020point\nvalues\u0020near\u0020the\u0020point\u0020given.",
+ "url": "classes/Parse-ParseQuery.html#method_near"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AwithinRadians\u0028\u0029",
+ "name": "withinRadians",
+ "summary": "Add\u0020a\u0020proximity\u0020based\u0020constraint\u0020for\u0020finding\u0020objects\u0020with\u0020key\u0020point\nvalues\u0020near\u0020the\u0020point\u0020given\u0020and\u0020within\u0020the\u0020maximum\u0020distance\u0020given.",
+ "url": "classes/Parse-ParseQuery.html#method_withinRadians"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AwithinMiles\u0028\u0029",
+ "name": "withinMiles",
+ "summary": "Add\u0020a\u0020proximity\u0020based\u0020constraint\u0020for\u0020finding\u0020objects\u0020with\u0020key\u0020point\nvalues\u0020near\u0020the\u0020point\u0020given\u0020and\u0020within\u0020the\u0020maximum\u0020distance\u0020given.",
+ "url": "classes/Parse-ParseQuery.html#method_withinMiles"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AwithinKilometers\u0028\u0029",
+ "name": "withinKilometers",
+ "summary": "Add\u0020a\u0020proximity\u0020based\u0020constraint\u0020for\u0020finding\u0020objects\u0020with\u0020key\u0020point\nvalues\u0020near\u0020the\u0020point\u0020given\u0020and\u0020within\u0020the\u0020maximum\u0020distance\u0020given.",
+ "url": "classes/Parse-ParseQuery.html#method_withinKilometers"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AwithinGeoBox\u0028\u0029",
+ "name": "withinGeoBox",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\ncoordinates\u0020be\u0020contained\u0020within\u0020a\u0020given\u0020rectangular\u0020geographic\u0020bounding\nbox.",
+ "url": "classes/Parse-ParseQuery.html#method_withinGeoBox"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AwithinPolygon\u0028\u0029",
+ "name": "withinPolygon",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\ncoordinates\u0020be\u0020contained\u0020within\u0020and\u0020on\u0020the\u0020bounds\u0020of\u0020a\u0020given\u0020polygon\nSupports\u0020closed\u0020and\u0020open\u0020\u0028last\u0020point\u0020is\u0020connected\u0020to\u0020first\u0029\u0020paths",
+ "url": "classes/Parse-ParseQuery.html#method_withinPolygon"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003ApolygonContains\u0028\u0029",
+ "name": "polygonContains",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\ncoordinates\u0020that\u0020contains\u0020a\u0020ParseGeoPoint",
+ "url": "classes/Parse-ParseQuery.html#method_polygonContains"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AcontainedIn\u0028\u0029",
+ "name": "containedIn",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nbe\u0020contained\u0020in\u0020the\u0020provided\u0020list\u0020of\u0020values.",
+ "url": "classes/Parse-ParseQuery.html#method_containedIn"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Aeach\u0028\u0029",
+ "name": "each",
+ "summary": "Iterates\u0020over\u0020each\u0020result\u0020of\u0020a\u0020query,\u0020calling\u0020a\u0020callback\u0020for\u0020each\u0020one.\u0020The\nitems\u0020are\u0020processed\u0020in\u0020an\u0020unspecified\u0020order.\u0020The\u0020query\u0020may\u0020not\u0020have\u0020any\nsort\u0020order,\u0020and\u0020may\u0020not\u0020use\u0020limit\u0020or\u0020skip.",
+ "url": "classes/Parse-ParseQuery.html#method_each"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AnotContainedIn\u0028\u0029",
+ "name": "notContainedIn",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\nnot\u0020be\u0020contained\u0020in\u0020the\u0020provided\u0020list\u0020of\u0020values.",
+ "url": "classes/Parse-ParseQuery.html#method_notContainedIn"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Amatches\u0028\u0029",
+ "name": "matches",
+ "summary": "Adds\u0020a\u0020regular\u0020expression\u0020constraint\u0020for\u0020finding\u0020string\u0020values\u0020that\u0020match\nthe\u0020provided\u0020regular\u0020expression.",
+ "url": "classes/Parse-ParseQuery.html#method_matches"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AmatchesQuery\u0028\u0029",
+ "name": "matchesQuery",
+ "summary": "Add\u0020a\u0020constraint\u0020that\u0020requires\u0020that\u0020a\u0020key\u0027s\u0020value\u0020matches\u0020a\u0020ParseQuery\nconstraint.",
+ "url": "classes/Parse-ParseQuery.html#method_matchesQuery"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AdoesNotMatchQuery\u0028\u0029",
+ "name": "doesNotMatchQuery",
+ "summary": "Add\u0020a\u0020constraint\u0020that\u0020requires\u0020that\u0020a\u0020key\u0027s\u0020value\u0020not\u0020matches\u0020a\u0020ParseQuery\nconstraint.",
+ "url": "classes/Parse-ParseQuery.html#method_doesNotMatchQuery"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AmatchesKeyInQuery\u0028\u0029",
+ "name": "matchesKeyInQuery",
+ "summary": "Add\u0020a\u0020constraint\u0020that\u0020requires\u0020that\u0020a\u0020key\u0027s\u0020value\u0020matches\u0020a\u0020value\u0020in\u0020an\nobject\u0020returned\u0020by\u0020the\u0020given\u0020query.",
+ "url": "classes/Parse-ParseQuery.html#method_matchesKeyInQuery"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AdoesNotMatchKeyInQuery\u0028\u0029",
+ "name": "doesNotMatchKeyInQuery",
+ "summary": "Add\u0020a\u0020constraint\u0020that\u0020requires\u0020that\u0020a\u0020key\u0027s\u0020value\u0020not\u0020match\u0020a\u0020value\u0020in\u0020an\nobject\u0020returned\u0020by\u0020the\u0020given\u0020query.",
+ "url": "classes/Parse-ParseQuery.html#method_doesNotMatchKeyInQuery"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AorQueries\u0028\u0029",
+ "name": "orQueries",
+ "summary": "Constructs\u0020a\u0020ParseQuery\u0020object\u0020that\u0020is\u0020the\u0020OR\u0020of\u0020the\u0020passed\u0020in\u0020queries\u0020objects.",
+ "url": "classes/Parse-ParseQuery.html#method_orQueries"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AnorQueries\u0028\u0029",
+ "name": "norQueries",
+ "summary": "Constructs\u0020a\u0020ParseQuery\u0020object\u0020that\u0020is\u0020the\u0020NOR\u0020of\u0020the\u0020passed\u0020in\u0020queries\u0020objects.",
+ "url": "classes/Parse-ParseQuery.html#method_norQueries"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AandQueries\u0028\u0029",
+ "name": "andQueries",
+ "summary": "Constructs\u0020a\u0020ParseQuery\u0020object\u0020that\u0020is\u0020the\u0020AND\u0020of\u0020the\u0020passed\u0020in\u0020queries\u0020objects.",
+ "url": "classes/Parse-ParseQuery.html#method_andQueries"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A_matchClassname\u0028\u0029",
+ "name": "_matchClassname",
+ "summary": "All\u0020queries\u0020must\u0020have\u0020same\u0020class\u0020name.",
+ "url": "classes/Parse-ParseQuery.html#method__matchClassname"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A_or\u0028\u0029",
+ "name": "_or",
+ "summary": "Add\u0020constraint\u0020that\u0020at\u0020least\u0020one\u0020of\u0020the\u0020passed\u0020in\u0020queries\u0020matches.",
+ "url": "classes/Parse-ParseQuery.html#method__or"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A_nor\u0028\u0029",
+ "name": "_nor",
+ "summary": "Add\u0020constraint\u0020that\u0020at\u0020none\u0020of\u0020the\u0020passed\u0020in\u0020queries\u0020matches.",
+ "url": "classes/Parse-ParseQuery.html#method__nor"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A_and\u0028\u0029",
+ "name": "_and",
+ "summary": "Add\u0020constraint\u0020that\u0020at\u0020all\u0020of\u0020the\u0020passed\u0020in\u0020queries\u0020matches.",
+ "url": "classes/Parse-ParseQuery.html#method__and"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A_mergeQueries\u0028\u0029",
+ "name": "_mergeQueries",
+ "summary": "Combines\u0020queries\u0020for\u0020NOR,\u0020AND,\u0020OR\u0020queries.",
+ "url": "classes/Parse-ParseQuery.html#method__mergeQueries"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AcontainsAll\u0028\u0029",
+ "name": "containsAll",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\ncontain\u0020each\u0020one\u0020of\u0020the\u0020provided\u0020list\u0020of\u0020values.",
+ "url": "classes/Parse-ParseQuery.html#method_containsAll"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AcontainsAllStartingWith\u0028\u0029",
+ "name": "containsAllStartingWith",
+ "summary": "Add\u0020a\u0020constraint\u0020to\u0020the\u0020query\u0020that\u0020requires\u0020a\u0020particular\u0020key\u0027s\u0020value\u0020to\ncontain\u0020each\u0020one\u0020of\u0020the\u0020provided\u0020list\u0020of\u0020values\u0020starting\u0020with\u0020the\u0020given\u0020string.",
+ "url": "classes/Parse-ParseQuery.html#method_containsAllStartingWith"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Aexists\u0028\u0029",
+ "name": "exists",
+ "summary": "Add\u0020a\u0020constraint\u0020for\u0020finding\u0020objects\u0020that\u0020contain\u0020the\u0020given\u0020key.",
+ "url": "classes/Parse-ParseQuery.html#method_exists"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AdoesNotExist\u0028\u0029",
+ "name": "doesNotExist",
+ "summary": "Add\u0020a\u0020constraint\u0020for\u0020finding\u0020objects\u0020that\u0020not\u0020contain\u0020the\u0020given\u0020key.",
+ "url": "classes/Parse-ParseQuery.html#method_doesNotExist"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003Aselect\u0028\u0029",
+ "name": "select",
+ "summary": "Restrict\u0020the\u0020fields\u0020of\u0020the\u0020returned\u0020Parse\u0020Objects\u0020to\u0020include\u0020only\u0020the\nprovided\u0020keys.\u0020If\u0020this\u0020is\u0020called\u0020multiple\u0020times,\u0020then\u0020all\u0020of\u0020the\u0020keys\nspecified\u0020in\u0020each\u0020of\u0020the\u0020calls\u0020will\u0020be\u0020included.",
+ "url": "classes/Parse-ParseQuery.html#method_select"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AexcludeKey\u0028\u0029",
+ "name": "excludeKey",
+ "summary": "Restricts\u0020the\u0020fields\u0020of\u0020the\u0020returned\u0020Parse.Objects\u0020to\u0020all\u0020keys\u0020except\u0020the\nprovided\u0020keys.\u0020Exclude\u0020takes\u0020precedence\u0020over\u0020select\u0020and\u0020include.",
+ "url": "classes/Parse-ParseQuery.html#method_excludeKey"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AincludeKey\u0028\u0029",
+ "name": "includeKey",
+ "summary": "Include\u0020nested\u0020Parse\u0020Objects\u0020for\u0020the\u0020provided\u0020key.\u0020\u0020\u0020\u0020You\u0020can\u0020use\u0020dot\nnotation\u0020to\u0020specify\u0020which\u0020fields\u0020in\u0020the\u0020included\u0020object\u0020are\u0020also\u0020fetch.",
+ "url": "classes/Parse-ParseQuery.html#method_includeKey"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003AincludeAllKeys\u0028\u0029",
+ "name": "includeAllKeys",
+ "summary": "Includes\u0020all\u0020nested\u0020Parse.Objects.",
+ "url": "classes/Parse-ParseQuery.html#method_includeAllKeys"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003ArelatedTo\u0028\u0029",
+ "name": "relatedTo",
+ "summary": "Add\u0020constraint\u0020for\u0020parse\u0020relation.",
+ "url": "classes/Parse-ParseQuery.html#method_relatedTo"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024readPreference",
+ "name": "readPreference",
+ "summary": "The\u0020read\u0020preference\u0020for\u0020the\u0020main\u0020query.",
+ "url": "classes/Parse-ParseQuery.html#property_readPreference"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024className",
+ "name": "className",
+ "summary": "Class\u0020name\u0020for\u0020data\u0020stored\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseQuery.html#property_className"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024where",
+ "name": "where",
+ "summary": "Where\u0020constraints.",
+ "url": "classes/Parse-ParseQuery.html#property_where"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024orderBy",
+ "name": "orderBy",
+ "summary": "Order\u0020By\u0020keys.",
+ "url": "classes/Parse-ParseQuery.html#property_orderBy"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024includes",
+ "name": "includes",
+ "summary": "Include\u0020nested\u0020objects.",
+ "url": "classes/Parse-ParseQuery.html#property_includes"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024excludes",
+ "name": "excludes",
+ "summary": "Exclude\u0020keys.",
+ "url": "classes/Parse-ParseQuery.html#property_excludes"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024selectedKeys",
+ "name": "selectedKeys",
+ "summary": "Include\u0020certain\u0020keys\u0020only.",
+ "url": "classes/Parse-ParseQuery.html#property_selectedKeys"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024includeReadPreference",
+ "name": "includeReadPreference",
+ "summary": "The\u0020read\u0020preference\u0020for\u0020the\u0020queries\u0020to\u0020include\u0020pointers.",
+ "url": "classes/Parse-ParseQuery.html#property_includeReadPreference"
+ }, {
+ "fqsen": "\\Parse\\ParseQuery\u003A\u003A\u0024subqueryReadPreference",
+ "name": "subqueryReadPreference",
+ "summary": "The\u0020read\u0020preference\u0020for\u0020the\u0020sub\u0020queries.",
+ "url": "classes/Parse-ParseQuery.html#property_subqueryReadPreference"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation",
+ "name": "ParseRelation",
+ "summary": "Class\u0020ParseRelation\u0020\u002D\u0020A\u0020class\u0020that\u0020is\u0020used\u0020to\u0020access\u0020all\u0020of\u0020the\u0020children\u0020of\u0020a\u0020many\u002Dto\u002Dmany\u0020relationship.",
+ "url": "classes/Parse-ParseRelation.html"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Creates\u0020a\u0020new\u0020Relation\u0020for\u0020the\u0020given\u0020parent\u0020object,\u0020key\u0020and\u0020class\u0020name\u0020of\u0020target\u0020objects.",
+ "url": "classes/Parse-ParseRelation.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003Aadd\u0028\u0029",
+ "name": "add",
+ "summary": "Adds\u0020a\u0020ParseObject\u0020or\u0020an\u0020array\u0020of\u0020ParseObjects\u0020to\u0020the\u0020relation.",
+ "url": "classes/Parse-ParseRelation.html#method_add"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003Aremove\u0028\u0029",
+ "name": "remove",
+ "summary": "Removes\u0020a\u0020ParseObject\u0020or\u0020an\u0020array\u0020of\u0020ParseObjects\u0020from\u0020this\u0020relation.",
+ "url": "classes/Parse-ParseRelation.html#method_remove"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003AgetTargetClass\u0028\u0029",
+ "name": "getTargetClass",
+ "summary": "Returns\u0020the\u0020target\u0020classname\u0020for\u0020the\u0020relation.",
+ "url": "classes/Parse-ParseRelation.html#method_getTargetClass"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003AsetTargetClass\u0028\u0029",
+ "name": "setTargetClass",
+ "summary": "Set\u0020the\u0020target\u0020classname\u0020for\u0020the\u0020relation.",
+ "url": "classes/Parse-ParseRelation.html#method_setTargetClass"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003AsetParent\u0028\u0029",
+ "name": "setParent",
+ "summary": "Set\u0020the\u0020parent\u0020object\u0020for\u0020the\u0020relation.",
+ "url": "classes/Parse-ParseRelation.html#method_setParent"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003AgetQuery\u0028\u0029",
+ "name": "getQuery",
+ "summary": "Gets\u0020a\u0020query\u0020that\u0020can\u0020be\u0020used\u0020to\u0020query\u0020the\u0020objects\u0020in\u0020this\u0020relation.",
+ "url": "classes/Parse-ParseRelation.html#method_getQuery"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003A_encode\u0028\u0029",
+ "name": "_encode",
+ "summary": "Return\u0020an\u0020encoded\u0020array\u0020of\u0020this\u0020relation.",
+ "url": "classes/Parse-ParseRelation.html#method__encode"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003A\u0024parent",
+ "name": "parent",
+ "summary": "The\u0020parent\u0020of\u0020this\u0020relation.",
+ "url": "classes/Parse-ParseRelation.html#property_parent"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003A\u0024key",
+ "name": "key",
+ "summary": "The\u0020key\u0020of\u0020the\u0020relation\u0020in\u0020the\u0020parent\u0020object.",
+ "url": "classes/Parse-ParseRelation.html#property_key"
+ }, {
+ "fqsen": "\\Parse\\ParseRelation\u003A\u003A\u0024targetClassName",
+ "name": "targetClassName",
+ "summary": "The\u0020className\u0020of\u0020the\u0020target\u0020objects.",
+ "url": "classes/Parse-ParseRelation.html#property_targetClassName"
+ }, {
+ "fqsen": "\\Parse\\ParseRole",
+ "name": "ParseRole",
+ "summary": "Class\u0020ParseRole\u0020\u002D\u0020Representation\u0020of\u0020an\u0020access\u0020Role.",
+ "url": "classes/Parse-ParseRole.html"
+ }, {
+ "fqsen": "\\Parse\\ParseRole\u003A\u003AcreateRole\u0028\u0029",
+ "name": "createRole",
+ "summary": "Create\u0020a\u0020ParseRole\u0020object\u0020with\u0020a\u0020given\u0020name\u0020and\u0020ACL.",
+ "url": "classes/Parse-ParseRole.html#method_createRole"
+ }, {
+ "fqsen": "\\Parse\\ParseRole\u003A\u003AgetName\u0028\u0029",
+ "name": "getName",
+ "summary": "Returns\u0020the\u0020role\u0020name.",
+ "url": "classes/Parse-ParseRole.html#method_getName"
+ }, {
+ "fqsen": "\\Parse\\ParseRole\u003A\u003AsetName\u0028\u0029",
+ "name": "setName",
+ "summary": "Sets\u0020the\u0020role\u0020name.",
+ "url": "classes/Parse-ParseRole.html#method_setName"
+ }, {
+ "fqsen": "\\Parse\\ParseRole\u003A\u003AgetUsers\u0028\u0029",
+ "name": "getUsers",
+ "summary": "Gets\u0020the\u0020ParseRelation\u0020for\u0020the\u0020ParseUsers\u0020which\u0020are\u0020direct\u0020children\u0020of\n\u0020\u0020\u0020\u0020this\u0020role.\u0020\u0020\u0020\u0020These\u0020users\u0020are\u0020granted\u0020any\u0020privileges\u0020that\u0020this\u0020role\n\u0020\u0020\u0020\u0020has\u0020been\u0020granted.",
+ "url": "classes/Parse-ParseRole.html#method_getUsers"
+ }, {
+ "fqsen": "\\Parse\\ParseRole\u003A\u003AgetRoles\u0028\u0029",
+ "name": "getRoles",
+ "summary": "Gets\u0020the\u0020ParseRelation\u0020for\u0020the\u0020ParseRoles\u0020which\u0020are\u0020direct\u0020children\u0020of\n\u0020\u0020\u0020\u0020this\u0020role.\u0020\u0020\u0020\u0020These\u0020roles\u0027\u0020users\u0020are\u0020granted\u0020any\u0020privileges\u0020that\u0020this\u0020role\n\u0020\u0020\u0020\u0020has\u0020been\u0020granted.",
+ "url": "classes/Parse-ParseRole.html#method_getRoles"
+ }, {
+ "fqsen": "\\Parse\\ParseRole\u003A\u003Asave\u0028\u0029",
+ "name": "save",
+ "summary": "Handles\u0020pre\u002Dsaving\u0020of\u0020this\u0020role\nCalls\u0020ParseObject\u003A\u003Asave\u0020to\u0020finish",
+ "url": "classes/Parse-ParseRole.html#method_save"
+ }, {
+ "fqsen": "\\Parse\\ParseRole\u003A\u003A\u0024parseClassName",
+ "name": "parseClassName",
+ "summary": "Parse\u0020Class\u0020name",
+ "url": "classes/Parse-ParseRole.html#property_parseClassName"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema",
+ "name": "ParseSchema",
+ "summary": "Class\u0020ParseSchema\u0020\u002D\u0020Handles\u0020schemas\u0020data\u0020from\u0020Parse.",
+ "url": "classes/Parse-ParseSchema.html"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "Create\u0020a\u0020Parse\u0020Schema.",
+ "url": "classes/Parse-ParseSchema.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003Aall\u0028\u0029",
+ "name": "all",
+ "summary": "Get\u0020all\u0020the\u0020Schema\u0020data\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseSchema.html#method_all"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003Aget\u0028\u0029",
+ "name": "get",
+ "summary": "Get\u0020the\u0020Schema\u0020from\u0020Parse.",
+ "url": "classes/Parse-ParseSchema.html#method_get"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003Asave\u0028\u0029",
+ "name": "save",
+ "summary": "Create\u0020a\u0020new\u0020Schema\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseSchema.html#method_save"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003Aupdate\u0028\u0029",
+ "name": "update",
+ "summary": "Update\u0020a\u0020Schema\u0020from\u0020Parse.",
+ "url": "classes/Parse-ParseSchema.html#method_update"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003Apurge\u0028\u0029",
+ "name": "purge",
+ "summary": "Removes\u0020all\u0020objects\u0020from\u0020a\u0020Schema\u0020\u0028class\u0029\u0020in\u0020Parse.",
+ "url": "classes/Parse-ParseSchema.html#method_purge"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003Adelete\u0028\u0029",
+ "name": "delete",
+ "summary": "Removing\u0020a\u0020Schema\u0020from\u0020Parse.",
+ "url": "classes/Parse-ParseSchema.html#method_delete"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddField\u0028\u0029",
+ "name": "addField",
+ "summary": "Adding\u0020a\u0020Field\u0020to\u0020Create\u0020\/\u0020Update\u0020a\u0020Schema.",
+ "url": "classes/Parse-ParseSchema.html#method_addField"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddIndex\u0028\u0029",
+ "name": "addIndex",
+ "summary": "Adding\u0020an\u0020Index\u0020to\u0020Create\u0020\/\u0020Update\u0020a\u0020Schema.",
+ "url": "classes/Parse-ParseSchema.html#method_addIndex"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddString\u0028\u0029",
+ "name": "addString",
+ "summary": "Adding\u0020String\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addString"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddNumber\u0028\u0029",
+ "name": "addNumber",
+ "summary": "Adding\u0020Number\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addNumber"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddBoolean\u0028\u0029",
+ "name": "addBoolean",
+ "summary": "Adding\u0020Boolean\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addBoolean"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddDate\u0028\u0029",
+ "name": "addDate",
+ "summary": "Adding\u0020Date\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addDate"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddFile\u0028\u0029",
+ "name": "addFile",
+ "summary": "Adding\u0020File\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addFile"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddGeoPoint\u0028\u0029",
+ "name": "addGeoPoint",
+ "summary": "Adding\u0020GeoPoint\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addGeoPoint"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddPolygon\u0028\u0029",
+ "name": "addPolygon",
+ "summary": "Adding\u0020Polygon\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addPolygon"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddArray\u0028\u0029",
+ "name": "addArray",
+ "summary": "Adding\u0020Array\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addArray"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddObject\u0028\u0029",
+ "name": "addObject",
+ "summary": "Adding\u0020Object\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addObject"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddPointer\u0028\u0029",
+ "name": "addPointer",
+ "summary": "Adding\u0020Pointer\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addPointer"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AaddRelation\u0028\u0029",
+ "name": "addRelation",
+ "summary": "Adding\u0020Relation\u0020Field.",
+ "url": "classes/Parse-ParseSchema.html#method_addRelation"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AdeleteField\u0028\u0029",
+ "name": "deleteField",
+ "summary": "Deleting\u0020a\u0020Field\u0020to\u0020Update\u0020on\u0020a\u0020Schema.",
+ "url": "classes/Parse-ParseSchema.html#method_deleteField"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AdeleteIndex\u0028\u0029",
+ "name": "deleteIndex",
+ "summary": "Deleting\u0020an\u0020Index\u0020to\u0020Update\u0020on\u0020a\u0020Schema.",
+ "url": "classes/Parse-ParseSchema.html#method_deleteIndex"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AassertClassName\u0028\u0029",
+ "name": "assertClassName",
+ "summary": "Assert\u0020if\u0020ClassName\u0020has\u0020filled.",
+ "url": "classes/Parse-ParseSchema.html#method_assertClassName"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003AassertTypes\u0028\u0029",
+ "name": "assertTypes",
+ "summary": "Assert\u0020types\u0020of\u0020fields.",
+ "url": "classes/Parse-ParseSchema.html#method_assertTypes"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024STRING",
+ "name": "STRING",
+ "summary": "String\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_STRING"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024NUMBER",
+ "name": "NUMBER",
+ "summary": "Number\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_NUMBER"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024BOOLEAN",
+ "name": "BOOLEAN",
+ "summary": "Boolean\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_BOOLEAN"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024DATE",
+ "name": "DATE",
+ "summary": "Date\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_DATE"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024FILE",
+ "name": "FILE",
+ "summary": "File\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_FILE"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024GEO_POINT",
+ "name": "GEO_POINT",
+ "summary": "GeoPoint\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_GEO_POINT"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024POLYGON",
+ "name": "POLYGON",
+ "summary": "Polygon\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_POLYGON"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024ARRAY",
+ "name": "ARRAY",
+ "summary": "Array\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_ARRAY"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024OBJECT",
+ "name": "OBJECT",
+ "summary": "Object\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_OBJECT"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024POINTER",
+ "name": "POINTER",
+ "summary": "Pointer\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_POINTER"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024RELATION",
+ "name": "RELATION",
+ "summary": "Relation\u0020data\u0020type",
+ "url": "classes/Parse-ParseSchema.html#property_RELATION"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024className",
+ "name": "className",
+ "summary": "Class\u0020name\u0020for\u0020data\u0020stored\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseSchema.html#property_className"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024fields",
+ "name": "fields",
+ "summary": "Fields\u0020to\u0020create.",
+ "url": "classes/Parse-ParseSchema.html#property_fields"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024indexes",
+ "name": "indexes",
+ "summary": "Indexes\u0020to\u0020create.",
+ "url": "classes/Parse-ParseSchema.html#property_indexes"
+ }, {
+ "fqsen": "\\Parse\\ParseSchema\u003A\u003A\u0024useMasterKey",
+ "name": "useMasterKey",
+ "summary": "Force\u0020to\u0020use\u0020master\u0020key\u0020in\u0020Schema\u0020Methods.",
+ "url": "classes/Parse-ParseSchema.html#property_useMasterKey"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo",
+ "name": "ParseServerInfo",
+ "summary": "Class\u0020ParseFeatures\u0020\u002D\u0020Representation\u0020of\u0020server\u002Dside\u0020features",
+ "url": "classes/Parse-ParseServerInfo.html"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003AgetServerInfo\u0028\u0029",
+ "name": "getServerInfo",
+ "summary": "Requests,\u0020sets\u0020and\u0020returns\u0020server\u0020features\u0020and\u0020version",
+ "url": "classes/Parse-ParseServerInfo.html#method_getServerInfo"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003A_setServerVersion\u0028\u0029",
+ "name": "_setServerVersion",
+ "summary": "Sets\u0020the\u0020current\u0020server\u0020version.",
+ "url": "classes/Parse-ParseServerInfo.html#method__setServerVersion"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003Aget\u0028\u0029",
+ "name": "get",
+ "summary": "Get\u0020a\u0020specific\u0020feature\u0020set\u0020from\u0020the\u0020server",
+ "url": "classes/Parse-ParseServerInfo.html#method_get"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003AgetFeatures\u0028\u0029",
+ "name": "getFeatures",
+ "summary": "Gets\u0020features\u0020for\u0020the\u0020current\u0020server",
+ "url": "classes/Parse-ParseServerInfo.html#method_getFeatures"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003AgetVersion\u0028\u0029",
+ "name": "getVersion",
+ "summary": "Gets\u0020the\u0020reported\u0020version\u0020of\u0020the\u0020current\u0020server",
+ "url": "classes/Parse-ParseServerInfo.html#method_getVersion"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003AgetGlobalConfigFeatures\u0028\u0029",
+ "name": "getGlobalConfigFeatures",
+ "summary": "Gets\u0020features\u0020available\u0020for\u0020globalConfig",
+ "url": "classes/Parse-ParseServerInfo.html#method_getGlobalConfigFeatures"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003AgetHooksFeatures\u0028\u0029",
+ "name": "getHooksFeatures",
+ "summary": "Gets\u0020features\u0020available\u0020for\u0020hooks",
+ "url": "classes/Parse-ParseServerInfo.html#method_getHooksFeatures"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003AgetCloudCodeFeatures\u0028\u0029",
+ "name": "getCloudCodeFeatures",
+ "summary": "Gets\u0020features\u0020available\u0020for\u0020cloudCode",
+ "url": "classes/Parse-ParseServerInfo.html#method_getCloudCodeFeatures"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003AgetLogsFeatures\u0028\u0029",
+ "name": "getLogsFeatures",
+ "summary": "Gets\u0020features\u0020available\u0020for\u0020logs",
+ "url": "classes/Parse-ParseServerInfo.html#method_getLogsFeatures"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003AgetPushFeatures\u0028\u0029",
+ "name": "getPushFeatures",
+ "summary": "Gets\u0020features\u0020available\u0020for\u0020push",
+ "url": "classes/Parse-ParseServerInfo.html#method_getPushFeatures"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003AgetSchemasFeatures\u0028\u0029",
+ "name": "getSchemasFeatures",
+ "summary": "Gets\u0020features\u0020available\u0020for\u0020schemas",
+ "url": "classes/Parse-ParseServerInfo.html#method_getSchemasFeatures"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003A\u0024serverFeatures",
+ "name": "serverFeatures",
+ "summary": "Reported\u0020server\u0020features\u0020and\u0020configs",
+ "url": "classes/Parse-ParseServerInfo.html#property_serverFeatures"
+ }, {
+ "fqsen": "\\Parse\\ParseServerInfo\u003A\u003A\u0024serverVersion",
+ "name": "serverVersion",
+ "summary": "Reported\u0020server\u0020version",
+ "url": "classes/Parse-ParseServerInfo.html#property_serverVersion"
+ }, {
+ "fqsen": "\\Parse\\ParseSession",
+ "name": "ParseSession",
+ "summary": "Class\u0020ParseSession\u0020\u002D\u0020Representation\u0020of\u0020an\u0020expiring\u0020user\u0020session.",
+ "url": "classes/Parse-ParseSession.html"
+ }, {
+ "fqsen": "\\Parse\\ParseSession\u003A\u003AgetSessionToken\u0028\u0029",
+ "name": "getSessionToken",
+ "summary": "Returns\u0020the\u0020session\u0020token\u0020string.",
+ "url": "classes/Parse-ParseSession.html#method_getSessionToken"
+ }, {
+ "fqsen": "\\Parse\\ParseSession\u003A\u003AgetCurrentSession\u0028\u0029",
+ "name": "getCurrentSession",
+ "summary": "Retrieves\u0020the\u0020Session\u0020object\u0020for\u0020the\u0020currently\u0020logged\u0020in\u0020user.",
+ "url": "classes/Parse-ParseSession.html#method_getCurrentSession"
+ }, {
+ "fqsen": "\\Parse\\ParseSession\u003A\u003AisCurrentSessionRevocable\u0028\u0029",
+ "name": "isCurrentSessionRevocable",
+ "summary": "Determines\u0020whether\u0020the\u0020current\u0020session\u0020token\u0020is\u0020revocable.",
+ "url": "classes/Parse-ParseSession.html#method_isCurrentSessionRevocable"
+ }, {
+ "fqsen": "\\Parse\\ParseSession\u003A\u003A_isRevocable\u0028\u0029",
+ "name": "_isRevocable",
+ "summary": "Determines\u0020whether\u0020a\u0020session\u0020token\u0020is\u0020revocable.",
+ "url": "classes/Parse-ParseSession.html#method__isRevocable"
+ }, {
+ "fqsen": "\\Parse\\ParseSession\u003A\u003AupgradeToRevocableSession\u0028\u0029",
+ "name": "upgradeToRevocableSession",
+ "summary": "Upgrades\u0020the\u0020current\u0020session\u0020to\u0020a\u0020revocable\u0020one",
+ "url": "classes/Parse-ParseSession.html#method_upgradeToRevocableSession"
+ }, {
+ "fqsen": "\\Parse\\ParseSession\u003A\u003AhandleSaveResult\u0028\u0029",
+ "name": "handleSaveResult",
+ "summary": "After\u0020a\u0020save,\u0020perform\u0020Session\u0020object\u0020specific\u0020logic.",
+ "url": "classes/Parse-ParseSession.html#method_handleSaveResult"
+ }, {
+ "fqsen": "\\Parse\\ParseSession\u003A\u003A\u0024parseClassName",
+ "name": "parseClassName",
+ "summary": "Parse\u0020Class\u0020name",
+ "url": "classes/Parse-ParseSession.html#property_parseClassName"
+ }, {
+ "fqsen": "\\Parse\\ParseSession\u003A\u003A\u0024_sessionToken",
+ "name": "_sessionToken",
+ "summary": "Session\u0020token\u0020string",
+ "url": "classes/Parse-ParseSession.html#property__sessionToken"
+ }, {
+ "fqsen": "\\Parse\\ParseSessionStorage",
+ "name": "ParseSessionStorage",
+ "summary": "Class\u0020ParseSessionStorage\u0020\u002D\u0020Uses\u0020PHP\u0020session\u0020support\u0020for\u0020persistent\u0020storage.",
+ "url": "classes/Parse-ParseSessionStorage.html"
+ }, {
+ "fqsen": "\\Parse\\ParseSessionStorage\u003A\u003A__construct\u0028\u0029",
+ "name": "__construct",
+ "summary": "ParseSessionStorage\u0020constructor.",
+ "url": "classes/Parse-ParseSessionStorage.html#method___construct"
+ }, {
+ "fqsen": "\\Parse\\ParseSessionStorage\u003A\u003Aset\u0028\u0029",
+ "name": "set",
+ "summary": "Sets\u0020a\u0020key\u002Dvalue\u0020pair\u0020in\u0020storage.",
+ "url": "classes/Parse-ParseSessionStorage.html#method_set"
+ }, {
+ "fqsen": "\\Parse\\ParseSessionStorage\u003A\u003Aremove\u0028\u0029",
+ "name": "remove",
+ "summary": "Remove\u0020a\u0020key\u0020from\u0020storage.",
+ "url": "classes/Parse-ParseSessionStorage.html#method_remove"
+ }, {
+ "fqsen": "\\Parse\\ParseSessionStorage\u003A\u003Aget\u0028\u0029",
+ "name": "get",
+ "summary": "Gets\u0020the\u0020value\u0020for\u0020a\u0020key\u0020from\u0020storage.",
+ "url": "classes/Parse-ParseSessionStorage.html#method_get"
+ }, {
+ "fqsen": "\\Parse\\ParseSessionStorage\u003A\u003Aclear\u0028\u0029",
+ "name": "clear",
+ "summary": "Clear\u0020all\u0020the\u0020values\u0020in\u0020storage.",
+ "url": "classes/Parse-ParseSessionStorage.html#method_clear"
+ }, {
+ "fqsen": "\\Parse\\ParseSessionStorage\u003A\u003Asave\u0028\u0029",
+ "name": "save",
+ "summary": "Save\u0020the\u0020data,\u0020if\u0020necessary.\u0020Not\u0020implemented.",
+ "url": "classes/Parse-ParseSessionStorage.html#method_save"
+ }, {
+ "fqsen": "\\Parse\\ParseSessionStorage\u003A\u003AgetKeys\u0028\u0029",
+ "name": "getKeys",
+ "summary": "Get\u0020all\u0020keys\u0020in\u0020storage.",
+ "url": "classes/Parse-ParseSessionStorage.html#method_getKeys"
+ }, {
+ "fqsen": "\\Parse\\ParseSessionStorage\u003A\u003AgetAll\u0028\u0029",
+ "name": "getAll",
+ "summary": "Get\u0020all\u0020key\u002Dvalue\u0020pairs\u0020from\u0020storage.",
+ "url": "classes/Parse-ParseSessionStorage.html#method_getAll"
+ }, {
+ "fqsen": "\\Parse\\ParseSessionStorage\u003A\u003A\u0024storageKey",
+ "name": "storageKey",
+ "summary": "Parse\u0020will\u0020store\u0020its\u0020values\u0020in\u0020a\u0020specific\u0020key.",
+ "url": "classes/Parse-ParseSessionStorage.html#property_storageKey"
+ }, {
+ "fqsen": "\\Parse\\ParseStorageInterface",
+ "name": "ParseStorageInterface",
+ "summary": "Class\u0020ParseStorageInterface\u0020\u002D\u0020Specifies\u0020an\u0020interface\u0020for\u0020implementing\u0020persistence.",
+ "url": "classes/Parse-ParseStorageInterface.html"
+ }, {
+ "fqsen": "\\Parse\\ParseStorageInterface\u003A\u003Aset\u0028\u0029",
+ "name": "set",
+ "summary": "Sets\u0020a\u0020key\u002Dvalue\u0020pair\u0020in\u0020storage.",
+ "url": "classes/Parse-ParseStorageInterface.html#method_set"
+ }, {
+ "fqsen": "\\Parse\\ParseStorageInterface\u003A\u003Aremove\u0028\u0029",
+ "name": "remove",
+ "summary": "Remove\u0020a\u0020key\u0020from\u0020storage.",
+ "url": "classes/Parse-ParseStorageInterface.html#method_remove"
+ }, {
+ "fqsen": "\\Parse\\ParseStorageInterface\u003A\u003Aget\u0028\u0029",
+ "name": "get",
+ "summary": "Gets\u0020the\u0020value\u0020for\u0020a\u0020key\u0020from\u0020storage.",
+ "url": "classes/Parse-ParseStorageInterface.html#method_get"
+ }, {
+ "fqsen": "\\Parse\\ParseStorageInterface\u003A\u003Aclear\u0028\u0029",
+ "name": "clear",
+ "summary": "Clear\u0020all\u0020the\u0020values\u0020in\u0020storage.",
+ "url": "classes/Parse-ParseStorageInterface.html#method_clear"
+ }, {
+ "fqsen": "\\Parse\\ParseStorageInterface\u003A\u003Asave\u0028\u0029",
+ "name": "save",
+ "summary": "Save\u0020the\u0020data,\u0020if\u0020necessary.\u0020\u0020\u0020\u0020This\u0020would\u0020be\u0020a\u0020no\u002Dop\u0020when\u0020using\u0020the\n\u0024_SESSION\u0020implementation,\u0020but\u0020could\u0020be\u0020used\u0020for\u0020saving\u0020to\u0020file\u0020or\ndatabase\u0020as\u0020an\u0020action\u0020instead\u0020of\u0020on\u0020every\u0020set.",
+ "url": "classes/Parse-ParseStorageInterface.html#method_save"
+ }, {
+ "fqsen": "\\Parse\\ParseStorageInterface\u003A\u003AgetKeys\u0028\u0029",
+ "name": "getKeys",
+ "summary": "Get\u0020all\u0020keys\u0020in\u0020storage.",
+ "url": "classes/Parse-ParseStorageInterface.html#method_getKeys"
+ }, {
+ "fqsen": "\\Parse\\ParseStorageInterface\u003A\u003AgetAll\u0028\u0029",
+ "name": "getAll",
+ "summary": "Get\u0020all\u0020key\u002Dvalue\u0020pairs\u0020from\u0020storage.",
+ "url": "classes/Parse-ParseStorageInterface.html#method_getAll"
+ }, {
+ "fqsen": "\\Parse\\ParseUser",
+ "name": "ParseUser",
+ "summary": "Class\u0020ParseUser\u0020\u002D\u0020Representation\u0020of\u0020a\u0020user\u0020object\u0020stored\u0020on\u0020Parse.",
+ "url": "classes/Parse-ParseUser.html"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AgetUsername\u0028\u0029",
+ "name": "getUsername",
+ "summary": "Returns\u0020the\u0020username.",
+ "url": "classes/Parse-ParseUser.html#method_getUsername"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AsetUsername\u0028\u0029",
+ "name": "setUsername",
+ "summary": "Sets\u0020the\u0020username\u0020for\u0020the\u0020ParseUser.",
+ "url": "classes/Parse-ParseUser.html#method_setUsername"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AsetPassword\u0028\u0029",
+ "name": "setPassword",
+ "summary": "Sets\u0020the\u0020password\u0020for\u0020the\u0020ParseUser.",
+ "url": "classes/Parse-ParseUser.html#method_setPassword"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AgetEmail\u0028\u0029",
+ "name": "getEmail",
+ "summary": "Returns\u0020the\u0020email\u0020address,\u0020if\u0020set,\u0020for\u0020the\u0020ParseUser.",
+ "url": "classes/Parse-ParseUser.html#method_getEmail"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AsetEmail\u0028\u0029",
+ "name": "setEmail",
+ "summary": "Sets\u0020the\u0020email\u0020address\u0020for\u0020the\u0020ParseUser.",
+ "url": "classes/Parse-ParseUser.html#method_setEmail"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AisAuthenticated\u0028\u0029",
+ "name": "isAuthenticated",
+ "summary": "Checks\u0020whether\u0020this\u0020user\u0020has\u0020been\u0020authenticated.",
+ "url": "classes/Parse-ParseUser.html#method_isAuthenticated"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AsignUp\u0028\u0029",
+ "name": "signUp",
+ "summary": "Signs\u0020up\u0020the\u0020current\u0020user,\u0020or\u0020throw\u0020if\u0020invalid.",
+ "url": "classes/Parse-ParseUser.html#method_signUp"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AlogIn\u0028\u0029",
+ "name": "logIn",
+ "summary": "Logs\u0020in\u0020and\u0020returns\u0020a\u0020valid\u0020ParseUser,\u0020or\u0020throws\u0020if\u0020invalid.",
+ "url": "classes/Parse-ParseUser.html#method_logIn"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AlogInAs\u0028\u0029",
+ "name": "logInAs",
+ "summary": "Uses\u0020the\u0020master\u0020key\u0020to\u0020log\u0020in\u0020and\u0020return\u0020a\u0020valid\u0020ParseUser,\u0020or\u0020throws\u0020if\u0020invalid.",
+ "url": "classes/Parse-ParseUser.html#method_logInAs"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AlogInWithFacebook\u0028\u0029",
+ "name": "logInWithFacebook",
+ "summary": "Logs\u0020in\u0020with\u0020Facebook\u0020details,\u0020or\u0020throws\u0020if\u0020invalid.",
+ "url": "classes/Parse-ParseUser.html#method_logInWithFacebook"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AlogInWithTwitter\u0028\u0029",
+ "name": "logInWithTwitter",
+ "summary": "Logs\u0020in\u0020with\u0020Twitter\u0020details,\u0020or\u0020throws\u0020if\u0020invalid.",
+ "url": "classes/Parse-ParseUser.html#method_logInWithTwitter"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AloginWithAnonymous\u0028\u0029",
+ "name": "loginWithAnonymous",
+ "summary": "Login\u0020as\u0020an\u0020anonymous\u0020User\u0020with\u0020REST\u0020API.\u0020See\u0020docs\u0020http\u003A\/\/parseplatform.org\/docs\/php\/guide\/\u0023users",
+ "url": "classes/Parse-ParseUser.html#method_loginWithAnonymous"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AlogInWith\u0028\u0029",
+ "name": "logInWith",
+ "summary": "Logs\u0020in\u0020with\u0020a\u0020service.",
+ "url": "classes/Parse-ParseUser.html#method_logInWith"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AlinkWithFacebook\u0028\u0029",
+ "name": "linkWithFacebook",
+ "summary": "Link\u0020the\u0020user\u0020with\u0020Facebook\u0020details.",
+ "url": "classes/Parse-ParseUser.html#method_linkWithFacebook"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AlinkWithTwitter\u0028\u0029",
+ "name": "linkWithTwitter",
+ "summary": "Link\u0020the\u0020user\u0020with\u0020Twitter\u0020details.",
+ "url": "classes/Parse-ParseUser.html#method_linkWithTwitter"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AlinkWith\u0028\u0029",
+ "name": "linkWith",
+ "summary": "Link\u0020the\u0020user\u0020with\u0020a\u0020service.",
+ "url": "classes/Parse-ParseUser.html#method_linkWith"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003Abecome\u0028\u0029",
+ "name": "become",
+ "summary": "Logs\u0020in\u0020a\u0020user\u0020with\u0020a\u0020session\u0020token.\u0020\u0020\u0020\u0020Calls\u0020the\u0020\/users\/me\u0020route\u0020and\u0020if\n\u0020\u0020\u0020\u0020valid,\u0020creates\u0020and\u0020returns\u0020the\u0020current\u0020user.",
+ "url": "classes/Parse-ParseUser.html#method_become"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AlogOut\u0028\u0029",
+ "name": "logOut",
+ "summary": "Log\u0020out\u0020the\u0020current\u0020user.\u0020\u0020\u0020\u0020This\u0020will\u0020clear\u0020the\u0020storage\u0020and\u0020future\u0020calls\n\u0020\u0020\u0020\u0020to\u0020current\u0020will\u0020return\u0020null.",
+ "url": "classes/Parse-ParseUser.html#method_logOut"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AhandleSaveResult\u0028\u0029",
+ "name": "handleSaveResult",
+ "summary": "After\u0020a\u0020save,\u0020perform\u0020User\u0020object\u0020specific\u0020logic.",
+ "url": "classes/Parse-ParseUser.html#method_handleSaveResult"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AgetCurrentUser\u0028\u0029",
+ "name": "getCurrentUser",
+ "summary": "Retrieves\u0020the\u0020currently\u0020logged\u0020in\u0020ParseUser\u0020with\u0020a\u0020valid\u0020session,\neither\u0020from\u0020memory\u0020or\u0020the\u0020storage\u0020provider,\u0020if\u0020necessary.",
+ "url": "classes/Parse-ParseUser.html#method_getCurrentUser"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AsaveCurrentUser\u0028\u0029",
+ "name": "saveCurrentUser",
+ "summary": "Persists\u0020the\u0020current\u0020user\u0020to\u0020the\u0020storage\u0020provider.",
+ "url": "classes/Parse-ParseUser.html#method_saveCurrentUser"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AgetSessionToken\u0028\u0029",
+ "name": "getSessionToken",
+ "summary": "Returns\u0020the\u0020session\u0020token,\u0020if\u0020available.",
+ "url": "classes/Parse-ParseUser.html#method_getSessionToken"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AisCurrent\u0028\u0029",
+ "name": "isCurrent",
+ "summary": "Returns\u0020true\u0020if\u0020this\u0020user\u0020is\u0020the\u0020current\u0020user.",
+ "url": "classes/Parse-ParseUser.html#method_isCurrent"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003AclearAnonymousAuthData\u0028\u0029",
+ "name": "clearAnonymousAuthData",
+ "summary": "Remove\u0020current\u0020user\u0027s\u0020anonymous\u0020AuthData",
+ "url": "classes/Parse-ParseUser.html#method_clearAnonymousAuthData"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003Asave\u0028\u0029",
+ "name": "save",
+ "summary": "Save\u0020the\u0020current\u0020user\u0020object,\u0020unless\u0020it\u0020is\u0020not\u0020signed\u0020up.",
+ "url": "classes/Parse-ParseUser.html#method_save"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003ArequestPasswordReset\u0028\u0029",
+ "name": "requestPasswordReset",
+ "summary": "Requests\u0020a\u0020password\u0020reset\u0020email\u0020to\u0020be\u0020sent\u0020to\u0020the\u0020specified\u0020email\naddress\u0020associated\u0020with\u0020the\u0020user\u0020account.\u0020\u0020\u0020\u0020This\u0020email\u0020allows\u0020the\u0020user\nto\u0020securely\u0020reset\u0020their\u0020password\u0020on\u0020the\u0020Parse\u0020site.",
+ "url": "classes/Parse-ParseUser.html#method_requestPasswordReset"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003ArequestVerificationEmail\u0028\u0029",
+ "name": "requestVerificationEmail",
+ "summary": "Request\u0020a\u0020verification\u0020email\u0020to\u0020be\u0020sent\u0020to\u0020the\u0020specified\u0020email\u0020address",
+ "url": "classes/Parse-ParseUser.html#method_requestVerificationEmail"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003A_clearCurrentUserVariable\u0028\u0029",
+ "name": "_clearCurrentUserVariable",
+ "summary": "Sets\u0020the\u0020current\u0020user\u0020to\u0020null.\u0020Used\u0020internally\u0020for\u0020testing\u0020purposes.",
+ "url": "classes/Parse-ParseUser.html#method__clearCurrentUserVariable"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003A\u0024parseClassName",
+ "name": "parseClassName",
+ "summary": "Parse\u0020Class\u0020name",
+ "url": "classes/Parse-ParseUser.html#property_parseClassName"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003A\u0024currentUser",
+ "name": "currentUser",
+ "summary": "The\u0020currently\u0020logged\u002Din\u0020user.",
+ "url": "classes/Parse-ParseUser.html#property_currentUser"
+ }, {
+ "fqsen": "\\Parse\\ParseUser\u003A\u003A\u0024_sessionToken",
+ "name": "_sessionToken",
+ "summary": "The\u0020sessionToken\u0020for\u0020an\u0020authenticated\u0020user.",
+ "url": "classes/Parse-ParseUser.html#property__sessionToken"
+ }, {
+ "fqsen": "\\",
+ "name": "\\",
+ "summary": "",
+ "url": "namespaces/default.html"
+ }, {
+ "fqsen": "\\Parse\\HttpClients",
+ "name": "HttpClients",
+ "summary": "",
+ "url": "namespaces/parse-httpclients.html"
+ }, {
+ "fqsen": "\\Parse\\Internal",
+ "name": "Internal",
+ "summary": "",
+ "url": "namespaces/parse-internal.html"
+ }, {
+ "fqsen": "\\Parse",
+ "name": "Parse",
+ "summary": "",
+ "url": "namespaces/parse.html"
+ } ]
+);
diff --git a/namespaces/default.html b/namespaces/default.html
new file mode 100644
index 00000000..7ce9945a
--- /dev/null
+++ b/namespaces/default.html
@@ -0,0 +1,129 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ API Documentation
+
+
+
+ Namespaces
+
+
+
+
+ Parse
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/namespaces/parse-httpclients.html b/namespaces/parse-httpclients.html
new file mode 100644
index 00000000..60403c66
--- /dev/null
+++ b/namespaces/parse-httpclients.html
@@ -0,0 +1,141 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HttpClients
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ ParseHttpable
+ Class ParseHttpable - Interface for an HTTPable client
+
+ ParseCurl
+ Class ParseCurl - Wrapper for abstracted curl usage
+ ParseCurlHttpClient
+ Class ParseCurlHttpClient - Curl http client
+ ParseStream
+ Class ParseStream - Wrapper for abstracted stream usage
+ ParseStreamHttpClient
+ Class ParseStreamHttpClient - Stream http client
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/namespaces/parse-internal.html b/namespaces/parse-internal.html
new file mode 100644
index 00000000..73fb968a
--- /dev/null
+++ b/namespaces/parse-internal.html
@@ -0,0 +1,151 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Internal
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ Encodable
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+ FieldOperation
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+ AddOperation
+ Class AddOperation - FieldOperation for adding object(s) to array fields.
+ AddUniqueOperation
+ Class AddUniqueOperation - Operation to add unique objects to an array key.
+ DeleteOperation
+ Class DeleteOperation - FieldOperation to remove a key from an object.
+ IncrementOperation
+ Class IncrementOperation - Operation to increment numeric object key.
+ ParseRelationOperation
+ Class ParseRelationOperation - A class that is used to manage ParseRelation changes such as object add or remove.
+ RemoveOperation
+ Class RemoveOperation - FieldOperation for removing object(s) from array
+fields.
+ SetOperation
+ Class SetOperation - Operation to set a value for an object key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/namespaces/parse.html b/namespaces/parse.html
new file mode 100644
index 00000000..f788b6f4
--- /dev/null
+++ b/namespaces/parse.html
@@ -0,0 +1,200 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parse
+
+
+
+ Namespaces
+
+
+
+
+ HttpClients
+ Internal
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ ParseStorageInterface
+ Class ParseStorageInterface - Specifies an interface for implementing persistence.
+
+ ParseACL
+ Class ParseACL - is used to control which users can access or modify a particular
+object. Each ParseObject can have its own ParseACL. You can grant read and
+write permissions separately to specific users, to groups of users that
+belong to roles, or you can grant permissions to "the public" so that, for
+example, any user could read a particular object but only a particular set
+of users could write to that object.
+ ParseAggregateException
+ Class ParseAggregateException - Multiple error condition.
+ ParseAnalytics
+ Class ParseAnalytics - Handles sending app-open and custom analytics events.
+ ParseAudience
+ Class ParseAudience - Representation of Audience for tracking and sending push notifications
+ ParseBytes
+ Class ParseBytes - Representation of a Byte array for storage on a Parse Object.
+ ParseClient
+ Class ParseClient - Main class for Parse initialization and communication.
+ ParseCloud
+ Class ParseCloud - Facilitates calling Parse Cloud functions.
+ ParseConfig
+ Class ParseConfig - For accessing Parse Config settings.
+ ParseException
+ Class ParseException - Wrapper for \Exception class.
+ ParseFile
+ Class ParseFile - Representation of a Parse File object.
+ ParseGeoPoint
+ Class ParseGeoPoint - Representation of a Parse GeoPoint object.
+ ParseHooks
+ Class ParseHooks - Representation of a Parse Hooks object.
+ ParseInstallation
+ Class ParseInstallation - Representation of an Installation stored on Parse.
+ ParseLogs
+ Class ParseLogs - Allows access to server side parse script logs
+ ParseMemoryStorage
+ Class ParseMemoryStorage - Uses non-persisted memory for storage.
+ ParseObject
+ Class ParseObject - Representation of an object stored on Parse.
+ ParsePolygon
+ ParsePolygon - Representation of a Parse Polygon object.
+ ParsePush
+ Class ParsePush - Handles sending push notifications with Parse.
+ ParsePushStatus
+ Class ParsePushStatus - Representation of PushStatus for push notifications
+ ParseQuery
+ Class ParseQuery - Handles querying data from Parse.
+ ParseRelation
+ Class ParseRelation - A class that is used to access all of the children of a many-to-many relationship.
+ ParseRole
+ Class ParseRole - Representation of an access Role.
+ ParseSchema
+ Class ParseSchema - Handles schemas data from Parse.
+ ParseServerInfo
+ Class ParseFeatures - Representation of server-side features
+ ParseSession
+ Class ParseSession - Representation of an expiring user session.
+ ParseSessionStorage
+ Class ParseSessionStorage - Uses PHP session support for persistent storage.
+ ParseUser
+ Class ParseUser - Representation of a user object stored on Parse.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 87920c4e..00000000
--- a/package-lock.json
+++ /dev/null
@@ -1,25541 +0,0 @@
-{
- "name": "parse-php-sdk",
- "version": "2.4.0",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "parse-php-sdk",
- "version": "2.4.0",
- "license": "BSD-3-Clause",
- "devDependencies": {
- "@semantic-release/changelog": "6.0.3",
- "@semantic-release/commit-analyzer": "9.0.2",
- "@semantic-release/exec": "6.0.3",
- "@semantic-release/git": "10.0.1",
- "@semantic-release/github": "8.0.7",
- "@semantic-release/release-notes-generator": "10.0.3",
- "mongodb-runner": "4.8.1",
- "parse-server": "github:parse-community/parse-server#alpha",
- "semantic-release": "21.0.1",
- "winston": "3.2.1"
- }
- },
- "node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.21.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
- "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.21.7",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz",
- "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.21.8",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz",
- "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.21.4",
- "@babel/generator": "^7.21.5",
- "@babel/helper-compilation-targets": "^7.21.5",
- "@babel/helper-module-transforms": "^7.21.5",
- "@babel/helpers": "^7.21.5",
- "@babel/parser": "^7.21.8",
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.21.5",
- "@babel/types": "^7.21.5",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.2",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/eslint-parser": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz",
- "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==",
- "dev": true,
- "dependencies": {
- "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
- "eslint-visitor-keys": "^2.1.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
- },
- "peerDependencies": {
- "@babel/core": ">=7.11.0",
- "eslint": "^7.5.0 || ^8.0.0"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz",
- "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/types": "^7.21.5",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz",
- "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/compat-data": "^7.21.5",
- "@babel/helper-validator-option": "^7.21.0",
- "browserslist": "^4.21.3",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/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,
- "peer": true,
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true,
- "peer": true
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz",
- "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.21.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
- "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/template": "^7.20.7",
- "@babel/types": "^7.21.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.21.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
- "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/types": "^7.21.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz",
- "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.21.5",
- "@babel/helper-module-imports": "^7.21.4",
- "@babel/helper-simple-access": "^7.21.5",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.21.5",
- "@babel/types": "^7.21.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz",
- "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/types": "^7.21.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz",
- "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.21.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz",
- "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz",
- "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.21.5",
- "@babel/types": "^7.21.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.21.8",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz",
- "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==",
- "dev": true,
- "peer": true,
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.0.tgz",
- "integrity": "sha512-YMQvx/6nKEaucl0MY56mwIG483xk8SDNdlUwb2Ts6FUpr7fm85DxEmsY18LXBNhcTz6tO6JwZV8w1W06v8UKeg==",
- "dev": true,
- "dependencies": {
- "regenerator-runtime": "^0.13.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/runtime-corejs3": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz",
- "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==",
- "dev": true,
- "dependencies": {
- "core-js-pure": "^3.20.2",
- "regenerator-runtime": "^0.13.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
- "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz",
- "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/code-frame": "^7.21.4",
- "@babel/generator": "^7.21.5",
- "@babel/helper-environment-visitor": "^7.21.5",
- "@babel/helper-function-name": "^7.21.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.21.5",
- "@babel/types": "^7.21.5",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz",
- "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/helper-string-parser": "^7.21.5",
- "@babel/helper-validator-identifier": "^7.19.1",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
- "dev": true,
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/@dabh/diagnostics": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
- "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
- "dev": true,
- "dependencies": {
- "colorspace": "1.1.x",
- "enabled": "2.0.x",
- "kuler": "^2.0.0"
- }
- },
- "node_modules/@dabh/diagnostics/node_modules/enabled": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
- "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==",
- "dev": true
- },
- "node_modules/@dabh/diagnostics/node_modules/kuler": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
- "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==",
- "dev": true
- },
- "node_modules/@envelop/core": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@envelop/core/-/core-2.6.0.tgz",
- "integrity": "sha512-yTptKinJN//i6m1kXUbnLBl/FobzddI4ehURAMS08eRUOQwAuXqJU9r8VdTav8nIZLb4t6cuDWFb3n331LiwLw==",
- "dev": true,
- "dependencies": {
- "@envelop/types": "2.4.0",
- "tslib": "2.4.0"
- },
- "peerDependencies": {
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
- }
- },
- "node_modules/@envelop/core/node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
- "dev": true
- },
- "node_modules/@envelop/parser-cache": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/@envelop/parser-cache/-/parser-cache-4.7.0.tgz",
- "integrity": "sha512-63NfXDcW/vGn4U6NFxaZ0JbYWAcJb9A6jhTvghsSz1ZS+Dny/ci8bVSgVmM1q+N56hPyGsVPuyI+rIc71mPU5g==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0",
- "tslib": "^2.4.0"
- },
- "peerDependencies": {
- "@envelop/core": "^2.6.0",
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
- }
- },
- "node_modules/@envelop/types": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/@envelop/types/-/types-2.4.0.tgz",
- "integrity": "sha512-pjxS98cDQBS84X29VcwzH3aJ/KiLCGwyMxuj7/5FkdiaCXAD1JEvKEj9LARWlFYj1bY43uII4+UptFebrhiIaw==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.4.0"
- },
- "peerDependencies": {
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
- }
- },
- "node_modules/@envelop/validation-cache": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/@envelop/validation-cache/-/validation-cache-4.7.0.tgz",
- "integrity": "sha512-PzL+GfWJRT+JjsJqZAIxHKEkvkM3hxkeytS5O0QLXT8kURNBV28r+Kdnn2RCF5+6ILhyGpiDb60vaquBi7g4lw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0",
- "tslib": "^2.4.0"
- },
- "peerDependencies": {
- "@envelop/core": "^2.6.0",
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
- }
- },
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "eslint-visitor-keys": "^3.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
- }
- },
- "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
- "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint-community/regexpp": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
- "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz",
- "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.5.2",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/js": {
- "version": "8.40.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz",
- "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/@graphql-tools/merge": {
- "version": "8.3.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.6.tgz",
- "integrity": "sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ==",
- "dev": true,
- "dependencies": {
- "@graphql-tools/utils": "8.12.0",
- "tslib": "^2.4.0"
- },
- "peerDependencies": {
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- }
- },
- "node_modules/@graphql-tools/schema": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.4.tgz",
- "integrity": "sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ==",
- "dev": true,
- "dependencies": {
- "@graphql-tools/merge": "8.3.6",
- "@graphql-tools/utils": "8.12.0",
- "tslib": "^2.4.0",
- "value-or-promise": "1.0.11"
- },
- "peerDependencies": {
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- }
- },
- "node_modules/@graphql-tools/utils": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.12.0.tgz",
- "integrity": "sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.4.0"
- },
- "peerDependencies": {
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- }
- },
- "node_modules/@graphql-typed-document-node/core": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
- "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
- "dev": true,
- "peerDependencies": {
- "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- }
- },
- "node_modules/@graphql-yoga/common": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@graphql-yoga/common/-/common-2.6.0.tgz",
- "integrity": "sha512-iG33wMQlBujB1+Q2D/CLEVDW3xTeBVhHKsbaUmVSHV4zpmGRRQMg/YROJ2mU1lONOyZDPIC+9j3AR7+x0dSzoA==",
- "dev": true,
- "dependencies": {
- "@envelop/core": "^2.0.0",
- "@envelop/parser-cache": "^4.0.0",
- "@envelop/validation-cache": "^4.0.0",
- "@graphql-tools/schema": "^8.3.1",
- "@graphql-tools/utils": "^8.6.0",
- "@graphql-typed-document-node/core": "^3.1.1",
- "@graphql-yoga/subscription": "2.0.0",
- "cross-undici-fetch": "^0.4.2",
- "dset": "^3.1.1",
- "tslib": "^2.3.1"
- },
- "peerDependencies": {
- "graphql": "^15.2.0 || ^16.0.0"
- }
- },
- "node_modules/@graphql-yoga/common/node_modules/@graphql-tools/merge": {
- "version": "8.3.1",
- "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz",
- "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==",
- "dev": true,
- "dependencies": {
- "@graphql-tools/utils": "8.9.0",
- "tslib": "^2.4.0"
- },
- "peerDependencies": {
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- }
- },
- "node_modules/@graphql-yoga/common/node_modules/@graphql-tools/schema": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz",
- "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==",
- "dev": true,
- "dependencies": {
- "@graphql-tools/merge": "8.3.1",
- "@graphql-tools/utils": "8.9.0",
- "tslib": "^2.4.0",
- "value-or-promise": "1.0.11"
- },
- "peerDependencies": {
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- }
- },
- "node_modules/@graphql-yoga/common/node_modules/@graphql-tools/utils": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz",
- "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.4.0"
- },
- "peerDependencies": {
- "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
- }
- },
- "node_modules/@graphql-yoga/node": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@graphql-yoga/node/-/node-2.6.0.tgz",
- "integrity": "sha512-VkHaiIwDYx+WJI/NnT2x+mGknk1YoNTP/auweDvKzPXdsWR5Za8rEYUloKZX4TxHTpyqbBLMtCt+4TDITriVbA==",
- "dev": true,
- "dependencies": {
- "@envelop/core": "^2.0.0",
- "@graphql-tools/utils": "^8.6.0",
- "@graphql-yoga/common": "2.6.0",
- "@graphql-yoga/subscription": "2.0.0",
- "cross-undici-fetch": "^0.4.2",
- "tslib": "^2.3.1"
- },
- "peerDependencies": {
- "graphql": "^15.2.0 || ^16.0.0"
- }
- },
- "node_modules/@graphql-yoga/subscription": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@graphql-yoga/subscription/-/subscription-2.0.0.tgz",
- "integrity": "sha512-HlG+gIddjIP3/BDrMZymdzmzDjNdYuSGMxx6+1JA83gAEVRDR4yOoT4QeNKYqRhLK9xca/Hxp1PfBpquSa244Q==",
- "dev": true,
- "dependencies": {
- "@repeaterjs/repeater": "^3.0.4",
- "tslib": "^2.3.1"
- }
- },
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.5"
- },
- "engines": {
- "node": ">=10.10.0"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
- "dev": true,
- "peer": true
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true,
- "peer": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
- "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- }
- },
- "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "dev": true,
- "peer": true
- },
- "node_modules/@napi-rs/triples": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.1.0.tgz",
- "integrity": "sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==",
- "dev": true,
- "optional": true
- },
- "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
- "version": "5.1.1-v1",
- "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
- "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
- "dev": true,
- "dependencies": {
- "eslint-scope": "5.1.1"
- }
- },
- "node_modules/@node-redis/bloom": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@node-redis/bloom/-/bloom-1.0.1.tgz",
- "integrity": "sha512-mXEBvEIgF4tUzdIN89LiYsbi6//EdpFA7L8M+DHCvePXg+bfHWi+ct5VI6nHUFQE5+ohm/9wmgihCH3HSkeKsw==",
- "dev": true,
- "peerDependencies": {
- "@node-redis/client": "^1.0.0"
- }
- },
- "node_modules/@node-redis/client": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@node-redis/client/-/client-1.0.5.tgz",
- "integrity": "sha512-ESZ3bd1f+od62h4MaBLKum+klVJfA4wAeLHcVQBkoXa1l0viFesOWnakLQqKg+UyrlJhZmXJWtu0Y9v7iTMrig==",
- "dev": true,
- "dependencies": {
- "cluster-key-slot": "1.1.0",
- "generic-pool": "3.8.2",
- "redis-parser": "3.0.0",
- "yallist": "4.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@node-redis/graph": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@node-redis/graph/-/graph-1.0.0.tgz",
- "integrity": "sha512-mRSo8jEGC0cf+Rm7q8mWMKKKqkn6EAnA9IA2S3JvUv/gaWW/73vil7GLNwion2ihTptAm05I9LkepzfIXUKX5g==",
- "dev": true,
- "peerDependencies": {
- "@node-redis/client": "^1.0.0"
- }
- },
- "node_modules/@node-redis/json": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@node-redis/json/-/json-1.0.2.tgz",
- "integrity": "sha512-qVRgn8WfG46QQ08CghSbY4VhHFgaTY71WjpwRBGEuqGPfWwfRcIf3OqSpR7Q/45X+v3xd8mvYjywqh0wqJ8T+g==",
- "dev": true,
- "peerDependencies": {
- "@node-redis/client": "^1.0.0"
- }
- },
- "node_modules/@node-redis/search": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@node-redis/search/-/search-1.0.5.tgz",
- "integrity": "sha512-MCOL8iCKq4v+3HgEQv8zGlSkZyXSXtERgrAJ4TSryIG/eLFy84b57KmNNa/V7M1Q2Wd2hgn2nPCGNcQtk1R1OQ==",
- "dev": true,
- "peerDependencies": {
- "@node-redis/client": "^1.0.0"
- }
- },
- "node_modules/@node-redis/time-series": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@node-redis/time-series/-/time-series-1.0.2.tgz",
- "integrity": "sha512-HGQ8YooJ8Mx7l28tD7XjtB3ImLEjlUxG1wC1PAjxu6hPJqjPshUZxAICzDqDjtIbhDTf48WXXUcx8TQJB1XTKA==",
- "dev": true,
- "peerDependencies": {
- "@node-redis/client": "^1.0.0"
- }
- },
- "node_modules/@node-rs/bcrypt": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.1.0.tgz",
- "integrity": "sha512-5vjztYYcPCyvamO3C+hrNaVplZC9yEMzGxJECliQR5hkUOQdrtulCpigNOr1POWpC1YsJH0ZL+ktWop+cl5Qqw==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "@node-rs/helper": "^1.1.0"
- },
- "engines": {
- "node": ">= 10"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/Brooooooklyn"
- },
- "optionalDependencies": {
- "@node-rs/bcrypt-android-arm64": "^1.1.0",
- "@node-rs/bcrypt-darwin-arm64": "^1.1.0",
- "@node-rs/bcrypt-darwin-x64": "^1.1.0",
- "@node-rs/bcrypt-linux-arm-gnueabihf": "^1.1.0",
- "@node-rs/bcrypt-linux-arm64-gnu": "^1.1.0",
- "@node-rs/bcrypt-linux-x64-gnu": "^1.1.0",
- "@node-rs/bcrypt-linux-x64-musl": "^1.1.0",
- "@node-rs/bcrypt-win32-ia32-msvc": "^1.1.0",
- "@node-rs/bcrypt-win32-x64-msvc": "^1.1.0"
- }
- },
- "node_modules/@node-rs/bcrypt-android-arm64": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.7.1.tgz",
- "integrity": "sha512-gEBUIcBIFQmhWMh61PbBtaIIEWZIJyAog2gw3ipkWYGlCJfHb3wFQ3HgZohz1n8e9l700SLWIBDR+sZ7CBSKFw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@node-rs/bcrypt-darwin-arm64": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.7.1.tgz",
- "integrity": "sha512-9AJiPUb05ezu65F9+JwjoqUN9/kzTnKpUUIkyRB8mMi6vB86CykNpueplqvsHFA2m4HZhdPzcX37hhAMcWlRxg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@node-rs/bcrypt-darwin-x64": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.7.1.tgz",
- "integrity": "sha512-dAOPZJA5K8Z0e4DytKX2SOd2VkRXxqDC98sl+qDjL0lBP4TqIr3B7cdJouZ+S5s71gk2oECh7VJPC8nOXrQGpw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@node-rs/bcrypt-linux-arm-gnueabihf": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.7.1.tgz",
- "integrity": "sha512-6ovC/VQTiXJGGhxBl9uPx6VVoh75A5783oCvjUOBOXFh6mu2WNbD26V+mQlE9ZSxI2rniVP/6HD6+maZo69DcA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@node-rs/bcrypt-linux-arm64-gnu": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.7.1.tgz",
- "integrity": "sha512-+UFyHCW7O5GwGt9qre3TSGVP9sMfCk9jynC9+r/GiwRcf0As/id8+PK1BloUCyETIzlQ+vqoqtL/crVHWfnL8g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@node-rs/bcrypt-linux-x64-gnu": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.7.1.tgz",
- "integrity": "sha512-BN2f+D4GbMfYYp4n8wLIa1Q+eWZcCDyoykmknr53mcYhpTjz2HzH208V08jfmvt0O98JBPijgFR9e0m28SN0uw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@node-rs/bcrypt-linux-x64-musl": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.7.1.tgz",
- "integrity": "sha512-DVilfjinvnGblXEXznzlwR/PckuMIkIQgXmITS2h0rw1u3MQSvabCc8h83Vg6mzS8iOZQ9XkdEZ2JoAE8L9D6Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@node-rs/bcrypt-win32-ia32-msvc": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.7.1.tgz",
- "integrity": "sha512-xQ8e6G8YjRB5z+EzHmbsxRgCq1OF4yqwN2s1SeSpsWr6mPUFwJyRvQFuda0IkKYS0aTDjLi7OqXs8rhxiY4Dzg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@node-rs/bcrypt-win32-x64-msvc": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.7.1.tgz",
- "integrity": "sha512-HKI/aMhqYwB7bfQBBREF1wbD8tLdOLg5o+y09gT8GwBcmy6vOYCEsBICC3ehJ5/xXCY2rY0JONElhB7Zb/xLeg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@node-rs/helper": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.3.3.tgz",
- "integrity": "sha512-p4OdfQObGN9YFy5WZaGwlPYICQSe7xZYyXB0sxREmvj1HzGKp5bPg2PlfgfMZEfnjIA882B9ZrnagYzZihIwjA==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "@napi-rs/triples": "^1.1.0"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@octokit/auth-token": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz",
- "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^9.0.0"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@octokit/core": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz",
- "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==",
- "dev": true,
- "dependencies": {
- "@octokit/auth-token": "^3.0.0",
- "@octokit/graphql": "^5.0.0",
- "@octokit/request": "^6.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^9.0.0",
- "before-after-hook": "^2.2.0",
- "universal-user-agent": "^6.0.0"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@octokit/endpoint": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz",
- "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^9.0.0",
- "is-plain-object": "^5.0.0",
- "universal-user-agent": "^6.0.0"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@octokit/graphql": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz",
- "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==",
- "dev": true,
- "dependencies": {
- "@octokit/request": "^6.0.0",
- "@octokit/types": "^9.0.0",
- "universal-user-agent": "^6.0.0"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@octokit/openapi-types": {
- "version": "17.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-17.1.2.tgz",
- "integrity": "sha512-OaS7Ol4Y+U50PbejfzQflGWRMxO04nYWO5ZBv6JerqMKE2WS/tI9VoVDDPXHBlRMGG2fOdKwtVGlFfc7AVIstw==",
- "dev": true
- },
- "node_modules/@octokit/plugin-paginate-rest": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.0.tgz",
- "integrity": "sha512-5T4iXjJdYCVA1rdWS1C+uZV9AvtZY9QgTG74kFiSFVj94dZXowyi/YK8f4SGjZaL69jZthGlBaDKRdCMCF9log==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^9.2.2"
- },
- "engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "@octokit/core": ">=4"
- }
- },
- "node_modules/@octokit/plugin-request-log": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz",
- "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==",
- "dev": true,
- "peerDependencies": {
- "@octokit/core": ">=3"
- }
- },
- "node_modules/@octokit/plugin-rest-endpoint-methods": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.1.0.tgz",
- "integrity": "sha512-SWwz/hc47GaKJR6BlJI4WIVRodbAFRvrR0QRPSoPMs7krb7anYPML3psg+ThEz/kcwOdSNh/oA8qThi/Wvs4Fw==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^9.2.2",
- "deprecation": "^2.3.1"
- },
- "engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "@octokit/core": ">=3"
- }
- },
- "node_modules/@octokit/request": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz",
- "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==",
- "dev": true,
- "dependencies": {
- "@octokit/endpoint": "^7.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^9.0.0",
- "is-plain-object": "^5.0.0",
- "node-fetch": "^2.6.7",
- "universal-user-agent": "^6.0.0"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@octokit/request-error": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz",
- "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==",
- "dev": true,
- "dependencies": {
- "@octokit/types": "^9.0.0",
- "deprecation": "^2.0.0",
- "once": "^1.4.0"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@octokit/rest": {
- "version": "19.0.7",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz",
- "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==",
- "dev": true,
- "dependencies": {
- "@octokit/core": "^4.1.0",
- "@octokit/plugin-paginate-rest": "^6.0.0",
- "@octokit/plugin-request-log": "^1.0.4",
- "@octokit/plugin-rest-endpoint-methods": "^7.0.0"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@octokit/types": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.2.2.tgz",
- "integrity": "sha512-9BjDxjgQIvCjNWZsbqyH5QC2Yni16oaE6xL+8SUBMzcYPF4TGQBXGA97Cl3KceK9mwiNMb1mOYCz6FbCCLEL+g==",
- "dev": true,
- "dependencies": {
- "@octokit/openapi-types": "^17.1.2"
- }
- },
- "node_modules/@panva/asn1.js": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz",
- "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==",
- "dev": true,
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/@parse/fs-files-adapter": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@parse/fs-files-adapter/-/fs-files-adapter-1.2.2.tgz",
- "integrity": "sha512-VUsVZXgt53FULqUd9xqGDW6RXes62qHXTNOeRSlS1MOemiCdtQOUGgLHgjdYQXnZ1hPLkxZKph96AluZUb953g==",
- "dev": true
- },
- "node_modules/@parse/node-apn": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/@parse/node-apn/-/node-apn-5.1.3.tgz",
- "integrity": "sha512-Bwhmbm895lEIF2772PJ8dSvBjrtOG9/q/TDMxmX40IgZxQFoXS73+JUIKTq3CA7SUB/Szu5roJINQ0L2U/1MJw==",
- "dev": true,
- "dependencies": {
- "debug": "4.3.3",
- "jsonwebtoken": "8.5.1",
- "node-forge": "1.3.0",
- "verror": "1.10.1"
- },
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/@parse/node-apn/node_modules/debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@parse/node-apn/node_modules/jsonwebtoken": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
- "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
- "dev": true,
- "dependencies": {
- "jws": "^3.2.2",
- "lodash.includes": "^4.3.0",
- "lodash.isboolean": "^3.0.3",
- "lodash.isinteger": "^4.0.4",
- "lodash.isnumber": "^3.0.3",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.once": "^4.0.0",
- "ms": "^2.1.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=4",
- "npm": ">=1.4.28"
- }
- },
- "node_modules/@parse/node-apn/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/@parse/node-gcm": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@parse/node-gcm/-/node-gcm-1.0.2.tgz",
- "integrity": "sha512-5LwLAYaGPWvuAyqaRr+4LD3Lq4V/A8DiznCFC2as9XBqfmhP7bwQMKKcymVcINrJGxPhNi69RrQpuEhIehtIqQ==",
- "dev": true,
- "dependencies": {
- "debug": "^3.1.0",
- "lodash": "^4.17.10",
- "request": "2.88.0"
- },
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/@parse/node-gcm/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/@parse/node-gcm/node_modules/punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
- "dev": true
- },
- "node_modules/@parse/node-gcm/node_modules/qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/@parse/node-gcm/node_modules/request": {
- "version": "2.88.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
- "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
- "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
- "dev": true,
- "dependencies": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.0",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.4.3",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/@parse/node-gcm/node_modules/tough-cookie": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
- "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
- "dev": true,
- "dependencies": {
- "psl": "^1.1.24",
- "punycode": "^1.4.1"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/@parse/node-gcm/node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "dev": true,
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/@parse/push-adapter": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@parse/push-adapter/-/push-adapter-4.1.2.tgz",
- "integrity": "sha512-034vZTlAzgdfefIY4+Q4j8DHS/VwUAIVoh1JeRkHNfyQmUQ++uKbQbUQdJ/nf11HHS69kwLENs13BmhlHMpyHQ==",
- "dev": true,
- "dependencies": {
- "@parse/node-apn": "5.1.3",
- "@parse/node-gcm": "1.0.2",
- "npmlog": "4.1.2",
- "parse": "3.4.0"
- },
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/@babel/runtime": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz",
- "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==",
- "dev": true,
- "dependencies": {
- "regenerator-runtime": "^0.13.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/@babel/runtime-corejs3": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.7.tgz",
- "integrity": "sha512-Wvzcw4mBYbTagyBVZpAJWI06auSIj033T/yNE0Zn1xcup83MieCddZA7ls3kme17L4NOGBrQ09Q+nKB41RLWBA==",
- "dev": true,
- "dependencies": {
- "core-js-pure": "^3.15.0",
- "regenerator-runtime": "^0.13.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/gauge": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
- "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
- "dev": true,
- "dependencies": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/idb-keyval": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-5.0.6.tgz",
- "integrity": "sha512-6lJuVbwyo82mKSH6Wq2eHkt9LcbwHAelMIcMe0tP4p20Pod7tTxq9zf0ge2n/YDfMOpDryerfmmYyuQiaFaKOg==",
- "dev": true
- },
- "node_modules/@parse/push-adapter/node_modules/is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
- "dev": true,
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/npmlog": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
- "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
- "dev": true,
- "dependencies": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/parse": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/parse/-/parse-3.4.0.tgz",
- "integrity": "sha512-FMZLxPW6PvrBgxkXc9AmnYsFKvPwiS4G2n9OI4mdfiSoNzIVLc+bXzlUdJ+I7hiqHsBTP0BrdQczw2/cnVkJ6w==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "7.15.4",
- "@babel/runtime-corejs3": "7.14.7",
- "idb-keyval": "5.0.6",
- "react-native-crypto-js": "1.0.0",
- "uuid": "3.4.0",
- "ws": "7.5.1",
- "xmlhttprequest": "1.8.0"
- },
- "optionalDependencies": {
- "crypto-js": "4.1.1"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
- "dev": true,
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "dev": true,
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/@parse/push-adapter/node_modules/ws": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz",
- "integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==",
- "dev": true,
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/@pnpm/config.env-replace": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
- "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==",
- "dev": true,
- "engines": {
- "node": ">=12.22.0"
- }
- },
- "node_modules/@pnpm/network.ca-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
- "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "4.2.10"
- },
- "engines": {
- "node": ">=12.22.0"
- }
- },
- "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
- "dev": true
- },
- "node_modules/@pnpm/npm-conf": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.0.tgz",
- "integrity": "sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==",
- "dev": true,
- "dependencies": {
- "@pnpm/config.env-replace": "^1.1.0",
- "@pnpm/network.ca-file": "^1.0.1",
- "config-chain": "^1.1.11"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@repeaterjs/repeater": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz",
- "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==",
- "dev": true
- },
- "node_modules/@semantic-release/changelog": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz",
- "integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==",
- "dev": true,
- "dependencies": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "fs-extra": "^11.0.0",
- "lodash": "^4.17.4"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0"
- }
- },
- "node_modules/@semantic-release/commit-analyzer": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz",
- "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==",
- "dev": true,
- "dependencies": {
- "conventional-changelog-angular": "^5.0.0",
- "conventional-commits-filter": "^2.0.0",
- "conventional-commits-parser": "^3.2.3",
- "debug": "^4.0.0",
- "import-from": "^4.0.0",
- "lodash": "^4.17.4",
- "micromatch": "^4.0.2"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0-beta.1"
- }
- },
- "node_modules/@semantic-release/error": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz",
- "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==",
- "dev": true,
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/@semantic-release/exec": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-6.0.3.tgz",
- "integrity": "sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==",
- "dev": true,
- "dependencies": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "debug": "^4.0.0",
- "execa": "^5.0.0",
- "lodash": "^4.17.4",
- "parse-json": "^5.0.0"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0"
- }
- },
- "node_modules/@semantic-release/git": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz",
- "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==",
- "dev": true,
- "dependencies": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "debug": "^4.0.0",
- "dir-glob": "^3.0.0",
- "execa": "^5.0.0",
- "lodash": "^4.17.4",
- "micromatch": "^4.0.0",
- "p-reduce": "^2.0.0"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0"
- }
- },
- "node_modules/@semantic-release/github": {
- "version": "8.0.7",
- "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.7.tgz",
- "integrity": "sha512-VtgicRIKGvmTHwm//iqTh/5NGQwsncOMR5vQK9pMT92Aem7dv37JFKKRuulUsAnUOIlO4G8wH3gPiBAA0iW0ww==",
- "dev": true,
- "dependencies": {
- "@octokit/rest": "^19.0.0",
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "bottleneck": "^2.18.1",
- "debug": "^4.0.0",
- "dir-glob": "^3.0.0",
- "fs-extra": "^11.0.0",
- "globby": "^11.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "issue-parser": "^6.0.0",
- "lodash": "^4.17.4",
- "mime": "^3.0.0",
- "p-filter": "^2.0.0",
- "p-retry": "^4.0.0",
- "url-join": "^4.0.0"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0-beta.1"
- }
- },
- "node_modules/@semantic-release/release-notes-generator": {
- "version": "10.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz",
- "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==",
- "dev": true,
- "dependencies": {
- "conventional-changelog-angular": "^5.0.0",
- "conventional-changelog-writer": "^5.0.0",
- "conventional-commits-filter": "^2.0.0",
- "conventional-commits-parser": "^3.2.3",
- "debug": "^4.0.0",
- "get-stream": "^6.0.0",
- "import-from": "^4.0.0",
- "into-stream": "^6.0.0",
- "lodash": "^4.17.4",
- "read-pkg-up": "^7.0.0"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "semantic-release": ">=18.0.0-beta.1"
- }
- },
- "node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@types/body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
- "dev": true,
- "dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect": {
- "version": "3.4.35",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
- "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/express": {
- "version": "4.17.17",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz",
- "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
- "dev": true,
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "node_modules/@types/express-serve-static-core": {
- "version": "4.17.34",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz",
- "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/jsonwebtoken": {
- "version": "8.5.9",
- "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz",
- "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/mime": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
- "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
- "dev": true
- },
- "node_modules/@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
- "dev": true
- },
- "node_modules/@types/node": {
- "version": "20.1.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.3.tgz",
- "integrity": "sha512-NP2yfZpgmf2eDRPmgGq+fjGjSwFgYbihA8/gK+ey23qT9RkxsgNTZvGOEpXgzIGqesTYkElELLgtKoMQTys5vA==",
- "dev": true
- },
- "node_modules/@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
- "dev": true
- },
- "node_modules/@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
- "dev": true
- },
- "node_modules/@types/range-parser": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
- "dev": true
- },
- "node_modules/@types/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
- "dev": true
- },
- "node_modules/@types/send": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz",
- "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==",
- "dev": true,
- "dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
- "node_modules/@types/serve-static": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz",
- "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==",
- "dev": true,
- "dependencies": {
- "@types/mime": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/triple-beam": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz",
- "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==",
- "dev": true
- },
- "node_modules/@types/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==",
- "dev": true
- },
- "node_modules/@types/whatwg-url": {
- "version": "8.2.2",
- "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
- "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "@types/webidl-conversions": "*"
- }
- },
- "node_modules/abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
- "dev": true,
- "dependencies": {
- "event-target-shim": "^5.0.0"
- },
- "engines": {
- "node": ">=6.5"
- }
- },
- "node_modules/abstract-logging": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz",
- "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==",
- "dev": true
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dev": true,
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/acorn": {
- "version": "8.8.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
- "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
- "dev": true,
- "peer": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "peer": true,
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
- "dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ampersand-events": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/ampersand-events/-/ampersand-events-2.0.2.tgz",
- "integrity": "sha512-pPnVEJviRxXi9YhZA9j3GwGGBTlDLi+YIoBvrpKXgce+CO1nMlZU2aOV8OJogNuR2YPbptAUHNz7SKX+MvLj8A==",
- "dev": true,
- "dependencies": {
- "ampersand-version": "^1.0.2",
- "lodash": "^4.6.1"
- }
- },
- "node_modules/ampersand-state": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/ampersand-state/-/ampersand-state-5.0.3.tgz",
- "integrity": "sha512-sr904K5zvw6mkGjFHhTcfBIdpoJ6mn/HrFg7OleRmBpw3apLb3Z0gVrgRTb7kK1wOLI34vs4S+IXqNHUeqWCzw==",
- "dev": true,
- "dependencies": {
- "ampersand-events": "^2.0.1",
- "ampersand-version": "^1.0.0",
- "array-next": "~0.0.1",
- "key-tree-store": "^1.3.0",
- "lodash": "^4.12.0"
- }
- },
- "node_modules/ampersand-version": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/ampersand-version/-/ampersand-version-1.0.2.tgz",
- "integrity": "sha512-FVVLY7Pghtgc8pQl0rF3A3+OS/CZ+/ILLMIYIaO1cA9v5SRkainqUMfSot3fu32svuThIsYK3q9iCsH9W5+mWQ==",
- "dev": true,
- "dependencies": {
- "find-root": "^0.1.1",
- "through2": "^0.6.3"
- }
- },
- "node_modules/ampersand-version/node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "dev": true
- },
- "node_modules/ampersand-version/node_modules/readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "node_modules/ampersand-version/node_modules/string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
- "dev": true
- },
- "node_modules/ampersand-version/node_modules/through2": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
- "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==",
- "dev": true,
- "dependencies": {
- "readable-stream": ">=1.0.33-1 <1.1.0-0",
- "xtend": ">=4.0.0 <4.1.0-0"
- }
- },
- "node_modules/ansi": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
- "integrity": "sha512-iFY7JCgHbepc0b82yLaw4IMortylNb6wG4kL+4R0C3iv6i+RHGHux/yUX5BTiRvSX/shMnngjR1YyNMnXEFh5A==",
- "dev": true
- },
- "node_modules/ansi-escapes": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
- "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
- "dev": true,
- "dependencies": {
- "type-fest": "^3.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.10.0.tgz",
- "integrity": "sha512-hmAPf1datm+gt3c2mvu0sJyhFy6lTkIGf0GzyaZWxRLnabQfPUqg6tF95RPg6sLxKI7nFLGdFxBcf2/7+GXI+A==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- },
- "peerDependencies": {
- "typescript": ">=4.7.0"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/ansicolors": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
- "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==",
- "dev": true
- },
- "node_modules/aproba": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
- "dev": true
- },
- "node_modules/are-we-there-yet": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
- "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
- "dev": true,
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
- }
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "node_modules/argv-formatter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz",
- "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==",
- "dev": true
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "dev": true
- },
- "node_modules/array-ify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
- "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
- "dev": true
- },
- "node_modules/array-next": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/array-next/-/array-next-0.0.1.tgz",
- "integrity": "sha512-sBOC/Iaz2hCcYi2XlyRfyZCRUxamlE5NJXEFjE9BTx23HALnWAFsPjGtfrAclt9o3G/38Het2yyeyOd3CEY7lg==",
- "dev": true
- },
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/asn1": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
- "dev": true,
- "dependencies": {
- "safer-buffer": "~2.1.0"
- }
- },
- "node_modules/assert-options": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/assert-options/-/assert-options-0.8.0.tgz",
- "integrity": "sha512-qSELrEaEz4sGwTs4Qh+swQkjiHAysC4rot21+jzXU86dJzNG+FDqBzyS3ohSoTRf4ZLA3FSwxQdiuNl5NXUtvA==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
- "dev": true,
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
- "dev": true
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
- "node_modules/aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/aws4": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
- "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
- "dev": true
- },
- "node_modules/backo2": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
- "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==",
- "dev": true
- },
- "node_modules/backoff": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz",
- "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==",
- "dev": true,
- "dependencies": {
- "precond": "0.2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
- "dev": true,
- "dependencies": {
- "tweetnacl": "^0.14.3"
- }
- },
- "node_modules/bcryptjs": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
- "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==",
- "dev": true
- },
- "node_modules/before-after-hook": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
- "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==",
- "dev": true
- },
- "node_modules/bl": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
- "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
- "dev": true,
- "dependencies": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dev": true,
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
- },
- "node_modules/bottleneck": {
- "version": "2.19.5",
- "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz",
- "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==",
- "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/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.21.5",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
- "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "peer": true,
- "dependencies": {
- "caniuse-lite": "^1.0.30001449",
- "electron-to-chromium": "^1.4.284",
- "node-releases": "^2.0.8",
- "update-browserslist-db": "^1.0.10"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/bson": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
- "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==",
- "dev": true,
- "engines": {
- "node": ">=0.6.19"
- }
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/buffer-alloc": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
- "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
- "dev": true,
- "dependencies": {
- "buffer-alloc-unsafe": "^1.1.0",
- "buffer-fill": "^1.0.0"
- }
- },
- "node_modules/buffer-alloc-unsafe": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
- "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
- "dev": true
- },
- "node_modules/buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
- "dev": true
- },
- "node_modules/buffer-fill": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
- "dev": true
- },
- "node_modules/buffer-writer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
- "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dev": true,
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
- "dev": true,
- "dependencies": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001486",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001486.tgz",
- "integrity": "sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "peer": true
- },
- "node_modules/cardinal": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz",
- "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==",
- "dev": true,
- "dependencies": {
- "ansicolors": "~0.3.2",
- "redeyed": "~2.1.0"
- },
- "bin": {
- "cdl": "bin/cdl.js"
- }
- },
- "node_modules/caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
- "dev": true
- },
- "node_modules/caw": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz",
- "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==",
- "dev": true,
- "dependencies": {
- "get-proxy": "^2.0.0",
- "isurl": "^1.0.0-alpha5",
- "tunnel-agent": "^0.6.0",
- "url-to-options": "^1.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/cheerio": {
- "version": "0.22.0",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
- "integrity": "sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==",
- "dev": true,
- "dependencies": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash.assignin": "^4.0.9",
- "lodash.bind": "^4.1.4",
- "lodash.defaults": "^4.0.1",
- "lodash.filter": "^4.4.0",
- "lodash.flatten": "^4.2.0",
- "lodash.foreach": "^4.3.0",
- "lodash.map": "^4.4.0",
- "lodash.merge": "^4.4.0",
- "lodash.pick": "^4.2.1",
- "lodash.reduce": "^4.4.0",
- "lodash.reject": "^4.4.0",
- "lodash.some": "^4.4.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cli-color": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-0.3.2.tgz",
- "integrity": "sha512-Ys/nDhHNRcxrS4EUI2RS/QCUE+61AMuEOj3sWDX+EIHkJWj+4XkRbOdwdxJteAJKjXYBbeFJMtfaEPd1MBF9pQ==",
- "dev": true,
- "dependencies": {
- "d": "~0.1.1",
- "es5-ext": "~0.10.2",
- "memoizee": "0.3.x",
- "timers-ext": "0.1.x"
- }
- },
- "node_modules/cli-table3": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
- "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0"
- },
- "engines": {
- "node": "10.* || >= 12.*"
- },
- "optionalDependencies": {
- "@colors/colors": "1.5.0"
- }
- },
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/clui": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/clui/-/clui-0.3.6.tgz",
- "integrity": "sha512-Z4UbgZILlIAjkEkZiDOa2aoYjohKx7fa6DxIh6cE9A6WNWZ61iXfQc6CmdC9SKdS5nO0P0UyQ+WfoXfB65e3HQ==",
- "dev": true,
- "dependencies": {
- "cli-color": "0.3.2"
- }
- },
- "node_modules/cluster-key-slot": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz",
- "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
- }
- },
- "node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
- "dev": true,
- "dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "node_modules/colornames": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz",
- "integrity": "sha512-/pyV40IrsdulWv+wFPmERh9k/mjsPZ64yUMDmWrtj/k1nmgrzzIENWKdaVKyBbvFdQWqkcaRxr+polCo3VMe7A==",
- "dev": true
- },
- "node_modules/colorspace": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
- "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
- "dev": true,
- "dependencies": {
- "color": "^3.1.3",
- "text-hex": "1.0.x"
- }
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
- "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/compare-func": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
- "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
- "dev": true,
- "dependencies": {
- "array-ify": "^1.0.0",
- "dot-prop": "^5.1.0"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "node_modules/config-chain": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
- "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
- "dev": true,
- "dependencies": {
- "ini": "^1.3.4",
- "proto-list": "~1.2.1"
- }
- },
- "node_modules/connected-domain": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/connected-domain/-/connected-domain-1.0.0.tgz",
- "integrity": "sha512-lHlohUiJxlpunvDag2Y0pO20bnvarMjnrdciZeuJUqRwrf/5JHNhdpiPIr5GQ8IkqrFj5TDMQwcCjblGo1oeuA==",
- "dev": true
- },
- "node_modules/console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "dev": true
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/conventional-changelog-angular": {
- "version": "5.0.13",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz",
- "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==",
- "dev": true,
- "dependencies": {
- "compare-func": "^2.0.0",
- "q": "^1.5.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/conventional-changelog-writer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz",
- "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==",
- "dev": true,
- "dependencies": {
- "conventional-commits-filter": "^2.0.7",
- "dateformat": "^3.0.0",
- "handlebars": "^4.7.7",
- "json-stringify-safe": "^5.0.1",
- "lodash": "^4.17.15",
- "meow": "^8.0.0",
- "semver": "^6.0.0",
- "split": "^1.0.0",
- "through2": "^4.0.0"
- },
- "bin": {
- "conventional-changelog-writer": "cli.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/conventional-commits-filter": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz",
- "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==",
- "dev": true,
- "dependencies": {
- "lodash.ismatch": "^4.4.0",
- "modify-values": "^1.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/conventional-commits-parser": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz",
- "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==",
- "dev": true,
- "dependencies": {
- "is-text-path": "^1.0.1",
- "JSONStream": "^1.0.4",
- "lodash": "^4.17.15",
- "meow": "^8.0.0",
- "split2": "^3.0.0",
- "through2": "^4.0.0"
- },
- "bin": {
- "conventional-commits-parser": "cli.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true,
- "peer": true
- },
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "dev": true
- },
- "node_modules/core-js-pure": {
- "version": "3.30.2",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz",
- "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==",
- "dev": true,
- "hasInstallScript": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true
- },
- "node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "dev": true,
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/cosmiconfig": {
- "version": "8.1.3",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz",
- "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==",
- "dev": true,
- "dependencies": {
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/cross-undici-fetch": {
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.4.14.tgz",
- "integrity": "sha512-CCep44A/baoO8kYJBIR1cRO/tRAk29xzb/tH3O85OtgwZGkL5I0tJZ47ccZdrnAJxrl5tlaYhAOx09fJXMcUqQ==",
- "dev": true,
- "dependencies": {
- "abort-controller": "^3.0.0",
- "busboy": "^1.6.0",
- "form-data-encoder": "^1.7.1",
- "formdata-node": "^4.3.1",
- "node-fetch": "^2.6.7",
- "undici": "5.5.1",
- "web-streams-polyfill": "^3.2.0"
- }
- },
- "node_modules/crypto-js": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
- "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==",
- "dev": true,
- "optional": true
- },
- "node_modules/crypto-random-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
- "dev": true,
- "dependencies": {
- "type-fest": "^1.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/crypto-random-string/node_modules/type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==",
- "dev": true,
- "dependencies": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
- }
- },
- "node_modules/css-what": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
- "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/d": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
- "integrity": "sha512-0SdM9V9pd/OXJHoWmTfNPTAeD+lw6ZqHg+isPyBFuJsZLSE0Ygg1cYZ/0l6DrKQXMOqGOu1oWupMoOfoRfMZrQ==",
- "dev": true,
- "dependencies": {
- "es5-ext": "~0.10.2"
- }
- },
- "node_modules/dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/dateformat": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
- "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decamelize-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
- "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
- "dev": true,
- "dependencies": {
- "decamelize": "^1.1.0",
- "map-obj": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/decamelize-keys/node_modules/map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decompress": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz",
- "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==",
- "dev": true,
- "dependencies": {
- "decompress-tar": "^4.0.0",
- "decompress-tarbz2": "^4.0.0",
- "decompress-targz": "^4.0.0",
- "decompress-unzip": "^4.0.1",
- "graceful-fs": "^4.1.10",
- "make-dir": "^1.0.0",
- "pify": "^2.3.0",
- "strip-dirs": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
- "dev": true,
- "dependencies": {
- "mimic-response": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/decompress-tar": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz",
- "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
- "dev": true,
- "dependencies": {
- "file-type": "^5.2.0",
- "is-stream": "^1.1.0",
- "tar-stream": "^1.5.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/decompress-tar/node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decompress-tarbz2": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
- "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
- "dev": true,
- "dependencies": {
- "decompress-tar": "^4.1.0",
- "file-type": "^6.1.0",
- "is-stream": "^1.1.0",
- "seek-bzip": "^1.0.5",
- "unbzip2-stream": "^1.0.9"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/decompress-tarbz2/node_modules/file-type": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz",
- "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/decompress-tarbz2/node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decompress-targz": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz",
- "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
- "dev": true,
- "dependencies": {
- "decompress-tar": "^4.1.1",
- "file-type": "^5.2.0",
- "is-stream": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/decompress-targz/node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decompress-unzip": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
- "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==",
- "dev": true,
- "dependencies": {
- "file-type": "^3.8.0",
- "get-stream": "^2.2.0",
- "pify": "^2.3.0",
- "yauzl": "^2.4.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/decompress-unzip/node_modules/file-type": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
- "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decompress-unzip/node_modules/get-stream": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
- "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==",
- "dev": true,
- "dependencies": {
- "object-assign": "^4.0.1",
- "pinkie-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decompress-unzip/node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decompress/node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "dev": true,
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true,
- "peer": true
- },
- "node_modules/deepcopy": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/deepcopy/-/deepcopy-2.1.0.tgz",
- "integrity": "sha512-8cZeTb1ZKC3bdSCP6XOM1IsTczIO73fdqtwa2B0N15eAz7gmyhQo+mc5gnFuulsgN3vIQYmTgbmQVKalH1dKvQ==",
- "dev": true,
- "dependencies": {
- "type-detect": "^4.0.8"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
- "dev": true
- },
- "node_modules/denque": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz",
- "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==",
- "dev": true,
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/deprecation": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
- "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
- "dev": true
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/diagnostics": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
- "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==",
- "dev": true,
- "dependencies": {
- "colorspace": "1.1.x",
- "enabled": "1.0.x",
- "kuler": "1.0.x"
- }
- },
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/docopt": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz",
- "integrity": "sha512-NqTbaYeE4gA/wU1hdKFdU+AFahpDOpgGLzHP42k6H6DKExJd0A55KEVWYhL9FEmHmgeLvEU2vuKXDuU+4yToOw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/dom-serializer": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
- "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^1.3.0",
- "entities": "^1.1.1"
- }
- },
- "node_modules/domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
- "dev": true
- },
- "node_modules/domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "dev": true,
- "dependencies": {
- "domelementtype": "1"
- }
- },
- "node_modules/domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==",
- "dev": true,
- "dependencies": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
- "node_modules/dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dev": true,
- "dependencies": {
- "is-obj": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/downcache": {
- "version": "0.0.9",
- "resolved": "https://registry.npmjs.org/downcache/-/downcache-0.0.9.tgz",
- "integrity": "sha512-AssoVsNYu5DnPY0Ro67lkbiAr66sk5IHuiIGm3pzFzWmTzkcEoFjDlG8szzP4x+ZN2OHehKTZbwDrC7l2Q52+g==",
- "dev": true,
- "dependencies": {
- "extend": "^3.0.0",
- "graceful-fs": "^4.1.3",
- "limiter": "^1.1.0",
- "mkdirp": "^0.5.1",
- "npmlog": "^2.0.3",
- "request": "^2.69.0",
- "rimraf": "^2.5.2"
- }
- },
- "node_modules/downcache/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/download": {
- "version": "6.2.5",
- "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz",
- "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==",
- "dev": true,
- "dependencies": {
- "caw": "^2.0.0",
- "content-disposition": "^0.5.2",
- "decompress": "^4.0.0",
- "ext-name": "^5.0.0",
- "file-type": "5.2.0",
- "filenamify": "^2.0.0",
- "get-stream": "^3.0.0",
- "got": "^7.0.0",
- "make-dir": "^1.0.0",
- "p-event": "^1.0.0",
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/download/node_modules/get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/dset": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz",
- "integrity": "sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/duplexer2": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
- "dev": true,
- "dependencies": {
- "readable-stream": "^2.0.2"
- }
- },
- "node_modules/duplexer3": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
- "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
- "dev": true
- },
- "node_modules/ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
- "dev": true,
- "dependencies": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "node_modules/ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "dev": true
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.392",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.392.tgz",
- "integrity": "sha512-TXQOMW9tnhIms3jGy/lJctLjICOgyueZFJ1KUtm6DTQ+QpxX3p7ZBwB6syuZ9KBuT5S4XX7bgY1ECPgfxKUdOg==",
- "dev": true,
- "peer": true
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/enabled": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
- "integrity": "sha512-nnzgVSpB35qKrUN8358SjO1bYAmxoThECTWw9s3J0x5G8A9hokKHVDFzBjVpCoSryo6MhN8woVyascN5jheaNA==",
- "dev": true,
- "dependencies": {
- "env-variable": "0.0.x"
- }
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dev": true,
- "dependencies": {
- "once": "^1.4.0"
- }
- },
- "node_modules/entities": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
- "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
- "dev": true
- },
- "node_modules/env-ci": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.1.0.tgz",
- "integrity": "sha512-ZCEas2sDVFR3gpumwwzSU4OJZwWJ46yqJH3TqH3vSxEBzeAlC0uCJLGAnZC0vX1TIXzHzjcwpKmUn2xw5mC/qA==",
- "dev": true,
- "dependencies": {
- "execa": "^7.0.0",
- "java-properties": "^1.0.2"
- },
- "engines": {
- "node": "^16.14 || >=18"
- }
- },
- "node_modules/env-ci/node_modules/execa": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
- "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^4.3.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/env-ci/node_modules/human-signals": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
- "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
- "dev": true,
- "engines": {
- "node": ">=14.18.0"
- }
- },
- "node_modules/env-ci/node_modules/is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/env-ci/node_modules/mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/env-ci/node_modules/npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
- "dev": true,
- "dependencies": {
- "path-key": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/env-ci/node_modules/onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/env-ci/node_modules/path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/env-ci/node_modules/strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/env-variable": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz",
- "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==",
- "dev": true
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/es5-ext": {
- "version": "0.10.62",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
- "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.3",
- "next-tick": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
- "dev": true,
- "dependencies": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- }
- },
- "node_modules/es6-iterator/node_modules/d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dev": true,
- "dependencies": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "node_modules/es6-iterator/node_modules/type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
- "dev": true
- },
- "node_modules/es6-symbol": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
- "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
- "dev": true,
- "dependencies": {
- "d": "^1.0.1",
- "ext": "^1.1.2"
- }
- },
- "node_modules/es6-symbol/node_modules/d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dev": true,
- "dependencies": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "node_modules/es6-symbol/node_modules/type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
- "dev": true
- },
- "node_modules/es6-weak-map": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz",
- "integrity": "sha512-P+N5Cd2TXeb7G59euFiM7snORspgbInS29Nbf3KNO2JQp/DyhvMCDWd58nsVAXwYJ6W3Bx7qDdy6QQ3PCJ7jKQ==",
- "dev": true,
- "dependencies": {
- "d": "~0.1.1",
- "es5-ext": "~0.10.6",
- "es6-iterator": "~0.1.3",
- "es6-symbol": "~2.0.1"
- }
- },
- "node_modules/es6-weak-map/node_modules/es6-iterator": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
- "integrity": "sha512-6TOmbFM6OPWkTe+bQ3ZuUkvqcWUjAnYjKUCLdbvRsAUz2Pr+fYIibwNXNkLNtIK9PPFbNMZZddaRNkyJhlGJhA==",
- "dev": true,
- "dependencies": {
- "d": "~0.1.1",
- "es5-ext": "~0.10.5",
- "es6-symbol": "~2.0.1"
- }
- },
- "node_modules/es6-weak-map/node_modules/es6-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz",
- "integrity": "sha512-wjobO4zO8726HVU7mI2OA/B6QszqwHJuKab7gKHVx+uRfVVYGcWJkCIFxV2Madqb9/RUSrhJ/r6hPfG7FsWtow==",
- "dev": true,
- "dependencies": {
- "d": "~0.1.1",
- "es5-ext": "~0.10.5"
- }
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dev": true
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/eslint": {
- "version": "8.40.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz",
- "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.3",
- "@eslint/js": "8.40.0",
- "@humanwhocodes/config-array": "^0.11.8",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.0",
- "eslint-visitor-keys": "^3.4.1",
- "espree": "^9.5.2",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/eslint/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/eslint/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "peer": true
- },
- "node_modules/eslint/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/eslint-scope": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
- "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/eslint-visitor-keys": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
- "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/eslint/node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/eslint/node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/espree": {
- "version": "9.5.2",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz",
- "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "acorn": "^8.8.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
- "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true,
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esquery/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esrecurse/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
- "dev": true,
- "dependencies": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
- },
- "node_modules/event-emitter/node_modules/d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dev": true,
- "dependencies": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "node_modules/event-emitter/node_modules/type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
- "dev": true
- },
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/eventemitter3": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
- "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
- "dev": true
- },
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dev": true,
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express-rate-limit": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.6.0.tgz",
- "integrity": "sha512-HFN2+4ZGdkQOS8Qli4z6knmJFnw6lZed67o6b7RGplWeb1Z0s8VXaj3dUgPIdm9hrhZXTRpCTHXA0/2Eqex0vA==",
- "dev": true,
- "engines": {
- "node": ">= 12.9.0"
- },
- "peerDependencies": {
- "express": "^4 || ^5"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/ext": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
- "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
- "dev": true,
- "dependencies": {
- "type": "^2.7.2"
- }
- },
- "node_modules/ext-list": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
- "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
- "dev": true,
- "dependencies": {
- "mime-db": "^1.28.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ext-name": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
- "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
- "dev": true,
- "dependencies": {
- "ext-list": "^2.0.0",
- "sort-keys-length": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
- },
- "node_modules/extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
- "dev": true,
- "engines": [
- "node >=0.6.0"
- ]
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
- },
- "node_modules/fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true,
- "peer": true
- },
- "node_modules/fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
- "dev": true,
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fd-slicer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
- "dev": true,
- "dependencies": {
- "pend": "~1.2.0"
- }
- },
- "node_modules/fecha": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
- "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==",
- "dev": true
- },
- "node_modules/figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "flat-cache": "^3.0.4"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/file-stream-rotator": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz",
- "integrity": "sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==",
- "dev": true,
- "dependencies": {
- "moment": "^2.29.1"
- }
- },
- "node_modules/file-type": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
- "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/filename-reserved-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
- "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/filenamify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz",
- "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==",
- "dev": true,
- "dependencies": {
- "filename-reserved-regex": "^2.0.0",
- "strip-outer": "^1.0.0",
- "trim-repeated": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dev": true,
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/find-root": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/find-root/-/find-root-0.1.2.tgz",
- "integrity": "sha512-GyDxVgA61TZcrgDJPqOqGBpi80Uf2yIstubgizi7AjC9yPdRrqBR+Y0MvK4kXnYlaoz3d+SGxDHMYVkwI/yd2w==",
- "dev": true
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/find-versions": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz",
- "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==",
- "dev": true,
- "dependencies": {
- "semver-regex": "^4.0.5"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/flat-cache/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true,
- "peer": true
- },
- "node_modules/fn.name": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
- "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==",
- "dev": true
- },
- "node_modules/follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dev": true,
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 0.12"
- }
- },
- "node_modules/form-data-encoder": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.9.0.tgz",
- "integrity": "sha512-rahaRMkN8P8d/tgK/BLPX+WBVM27NbvdXBxqQujBtkDAIFspaRqN7Od7lfdGQA6KAD+f82fYCLBq1ipvcu8qLw==",
- "dev": true
- },
- "node_modules/formdata-node": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz",
- "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==",
- "dev": true,
- "dependencies": {
- "node-domexception": "1.0.0",
- "web-streams-polyfill": "4.0.0-beta.3"
- },
- "engines": {
- "node": ">= 12.20"
- }
- },
- "node_modules/formdata-node/node_modules/web-streams-polyfill": {
- "version": "4.0.0-beta.3",
- "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz",
- "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==",
- "dev": true,
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/from2": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
- "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0"
- }
- },
- "node_modules/fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "dev": true
- },
- "node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "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/gauge": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
- "integrity": "sha512-fVbU2wRE91yDvKUnrIaQlHKAWKY5e08PmztCrwuH5YVQ+Z/p3d0ny2T48o6uvAAXHIUnfaQdHkmxYbQft1eHVA==",
- "dev": true,
- "dependencies": {
- "ansi": "^0.3.0",
- "has-unicode": "^2.0.0",
- "lodash.pad": "^4.1.0",
- "lodash.padend": "^4.1.0",
- "lodash.padstart": "^4.1.0"
- }
- },
- "node_modules/generic-pool": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.8.2.tgz",
- "integrity": "sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-mongodb-version": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/get-mongodb-version/-/get-mongodb-version-2.0.1.tgz",
- "integrity": "sha512-yTN0UY7VJSSt01QH/aCiqiBjfxcDrEdKeM3uXY6QR3sRARoftx36QT0YNsCQm7FDTgrmDje7bK2C9ClM7SGKDA==",
- "dev": true,
- "dependencies": {
- "lodash.startswith": "^4.2.1",
- "minimist": "^1.1.1",
- "which": "^1.1.1"
- },
- "bin": {
- "get-mongodb-version": "bin/get-mongodb-version.js"
- },
- "optionalDependencies": {
- "mongodb": "*"
- }
- },
- "node_modules/get-mongodb-version/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/get-proxy": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
- "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==",
- "dev": true,
- "dependencies": {
- "npm-conf": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0"
- }
- },
- "node_modules/git-log-parser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz",
- "integrity": "sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==",
- "dev": true,
- "dependencies": {
- "argv-formatter": "~1.0.0",
- "spawn-error-forwarder": "~1.0.0",
- "split2": "~1.0.0",
- "stream-combiner2": "~1.1.1",
- "through2": "~2.0.0",
- "traverse": "~0.6.6"
- }
- },
- "node_modules/git-log-parser/node_modules/split2": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz",
- "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==",
- "dev": true,
- "dependencies": {
- "through2": "~2.0.0"
- }
- },
- "node_modules/git-log-parser/node_modules/through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "dev": true,
- "dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/got": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
- "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
- "dev": true,
- "dependencies": {
- "decompress-response": "^3.2.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^3.0.0",
- "is-plain-obj": "^1.1.0",
- "is-retry-allowed": "^1.0.0",
- "is-stream": "^1.0.0",
- "isurl": "^1.0.0-alpha5",
- "lowercase-keys": "^1.0.0",
- "p-cancelable": "^0.3.0",
- "p-timeout": "^1.1.1",
- "safe-buffer": "^5.0.1",
- "timed-out": "^4.0.0",
- "url-parse-lax": "^1.0.0",
- "url-to-options": "^1.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/got/node_modules/get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/got/node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true
- },
- "node_modules/grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
- "dev": true,
- "peer": true
- },
- "node_modules/graphql": {
- "version": "16.6.0",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz",
- "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
- }
- },
- "node_modules/graphql-list-fields": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/graphql-list-fields/-/graphql-list-fields-2.0.2.tgz",
- "integrity": "sha512-9TSAwcVA3KWw7JWYep5NCk2aw3wl1ayLtbMpmG7l26vh1FZ+gZexNPP+XJfUFyJa71UU0zcKSgtgpsrsA3Xv9Q==",
- "dev": true
- },
- "node_modules/graphql-relay": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/graphql-relay/-/graphql-relay-0.10.0.tgz",
- "integrity": "sha512-44yBuw2/DLNEiMypbNZBt1yMDbBmyVPVesPywnteGGALiBmdyy1JP8jSg8ClLePg8ZZxk0O4BLhd1a6U/1jDOQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.15.0 || >= 15.9.0"
- },
- "peerDependencies": {
- "graphql": "^16.2.0"
- }
- },
- "node_modules/graphql-tag": {
- "version": "2.12.6",
- "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
- "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
- }
- },
- "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/har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "deprecated": "this library is no longer supported",
- "dev": true,
- "dependencies": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/hard-rejection": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
- "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "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/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/has-symbol-support-x": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
- "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-to-string-tag-x": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
- "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
- "dev": true,
- "dependencies": {
- "has-symbol-support-x": "^1.4.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "dev": true
- },
- "node_modules/hook-std": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz",
- "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/htmlparser2": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
- "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^1.3.1",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^3.1.1"
- }
- },
- "node_modules/htmlparser2/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dev": true,
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
- "dev": true,
- "dependencies": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- },
- "engines": {
- "node": ">=0.8",
- "npm": ">=1.3.7"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/idb-keyval": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.0.3.tgz",
- "integrity": "sha512-yh8V7CnE6EQMu9YDwQXhRxwZh4nv+8xm/HV4ZqK4IiYFJBWYGjJuykADJbSP+F/GDXUBwCSSNn/14IpGL81TuA==",
- "dev": true,
- "dependencies": {
- "safari-14-idb-fix": "^3.0.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/import-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz",
- "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==",
- "dev": true,
- "engines": {
- "node": ">=12.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "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/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
- },
- "node_modules/intersect": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/intersect/-/intersect-1.0.1.tgz",
- "integrity": "sha512-qsc720yevCO+4NydrJWgEWKccAQwTOvj2m73O/VBA6iUL2HGZJ9XqBiyraNrBXX/W1IAjdpXdRZk24sq8TzBRg==",
- "dev": true
- },
- "node_modules/into-stream": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz",
- "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==",
- "dev": true,
- "dependencies": {
- "from2": "^2.3.0",
- "p-is-promise": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ip": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
- "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
- "dev": true
- },
- "node_modules/ip-range-check": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/ip-range-check/-/ip-range-check-0.2.0.tgz",
- "integrity": "sha512-oaM3l/3gHbLlt/tCWLvt0mj1qUaI+STuRFnUvARGCujK9vvU61+2JsDpmkMzR4VsJhuFXWWgeKKVnwwoFfzCqw==",
- "dev": true,
- "dependencies": {
- "ipaddr.js": "^1.0.1"
- }
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "node_modules/is-core-module": {
- "version": "2.12.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
- "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
- "dev": true,
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-mongodb-running": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-mongodb-running/-/is-mongodb-running-1.0.2.tgz",
- "integrity": "sha512-EslN8MErcBPExb+iK4RnG1n28JGjByA2Rm3YPmdHDGCRd7Hc2uvqshyVMAJXxbDSxRMy8vhxims2oRqQUeGJeA==",
- "dev": true,
- "dependencies": {
- "chalk": "^2.4.1",
- "debug": ">= 2.6.9",
- "figures": "^2.0.0",
- "lodash": "^4.17.10",
- "lsof": "^0.1.0",
- "minimist": "^1.2.0",
- "node-netstat": "^1.4.2",
- "ps-node": "^0.1.6"
- },
- "bin": {
- "is-mongodb-running": "bin/is-mongodb-running.js"
- }
- },
- "node_modules/is-natural-number": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
- "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==",
- "dev": true
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-object": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
- "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-promise": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
- "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
- "dev": true
- },
- "node_modules/is-retry-allowed": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
- "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-text-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
- "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==",
- "dev": true,
- "dependencies": {
- "text-extensions": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
- "node_modules/is-unicode-supported": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
- "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-wsl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
- "dev": true
- },
- "node_modules/issue-parser": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz",
- "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==",
- "dev": true,
- "dependencies": {
- "lodash.capitalize": "^4.2.1",
- "lodash.escaperegexp": "^4.1.2",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.uniqby": "^4.7.0"
- },
- "engines": {
- "node": ">=10.13"
- }
- },
- "node_modules/isurl": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
- "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
- "dev": true,
- "dependencies": {
- "has-to-string-tag-x": "^1.2.0",
- "is-object": "^1.0.1"
- },
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/iterall": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
- "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==",
- "dev": true
- },
- "node_modules/java-properties": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz",
- "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/jose": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.6.tgz",
- "integrity": "sha512-FVoPY7SflDodE4lknJmbAHSUjLCzE2H1F6MS0RYKMQ8SR+lNccpMf8R4eqkNYyyUjR5qZReOzZo5C5YiHOCjjg==",
- "dev": true,
- "dependencies": {
- "@panva/asn1.js": "^1.0.0"
- },
- "engines": {
- "node": ">=10.13.0 < 13 || >=13.7.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/panva"
- }
- },
- "node_modules/js-sdsl": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
- "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
- "dev": true,
- "peer": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/js-sdsl"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
- "dev": true
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "peer": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
- "dev": true
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true,
- "peer": true
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "peer": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "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/jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
- "dev": true,
- "engines": [
- "node >= 0.2.0"
- ]
- },
- "node_modules/JSONStream": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "dev": true,
- "dependencies": {
- "jsonparse": "^1.2.0",
- "through": ">=2.2.7 <3"
- },
- "bin": {
- "JSONStream": "bin.js"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jsonwebtoken": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz",
- "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==",
- "dev": true,
- "dependencies": {
- "jws": "^3.2.2",
- "lodash": "^4.17.21",
- "ms": "^2.1.1",
- "semver": "^7.3.8"
- },
- "engines": {
- "node": ">=12",
- "npm": ">=6"
- }
- },
- "node_modules/jsonwebtoken/node_modules/semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/jsprim": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
- "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
- "dev": true,
- "dependencies": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.4.0",
- "verror": "1.10.0"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "node_modules/jsprim/node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
- "dev": true
- },
- "node_modules/jsprim/node_modules/verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "dev": true,
- "engines": [
- "node >=0.6.0"
- ],
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "node_modules/jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "dev": true,
- "dependencies": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/jwks-rsa": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.1.5.tgz",
- "integrity": "sha512-IODtn1SwEm7n6GQZnQLY0oxKDrMh7n/jRH1MzE8mlxWMrh2NnMyOsXTebu8vJ1qCpmuTJcL4DdiE0E4h8jnwsA==",
- "dev": true,
- "dependencies": {
- "@types/express": "^4.17.14",
- "@types/jsonwebtoken": "^8.5.9",
- "debug": "^4.3.4",
- "jose": "^2.0.6",
- "limiter": "^1.1.5",
- "lru-memoizer": "^2.1.4"
- },
- "engines": {
- "node": ">=10 < 13 || >=14"
- }
- },
- "node_modules/jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "dev": true,
- "dependencies": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/key-tree-store": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/key-tree-store/-/key-tree-store-1.3.0.tgz",
- "integrity": "sha512-qXk+lR+LXvGos3wqMxIMWweKDgCx8ZKWM6BEPm7iZkOKug5ggi66vUt+3vbtKJLBrAyOxQ4S8JRwK++Q4XZRmw==",
- "dev": true
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/klaw": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
- "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
- "dev": true,
- "optionalDependencies": {
- "graceful-fs": "^4.1.9"
- }
- },
- "node_modules/kuler": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz",
- "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==",
- "dev": true,
- "dependencies": {
- "colornames": "^1.1.1"
- }
- },
- "node_modules/ldap-filter": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz",
- "integrity": "sha512-/tFkx5WIn4HuO+6w9lsfxq4FN3O+fDZeO9Mek8dCD8rTUpqzRa766BOBO7BcGkn3X86m5+cBm1/2S/Shzz7gMg==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/ldapjs": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.3.3.tgz",
- "integrity": "sha512-75QiiLJV/PQqtpH+HGls44dXweviFwQ6SiIK27EqzKQ5jU/7UFrl2E5nLdQ3IYRBzJ/AVFJI66u0MZ0uofKYwg==",
- "dev": true,
- "dependencies": {
- "abstract-logging": "^2.0.0",
- "asn1": "^0.2.4",
- "assert-plus": "^1.0.0",
- "backoff": "^2.5.0",
- "ldap-filter": "^0.3.3",
- "once": "^1.4.0",
- "vasync": "^2.2.0",
- "verror": "^1.8.1"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/limiter": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz",
- "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==",
- "dev": true
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/load-json-file/node_modules/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
- "dev": true,
- "dependencies": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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/lodash-es": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
- "dev": true
- },
- "node_modules/lodash.assignin": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
- "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==",
- "dev": true
- },
- "node_modules/lodash.bind": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
- "integrity": "sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==",
- "dev": true
- },
- "node_modules/lodash.capitalize": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz",
- "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==",
- "dev": true
- },
- "node_modules/lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
- "dev": true
- },
- "node_modules/lodash.defaults": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
- "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
- "dev": true
- },
- "node_modules/lodash.difference": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
- "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==",
- "dev": true
- },
- "node_modules/lodash.escaperegexp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
- "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
- "dev": true
- },
- "node_modules/lodash.filter": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
- "integrity": "sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==",
- "dev": true
- },
- "node_modules/lodash.flatten": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==",
- "dev": true
- },
- "node_modules/lodash.foreach": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
- "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==",
- "dev": true
- },
- "node_modules/lodash.includes": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
- "dev": true
- },
- "node_modules/lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
- "dev": true
- },
- "node_modules/lodash.isinteger": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
- "dev": true
- },
- "node_modules/lodash.ismatch": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz",
- "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==",
- "dev": true
- },
- "node_modules/lodash.isnumber": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
- "dev": true
- },
- "node_modules/lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "dev": true
- },
- "node_modules/lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
- "dev": true
- },
- "node_modules/lodash.map": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
- "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==",
- "dev": true
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
- },
- "node_modules/lodash.once": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
- "dev": true
- },
- "node_modules/lodash.pad": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz",
- "integrity": "sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg==",
- "dev": true
- },
- "node_modules/lodash.padend": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
- "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==",
- "dev": true
- },
- "node_modules/lodash.padstart": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
- "integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==",
- "dev": true
- },
- "node_modules/lodash.pick": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==",
- "dev": true
- },
- "node_modules/lodash.reduce": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
- "integrity": "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==",
- "dev": true
- },
- "node_modules/lodash.reject": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
- "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==",
- "dev": true
- },
- "node_modules/lodash.some": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
- "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==",
- "dev": true
- },
- "node_modules/lodash.startswith": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/lodash.startswith/-/lodash.startswith-4.2.1.tgz",
- "integrity": "sha512-XClYR1h4/fJ7H+mmCKppbiBmljN/nGs73iq2SjCT9SF4CBPoUHzLvWmH1GtZMhMBZSiRkHXfeA2RY1eIlJ75ww==",
- "dev": true
- },
- "node_modules/lodash.uniqby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz",
- "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==",
- "dev": true
- },
- "node_modules/logform": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz",
- "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==",
- "dev": true,
- "dependencies": {
- "@colors/colors": "1.5.0",
- "@types/triple-beam": "^1.3.2",
- "fecha": "^4.2.0",
- "ms": "^2.1.1",
- "safe-stable-stringify": "^2.3.1",
- "triple-beam": "^1.3.0"
- }
- },
- "node_modules/lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/lru-memoizer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.2.0.tgz",
- "integrity": "sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==",
- "dev": true,
- "dependencies": {
- "lodash.clonedeep": "^4.5.0",
- "lru-cache": "~4.0.0"
- }
- },
- "node_modules/lru-memoizer/node_modules/lru-cache": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
- "integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==",
- "dev": true,
- "dependencies": {
- "pseudomap": "^1.0.1",
- "yallist": "^2.0.0"
- }
- },
- "node_modules/lru-memoizer/node_modules/yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
- "dev": true
- },
- "node_modules/lru-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
- "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==",
- "dev": true,
- "dependencies": {
- "es5-ext": "~0.10.2"
- }
- },
- "node_modules/lsof": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/lsof/-/lsof-0.1.0.tgz",
- "integrity": "sha512-RlNW3s4gQ0CIlDM3jwfx/Ogdwpa8PHySyd5FnKKXfi2NPXEjqgwONyA0y9ax33ur1G+K+f192zzKNQljupSgNA==",
- "deprecated": "No longer maintained",
- "dev": true,
- "engines": {
- "node": ">= 0.2.0"
- }
- },
- "node_modules/make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
- "dev": true,
- "dependencies": {
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/map-obj": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
- "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/marked": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
- "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
- "dev": true,
- "bin": {
- "marked": "bin/marked.js"
- },
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/marked-terminal": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz",
- "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==",
- "dev": true,
- "dependencies": {
- "ansi-escapes": "^6.2.0",
- "cardinal": "^2.1.1",
- "chalk": "^5.2.0",
- "cli-table3": "^0.6.3",
- "node-emoji": "^1.11.0",
- "supports-hyperlinks": "^2.3.0"
- },
- "engines": {
- "node": ">=14.13.1 || >=16.0.0"
- },
- "peerDependencies": {
- "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0"
- }
- },
- "node_modules/marked-terminal/node_modules/chalk": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
- "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
- "dev": true,
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/memoizee": {
- "version": "0.3.10",
- "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz",
- "integrity": "sha512-LLzVUuWwGBKK188spgOK/ukrp5zvd9JGsiLDH41pH9vt5jvhZfsu5pxDuAnYAMG8YEGce72KO07sSBy9KkvOfw==",
- "dev": true,
- "dependencies": {
- "d": "~0.1.1",
- "es5-ext": "~0.10.11",
- "es6-weak-map": "~0.1.4",
- "event-emitter": "~0.3.4",
- "lru-queue": "0.1",
- "next-tick": "~0.2.2",
- "timers-ext": "0.1"
- }
- },
- "node_modules/memoizee/node_modules/next-tick": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz",
- "integrity": "sha512-f7h4svPtl+QidoBv4taKXUjJ70G2asaZ8G28nS0OkqaalX8dwwrtWtyxEDPK62AC00ur/+/E0pUwBwY5EPn15Q==",
- "dev": true
- },
- "node_modules/memory-pager": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
- "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
- "dev": true,
- "optional": true
- },
- "node_modules/meow": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
- "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
- "dev": true,
- "dependencies": {
- "@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.2.2",
- "decamelize-keys": "^1.1.0",
- "hard-rejection": "^2.1.0",
- "minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.0",
- "read-pkg-up": "^7.0.1",
- "redent": "^3.0.0",
- "trim-newlines": "^3.0.0",
- "type-fest": "^0.18.0",
- "yargs-parser": "^20.2.3"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
- "dev": true
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
- "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minimist-options": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
- "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
- "dev": true,
- "dependencies": {
- "arrify": "^1.0.1",
- "is-plain-obj": "^1.1.0",
- "kind-of": "^6.0.3"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/modify-values": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
- "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mongodb": {
- "version": "3.7.3",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz",
- "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==",
- "dev": true,
- "dependencies": {
- "bl": "^2.2.1",
- "bson": "^1.1.4",
- "denque": "^1.4.1",
- "optional-require": "^1.1.8",
- "safe-buffer": "^5.1.2"
- },
- "engines": {
- "node": ">=4"
- },
- "optionalDependencies": {
- "saslprep": "^1.0.0"
- },
- "peerDependenciesMeta": {
- "aws4": {
- "optional": true
- },
- "bson-ext": {
- "optional": true
- },
- "kerberos": {
- "optional": true
- },
- "mongodb-client-encryption": {
- "optional": true
- },
- "mongodb-extjson": {
- "optional": true
- },
- "snappy": {
- "optional": true
- }
- }
- },
- "node_modules/mongodb-connection-string-url": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
- "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
- "dev": true,
- "dependencies": {
- "@types/whatwg-url": "^8.2.1",
- "whatwg-url": "^11.0.0"
- }
- },
- "node_modules/mongodb-connection-string-url/node_modules/tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
- "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
- "dev": true,
- "dependencies": {
- "tr46": "^3.0.0",
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/mongodb-core": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.7.tgz",
- "integrity": "sha512-WypKdLxFNPOH/Jy6i9z47IjG2wIldA54iDZBmHMINcgKOUcWJh8og+Wix76oGd7EyYkHJKssQ2FAOw5Su/n4XQ==",
- "dev": true,
- "dependencies": {
- "bson": "^1.1.1",
- "require_optional": "^1.0.1",
- "safe-buffer": "^5.1.2"
- },
- "optionalDependencies": {
- "saslprep": "^1.0.0"
- }
- },
- "node_modules/mongodb-dbpath": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/mongodb-dbpath/-/mongodb-dbpath-0.0.1.tgz",
- "integrity": "sha512-JljM2Gci3LQgECY4Wnp8tRx6eDNSoTnqiz4TIaOfqLuPr3SAbSdZEAQomHniH8DQJpn97gxdYkW/XomxYPZM2w==",
- "dev": true,
- "dependencies": {
- "async": "^1.4.0",
- "debug": "^2.1.1",
- "minimist": "^1.1.1",
- "mkdirp": "^0.5.1",
- "untildify": "^1.0.0"
- },
- "bin": {
- "mongodb-dbpath": "bin/mongodb-dbpath.js"
- }
- },
- "node_modules/mongodb-dbpath/node_modules/async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==",
- "dev": true
- },
- "node_modules/mongodb-dbpath/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/mongodb-dbpath/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/mongodb-dbpath/node_modules/untildify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-1.0.0.tgz",
- "integrity": "sha512-LSU5BVpAncfzB2UBQaqfNww36wRSehWHs2grMM0ueYctZYxAhntiMvqDBhezYCYvbLeejeZ1nUWSl3mmkdPp+g==",
- "dev": true,
- "dependencies": {
- "user-home": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mongodb-download-url": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/mongodb-download-url/-/mongodb-download-url-1.3.0.tgz",
- "integrity": "sha512-N7mRi3/LIAHCeTa+JtJVrVno4BNHVYF+6/WUamVFsbvCxtljDmQA1n9FSQxV4dfdiknR9zaoFcXAmd1gtg3Elg==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "minimist": "^1.2.3",
- "node-fetch": "^2.6.1",
- "semver": "^7.1.1"
- },
- "bin": {
- "mongodb-download-url": "bin/mongodb-download-url.js"
- }
- },
- "node_modules/mongodb-download-url/node_modules/semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/mongodb-runner": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/mongodb-runner/-/mongodb-runner-4.8.1.tgz",
- "integrity": "sha512-1jv7EEyh+ajvGmLwDMXY5BjT/Xqdxgf+AwPK99JHhgeoAISffS3l9Z1c/IIOsSCulMlL7KlR10TyUdzSHZqMhg==",
- "dev": true,
- "dependencies": {
- "async": "^3.1.0",
- "clui": "^0.3.6",
- "debug": "^4.1.1",
- "fs-extra": "^8.1.0",
- "is-mongodb-running": "^1.0.1",
- "lodash.defaults": "^4.2.0",
- "minimist": "^1.2.0",
- "mkdirp": "^0.5.1",
- "mongodb": "^3.4.0",
- "mongodb-dbpath": "^0.0.1",
- "mongodb-tools": "github:mongodb-js/mongodb-tools#0d1a90f49796c41f6d47c7c7999fe384014a16a0",
- "mongodb-version-manager": "^1.4.3",
- "untildify": "^4.0.0",
- "which": "^2.0.1"
- },
- "bin": {
- "mongodb-runner": "bin/mongodb-runner.js"
- }
- },
- "node_modules/mongodb-runner/node_modules/fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "engines": {
- "node": ">=6 <7 || >=8"
- }
- },
- "node_modules/mongodb-runner/node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/mongodb-runner/node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true,
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/mongodb-tools": {
- "version": "1.2.0",
- "resolved": "git+ssh://git@github.com/mongodb-js/mongodb-tools.git#0d1a90f49796c41f6d47c7c7999fe384014a16a0",
- "integrity": "sha512-DNJJQYg1/VcE4gNP7zpKeWGIezwcpkI8XzG4YFL3WybY6cuKWMz3d1CIp3uKKEpva1qOHk2LI8mKWJX1Vpw4Sg==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "debug": "^2.2.0",
- "lodash": "^4.17.12",
- "mkdirp": "0.5.0",
- "mongodb-core": "*",
- "rimraf": "2.2.6"
- }
- },
- "node_modules/mongodb-tools/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/mongodb-tools/node_modules/minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==",
- "dev": true
- },
- "node_modules/mongodb-tools/node_modules/mkdirp": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
- "integrity": "sha512-xjjNGy+ry1lhtIKcr2PT6ok3aszhQfgrUDp4OZLHacgRgFmF6XR9XCOJVcXlVGQonIqXcK1DvqgKKQOPWYGSfw==",
- "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
- "dev": true,
- "dependencies": {
- "minimist": "0.0.8"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/mongodb-tools/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/mongodb-version-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mongodb-version-list/-/mongodb-version-list-1.0.0.tgz",
- "integrity": "sha512-F3kIABEMNjg3ZAX4SRbO1QPmhpP4NX2IgJq+lcUKidducTOVJafXJ+E+pMkgpU0xumC8QYbIZJ+8y4GZys9E4g==",
- "dev": true,
- "dependencies": {
- "cheerio": "^0.22.0",
- "debug": "^2.2.0",
- "downcache": "^0.0.9",
- "fs-extra": "^1.0.0",
- "minimist": "^1.1.1",
- "semver": "^5.0.1"
- },
- "bin": {
- "mongodb-version-list": "bin/mongodb-version-list.js"
- }
- },
- "node_modules/mongodb-version-list/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/mongodb-version-list/node_modules/fs-extra": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
- "integrity": "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^2.1.0",
- "klaw": "^1.0.0"
- }
- },
- "node_modules/mongodb-version-list/node_modules/jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
- "dev": true,
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/mongodb-version-list/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/mongodb-version-list/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/mongodb-version-manager": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/mongodb-version-manager/-/mongodb-version-manager-1.5.0.tgz",
- "integrity": "sha512-VHijlQXvQFnX/9MzfGePyBNr9qHLHRHg6sM2ChFO+05Htf6JY50WzvDWZmtXUNGXEor80fXxhswwDJevGlZkyA==",
- "dev": true,
- "dependencies": {
- "ampersand-state": "^5.0.3",
- "async": "^3.1.0",
- "chalk": "^2.1.0",
- "debug": ">= 2.6.9 < 3.0.0 || >= ^3.1.0",
- "docopt": "^0.6.2",
- "download": "^6.2.5",
- "figures": "^3.2.0",
- "fs-extra": "^8.1.0",
- "get-mongodb-version": "^2.0.1",
- "lodash.defaults": "^4.2.0",
- "lodash.difference": "^4.1.1",
- "mongodb-download-url": "^1.0.0",
- "mongodb-version-list": "^1.0.0",
- "semver": "^5.3.0",
- "tildify": "^2.0.0",
- "untildify": "^4.0.0"
- },
- "bin": {
- "m": "bin/m.js",
- "mongodb-version-manager": "bin/mongodb-version-manager.js"
- }
- },
- "node_modules/mongodb-version-manager/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/mongodb-version-manager/node_modules/figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mongodb-version-manager/node_modules/fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "engines": {
- "node": ">=6 <7 || >=8"
- }
- },
- "node_modules/mongodb-version-manager/node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/mongodb-version-manager/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/mongodb-version-manager/node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true,
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/mustache": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
- "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
- "dev": true,
- "bin": {
- "mustache": "bin/mustache"
- }
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true,
- "peer": true
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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/nerf-dart": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz",
- "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==",
- "dev": true
- },
- "node_modules/next-tick": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
- "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
- "dev": true
- },
- "node_modules/node-domexception": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
- "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/jimmywarting"
- },
- {
- "type": "github",
- "url": "https://paypal.me/jimmywarting"
- }
- ],
- "engines": {
- "node": ">=10.5.0"
- }
- },
- "node_modules/node-emoji": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
- "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.21"
- }
- },
- "node_modules/node-fetch": {
- "version": "2.6.11",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz",
- "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==",
- "dev": true,
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-forge": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.0.tgz",
- "integrity": "sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==",
- "dev": true,
- "engines": {
- "node": ">= 6.13.0"
- }
- },
- "node_modules/node-netstat": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/node-netstat/-/node-netstat-1.8.0.tgz",
- "integrity": "sha512-P1a5Sh9FfjTXxI6hC9q/Nqre8kT63FQxBCr1qz5ffk76EkQBH62+XEhIhlzfz6Bz+FRwOFqidW2FDGXnOXvyJQ==",
- "dev": true,
- "dependencies": {
- "is-wsl": "^1.1.0"
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
- "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
- "dev": true,
- "peer": true
- },
- "node_modules/normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/normalize-package-data/node_modules/semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/normalize-url": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
- "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npm": {
- "version": "9.6.6",
- "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.6.tgz",
- "integrity": "sha512-GIe+nCIw8EJIv52IXDVETSGnx7p9Ttg4VsaXNIeT4eaKZpIZ635rKC/uzQ6nnc4ibCUmESoK3PrXG0/puoqNcg==",
- "bundleDependencies": [
- "@isaacs/string-locale-compare",
- "@npmcli/arborist",
- "@npmcli/config",
- "@npmcli/map-workspaces",
- "@npmcli/package-json",
- "@npmcli/run-script",
- "abbrev",
- "archy",
- "cacache",
- "chalk",
- "ci-info",
- "cli-columns",
- "cli-table3",
- "columnify",
- "fastest-levenshtein",
- "fs-minipass",
- "glob",
- "graceful-fs",
- "hosted-git-info",
- "ini",
- "init-package-json",
- "is-cidr",
- "json-parse-even-better-errors",
- "libnpmaccess",
- "libnpmdiff",
- "libnpmexec",
- "libnpmfund",
- "libnpmhook",
- "libnpmorg",
- "libnpmpack",
- "libnpmpublish",
- "libnpmsearch",
- "libnpmteam",
- "libnpmversion",
- "make-fetch-happen",
- "minimatch",
- "minipass",
- "minipass-pipeline",
- "ms",
- "node-gyp",
- "nopt",
- "npm-audit-report",
- "npm-install-checks",
- "npm-package-arg",
- "npm-pick-manifest",
- "npm-profile",
- "npm-registry-fetch",
- "npm-user-validate",
- "npmlog",
- "p-map",
- "pacote",
- "parse-conflict-json",
- "proc-log",
- "qrcode-terminal",
- "read",
- "read-package-json",
- "read-package-json-fast",
- "semver",
- "ssri",
- "tar",
- "text-table",
- "tiny-relative-date",
- "treeverse",
- "validate-npm-package-name",
- "which",
- "write-file-atomic"
- ],
- "dev": true,
- "dependencies": {
- "@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/arborist": "^6.2.9",
- "@npmcli/config": "^6.1.6",
- "@npmcli/map-workspaces": "^3.0.4",
- "@npmcli/package-json": "^3.0.0",
- "@npmcli/run-script": "^6.0.1",
- "abbrev": "^2.0.0",
- "archy": "~1.0.0",
- "cacache": "^17.1.0",
- "chalk": "^4.1.2",
- "ci-info": "^3.8.0",
- "cli-columns": "^4.0.0",
- "cli-table3": "^0.6.3",
- "columnify": "^1.6.0",
- "fastest-levenshtein": "^1.0.16",
- "fs-minipass": "^3.0.2",
- "glob": "^10.2.2",
- "graceful-fs": "^4.2.11",
- "hosted-git-info": "^6.1.1",
- "ini": "^4.1.0",
- "init-package-json": "^5.0.0",
- "is-cidr": "^4.0.2",
- "json-parse-even-better-errors": "^3.0.0",
- "libnpmaccess": "^7.0.2",
- "libnpmdiff": "^5.0.17",
- "libnpmexec": "^5.0.17",
- "libnpmfund": "^4.0.17",
- "libnpmhook": "^9.0.3",
- "libnpmorg": "^5.0.4",
- "libnpmpack": "^5.0.17",
- "libnpmpublish": "^7.1.4",
- "libnpmsearch": "^6.0.2",
- "libnpmteam": "^5.0.3",
- "libnpmversion": "^4.0.2",
- "make-fetch-happen": "^11.1.1",
- "minimatch": "^9.0.0",
- "minipass": "^5.0.0",
- "minipass-pipeline": "^1.2.4",
- "ms": "^2.1.2",
- "node-gyp": "^9.3.1",
- "nopt": "^7.1.0",
- "npm-audit-report": "^4.0.0",
- "npm-install-checks": "^6.1.1",
- "npm-package-arg": "^10.1.0",
- "npm-pick-manifest": "^8.0.1",
- "npm-profile": "^7.0.1",
- "npm-registry-fetch": "^14.0.5",
- "npm-user-validate": "^2.0.0",
- "npmlog": "^7.0.1",
- "p-map": "^4.0.0",
- "pacote": "^15.1.3",
- "parse-conflict-json": "^3.0.1",
- "proc-log": "^3.0.0",
- "qrcode-terminal": "^0.12.0",
- "read": "^2.1.0",
- "read-package-json": "^6.0.3",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.5.0",
- "ssri": "^10.0.4",
- "tar": "^6.1.14",
- "text-table": "~0.2.0",
- "tiny-relative-date": "^1.3.0",
- "treeverse": "^3.0.0",
- "validate-npm-package-name": "^5.0.0",
- "which": "^3.0.1",
- "write-file-atomic": "^5.0.1"
- },
- "bin": {
- "npm": "bin/npm-cli.js",
- "npx": "bin/npx-cli.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm-conf": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
- "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
- "dev": true,
- "dependencies": {
- "config-chain": "^1.1.11",
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/@colors/colors": {
- "version": "1.5.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/npm/node_modules/@gar/promisify": {
- "version": "1.1.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": {
- "version": "9.2.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": {
- "version": "5.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/npm/node_modules/@isaacs/string-locale-compare": {
- "version": "1.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/@npmcli/arborist": {
- "version": "6.2.9",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/fs": "^3.1.0",
- "@npmcli/installed-package-contents": "^2.0.2",
- "@npmcli/map-workspaces": "^3.0.2",
- "@npmcli/metavuln-calculator": "^5.0.0",
- "@npmcli/name-from-folder": "^2.0.0",
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^3.0.0",
- "@npmcli/query": "^3.0.0",
- "@npmcli/run-script": "^6.0.0",
- "bin-links": "^4.0.1",
- "cacache": "^17.0.4",
- "common-ancestor-path": "^1.0.1",
- "hosted-git-info": "^6.1.1",
- "json-parse-even-better-errors": "^3.0.0",
- "json-stringify-nice": "^1.1.4",
- "minimatch": "^9.0.0",
- "nopt": "^7.0.0",
- "npm-install-checks": "^6.0.0",
- "npm-package-arg": "^10.1.0",
- "npm-pick-manifest": "^8.0.1",
- "npm-registry-fetch": "^14.0.3",
- "npmlog": "^7.0.1",
- "pacote": "^15.0.8",
- "parse-conflict-json": "^3.0.0",
- "proc-log": "^3.0.0",
- "promise-all-reject-late": "^1.0.0",
- "promise-call-limit": "^1.0.2",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.3.7",
- "ssri": "^10.0.1",
- "treeverse": "^3.0.0",
- "walk-up-path": "^3.0.1"
- },
- "bin": {
- "arborist": "bin/index.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/config": {
- "version": "6.1.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/map-workspaces": "^3.0.2",
- "ini": "^4.1.0",
- "nopt": "^7.0.0",
- "proc-log": "^3.0.0",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.3.5",
- "walk-up-path": "^3.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/disparity-colors": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "ansi-styles": "^4.3.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/fs": {
- "version": "3.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/git": {
- "version": "4.0.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/promise-spawn": "^6.0.0",
- "lru-cache": "^7.4.4",
- "npm-pick-manifest": "^8.0.0",
- "proc-log": "^3.0.0",
- "promise-inflight": "^1.0.1",
- "promise-retry": "^2.0.1",
- "semver": "^7.3.5",
- "which": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/installed-package-contents": {
- "version": "2.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "npm-bundled": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- },
- "bin": {
- "installed-package-contents": "lib/index.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/map-workspaces": {
- "version": "3.0.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/name-from-folder": "^2.0.0",
- "glob": "^10.2.2",
- "minimatch": "^9.0.0",
- "read-package-json-fast": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/metavuln-calculator": {
- "version": "5.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "cacache": "^17.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "pacote": "^15.0.0",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/move-file": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "mkdirp": "^1.0.4",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/name-from-folder": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/node-gyp": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/package-json": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "json-parse-even-better-errors": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/promise-spawn": {
- "version": "6.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "which": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/query": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@npmcli/run-script": {
- "version": "6.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/promise-spawn": "^6.0.0",
- "node-gyp": "^9.0.0",
- "read-package-json-fast": "^3.0.0",
- "which": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/npm/node_modules/@sigstore/protobuf-specs": {
- "version": "0.1.0",
- "dev": true,
- "inBundle": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/npm/node_modules/@tufjs/canonical-json": {
- "version": "1.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/@tufjs/models": {
- "version": "1.0.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@tufjs/canonical-json": "1.0.0",
- "minimatch": "^9.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/abbrev": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/abort-controller": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "event-target-shim": "^5.0.0"
- },
- "engines": {
- "node": ">=6.5"
- }
- },
- "node_modules/npm/node_modules/agent-base": {
- "version": "6.0.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/npm/node_modules/agentkeepalive": {
- "version": "4.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "debug": "^4.1.0",
- "depd": "^2.0.0",
- "humanize-ms": "^1.2.1"
- },
- "engines": {
- "node": ">= 8.0.0"
- }
- },
- "node_modules/npm/node_modules/aggregate-error": {
- "version": "3.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/ansi-regex": {
- "version": "5.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/npm/node_modules/aproba": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/archy": {
- "version": "1.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/are-we-there-yet": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^4.1.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/balanced-match": {
- "version": "1.0.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/base64-js": {
- "version": "1.5.1",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/bin-links": {
- "version": "4.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "cmd-shim": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "read-cmd-shim": "^4.0.0",
- "write-file-atomic": "^5.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/binary-extensions": {
- "version": "2.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/brace-expansion": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/npm/node_modules/buffer": {
- "version": "6.0.3",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "node_modules/npm/node_modules/builtins": {
- "version": "5.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^7.0.0"
- }
- },
- "node_modules/npm/node_modules/cacache": {
- "version": "17.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/fs": "^3.1.0",
- "fs-minipass": "^3.0.0",
- "glob": "^10.2.2",
- "lru-cache": "^7.7.1",
- "minipass": "^5.0.0",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "p-map": "^4.0.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11",
- "unique-filename": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/chalk": {
- "version": "4.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/npm/node_modules/chownr": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/npm/node_modules/ci-info": {
- "version": "3.8.0",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/cidr-regex": {
- "version": "3.1.1",
- "dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "ip-regex": "^4.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/npm/node_modules/clean-stack": {
- "version": "2.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/npm/node_modules/cli-columns": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/npm/node_modules/cli-table3": {
- "version": "0.6.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "string-width": "^4.2.0"
- },
- "engines": {
- "node": "10.* || >= 12.*"
- },
- "optionalDependencies": {
- "@colors/colors": "1.5.0"
- }
- },
- "node_modules/npm/node_modules/clone": {
- "version": "1.0.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/npm/node_modules/cmd-shim": {
- "version": "6.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/color-convert": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/npm/node_modules/color-name": {
- "version": "1.1.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/color-support": {
- "version": "1.1.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/npm/node_modules/columnify": {
- "version": "1.6.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "strip-ansi": "^6.0.1",
- "wcwidth": "^1.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/npm/node_modules/common-ancestor-path": {
- "version": "1.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/concat-map": {
- "version": "0.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/console-control-strings": {
- "version": "1.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/cross-spawn": {
- "version": "7.0.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/npm/node_modules/cross-spawn/node_modules/which": {
- "version": "2.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/npm/node_modules/cssesc": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/npm/node_modules/debug": {
- "version": "4.3.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/npm/node_modules/debug/node_modules/ms": {
- "version": "2.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/defaults": {
- "version": "1.0.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "clone": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npm/node_modules/delegates": {
- "version": "1.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/depd": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/npm/node_modules/diff": {
- "version": "5.1.0",
- "dev": true,
- "inBundle": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/npm/node_modules/eastasianwidth": {
- "version": "0.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/emoji-regex": {
- "version": "8.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/encoding": {
- "version": "0.1.13",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "iconv-lite": "^0.6.2"
- }
- },
- "node_modules/npm/node_modules/env-paths": {
- "version": "2.2.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/npm/node_modules/err-code": {
- "version": "2.0.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/event-target-shim": {
- "version": "5.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/npm/node_modules/events": {
- "version": "3.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/npm/node_modules/fastest-levenshtein": {
- "version": "1.0.16",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4.9.1"
- }
- },
- "node_modules/npm/node_modules/foreground-child": {
- "version": "3.1.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/fs-minipass": {
- "version": "3.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^5.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/fs.realpath": {
- "version": "1.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/function-bind": {
- "version": "1.1.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/gauge": {
- "version": "5.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.3",
- "console-control-strings": "^1.1.0",
- "has-unicode": "^2.0.1",
- "signal-exit": "^4.0.1",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.5"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/glob": {
- "version": "10.2.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.0.3",
- "minimatch": "^9.0.0",
- "minipass": "^5.0.0",
- "path-scurry": "^1.7.0"
- },
- "bin": {
- "glob": "dist/cjs/src/bin.js"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/graceful-fs": {
- "version": "4.2.11",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/has": {
- "version": "1.0.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/npm/node_modules/has-flag": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/has-unicode": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/hosted-git-info": {
- "version": "6.1.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^7.5.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/http-cache-semantics": {
- "version": "4.1.1",
- "dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause"
- },
- "node_modules/npm/node_modules/http-proxy-agent": {
- "version": "5.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/npm/node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/npm/node_modules/humanize-ms": {
- "version": "1.2.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.0.0"
- }
- },
- "node_modules/npm/node_modules/iconv-lite": {
- "version": "0.6.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm/node_modules/ieee754": {
- "version": "1.2.1",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "inBundle": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/npm/node_modules/ignore-walk": {
- "version": "6.0.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "minimatch": "^9.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/imurmurhash": {
- "version": "0.1.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/npm/node_modules/indent-string": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/infer-owner": {
- "version": "1.0.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/inflight": {
- "version": "1.0.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/npm/node_modules/inherits": {
- "version": "2.0.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/ini": {
- "version": "4.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/init-package-json": {
- "version": "5.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "npm-package-arg": "^10.0.0",
- "promzard": "^1.0.0",
- "read": "^2.0.0",
- "read-package-json": "^6.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4",
- "validate-npm-package-name": "^5.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/ip": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/ip-regex": {
- "version": "4.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/is-cidr": {
- "version": "4.0.2",
- "dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "cidr-regex": "^3.1.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/npm/node_modules/is-core-module": {
- "version": "2.12.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/npm/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/is-lambda": {
- "version": "1.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/isexe": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/jackspeak": {
- "version": "2.2.0",
- "dev": true,
- "inBundle": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/npm/node_modules/json-parse-even-better-errors": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/json-stringify-nice": {
- "version": "1.1.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/jsonparse": {
- "version": "1.3.1",
- "dev": true,
- "engines": [
- "node >= 0.2.0"
- ],
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/just-diff": {
- "version": "6.0.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/just-diff-apply": {
- "version": "5.5.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/libnpmaccess": {
- "version": "7.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "npm-package-arg": "^10.1.0",
- "npm-registry-fetch": "^14.0.3"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/libnpmdiff": {
- "version": "5.0.17",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/arborist": "^6.2.9",
- "@npmcli/disparity-colors": "^3.0.0",
- "@npmcli/installed-package-contents": "^2.0.2",
- "binary-extensions": "^2.2.0",
- "diff": "^5.1.0",
- "minimatch": "^9.0.0",
- "npm-package-arg": "^10.1.0",
- "pacote": "^15.0.8",
- "tar": "^6.1.13"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/libnpmexec": {
- "version": "5.0.17",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/arborist": "^6.2.9",
- "@npmcli/run-script": "^6.0.0",
- "chalk": "^4.1.0",
- "ci-info": "^3.7.1",
- "npm-package-arg": "^10.1.0",
- "npmlog": "^7.0.1",
- "pacote": "^15.0.8",
- "proc-log": "^3.0.0",
- "read": "^2.0.0",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.3.7",
- "walk-up-path": "^3.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/libnpmfund": {
- "version": "4.0.17",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/arborist": "^6.2.9"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/libnpmhook": {
- "version": "9.0.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "aproba": "^2.0.0",
- "npm-registry-fetch": "^14.0.3"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/libnpmorg": {
- "version": "5.0.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "aproba": "^2.0.0",
- "npm-registry-fetch": "^14.0.3"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/libnpmpack": {
- "version": "5.0.17",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/arborist": "^6.2.9",
- "@npmcli/run-script": "^6.0.0",
- "npm-package-arg": "^10.1.0",
- "pacote": "^15.0.8"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/libnpmpublish": {
- "version": "7.1.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "ci-info": "^3.6.1",
- "normalize-package-data": "^5.0.0",
- "npm-package-arg": "^10.1.0",
- "npm-registry-fetch": "^14.0.3",
- "proc-log": "^3.0.0",
- "semver": "^7.3.7",
- "sigstore": "^1.4.0",
- "ssri": "^10.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/libnpmsearch": {
- "version": "6.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "npm-registry-fetch": "^14.0.3"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/libnpmteam": {
- "version": "5.0.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "aproba": "^2.0.0",
- "npm-registry-fetch": "^14.0.3"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/libnpmversion": {
- "version": "4.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/git": "^4.0.1",
- "@npmcli/run-script": "^6.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "proc-log": "^3.0.0",
- "semver": "^7.3.7"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/lru-cache": {
- "version": "7.18.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/npm/node_modules/make-fetch-happen": {
- "version": "11.1.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "agentkeepalive": "^4.2.1",
- "cacache": "^17.0.0",
- "http-cache-semantics": "^4.1.1",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^7.7.1",
- "minipass": "^5.0.0",
- "minipass-fetch": "^3.0.0",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^7.0.0",
- "ssri": "^10.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/minimatch": {
- "version": "9.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/minipass": {
- "version": "5.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/minipass-collect": {
- "version": "1.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/npm/node_modules/minipass-collect/node_modules/minipass": {
- "version": "3.3.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/minipass-fetch": {
- "version": "3.0.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "minipass": "^5.0.0",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.1.2"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- },
- "optionalDependencies": {
- "encoding": "^0.1.13"
- }
- },
- "node_modules/npm/node_modules/minipass-flush": {
- "version": "1.0.5",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": {
- "version": "3.3.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/minipass-json-stream": {
- "version": "1.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "jsonparse": "^1.3.1",
- "minipass": "^3.0.0"
- }
- },
- "node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": {
- "version": "3.3.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/minipass-pipeline": {
- "version": "1.2.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": {
- "version": "3.3.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/minipass-sized": {
- "version": "1.0.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": {
- "version": "3.3.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/minizlib": {
- "version": "2.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/npm/node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/mkdirp": {
- "version": "1.0.4",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/npm/node_modules/ms": {
- "version": "2.1.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/mute-stream": {
- "version": "1.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/negotiator": {
- "version": "0.6.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/npm/node_modules/node-gyp": {
- "version": "9.3.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "env-paths": "^2.2.0",
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.6",
- "make-fetch-happen": "^10.0.3",
- "nopt": "^6.0.0",
- "npmlog": "^6.0.0",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.2",
- "which": "^2.0.2"
- },
- "bin": {
- "node-gyp": "bin/node-gyp.js"
- },
- "engines": {
- "node": "^12.13 || ^14.13 || >=16"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": {
- "version": "2.1.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@gar/promisify": "^1.1.3",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": {
- "version": "1.1.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/are-we-there-yet": {
- "version": "3.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": {
- "version": "1.1.11",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/cacache": {
- "version": "16.1.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/fs": "^2.1.0",
- "@npmcli/move-file": "^2.0.0",
- "chownr": "^2.0.0",
- "fs-minipass": "^2.1.0",
- "glob": "^8.0.1",
- "infer-owner": "^1.0.4",
- "lru-cache": "^7.7.1",
- "minipass": "^3.1.6",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "mkdirp": "^1.0.4",
- "p-map": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "rimraf": "^3.0.2",
- "ssri": "^9.0.0",
- "tar": "^6.1.11",
- "unique-filename": "^2.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob": {
- "version": "8.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": {
- "version": "5.1.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/fs-minipass": {
- "version": "2.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/gauge": {
- "version": "4.0.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.3",
- "console-control-strings": "^1.1.0",
- "has-unicode": "^2.0.1",
- "signal-exit": "^3.0.7",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.5"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/glob": {
- "version": "7.2.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": {
- "version": "10.2.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "agentkeepalive": "^4.2.1",
- "cacache": "^16.1.0",
- "http-cache-semantics": "^4.1.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^7.7.1",
- "minipass": "^3.1.6",
- "minipass-collect": "^1.0.2",
- "minipass-fetch": "^2.0.3",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^7.0.0",
- "ssri": "^9.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": {
- "version": "3.1.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/minipass": {
- "version": "3.3.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": {
- "version": "2.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "minipass": "^3.1.6",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.1.2"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- },
- "optionalDependencies": {
- "encoding": "^0.1.13"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/nopt": {
- "version": "6.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "abbrev": "^1.0.0"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": {
- "version": "6.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "are-we-there-yet": "^3.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^4.0.3",
- "set-blocking": "^2.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/readable-stream": {
- "version": "3.6.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/signal-exit": {
- "version": "3.0.7",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/ssri": {
- "version": "9.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.1.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "unique-slug": "^3.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "imurmurhash": "^0.1.4"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/node-gyp/node_modules/which": {
- "version": "2.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/npm/node_modules/nopt": {
- "version": "7.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "abbrev": "^2.0.0"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/normalize-package-data": {
- "version": "5.0.0",
- "dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "hosted-git-info": "^6.0.0",
- "is-core-module": "^2.8.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npm-audit-report": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "chalk": "^4.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npm-bundled": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "npm-normalize-package-bin": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npm-install-checks": {
- "version": "6.1.1",
- "dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "semver": "^7.1.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npm-normalize-package-bin": {
- "version": "3.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npm-package-arg": {
- "version": "10.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "hosted-git-info": "^6.0.0",
- "proc-log": "^3.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^5.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npm-packlist": {
- "version": "7.0.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "ignore-walk": "^6.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npm-pick-manifest": {
- "version": "8.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "npm-install-checks": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "npm-package-arg": "^10.0.0",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npm-profile": {
- "version": "7.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "npm-registry-fetch": "^14.0.0",
- "proc-log": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npm-registry-fetch": {
- "version": "14.0.5",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "make-fetch-happen": "^11.0.0",
- "minipass": "^5.0.0",
- "minipass-fetch": "^3.0.0",
- "minipass-json-stream": "^1.0.1",
- "minizlib": "^2.1.2",
- "npm-package-arg": "^10.0.0",
- "proc-log": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npm-user-validate": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/npmlog": {
- "version": "7.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "are-we-there-yet": "^4.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^5.0.0",
- "set-blocking": "^2.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/once": {
- "version": "1.4.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/npm/node_modules/p-map": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "aggregate-error": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npm/node_modules/pacote": {
- "version": "15.1.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "@npmcli/git": "^4.0.0",
- "@npmcli/installed-package-contents": "^2.0.1",
- "@npmcli/promise-spawn": "^6.0.1",
- "@npmcli/run-script": "^6.0.0",
- "cacache": "^17.0.0",
- "fs-minipass": "^3.0.0",
- "minipass": "^5.0.0",
- "npm-package-arg": "^10.0.0",
- "npm-packlist": "^7.0.0",
- "npm-pick-manifest": "^8.0.0",
- "npm-registry-fetch": "^14.0.0",
- "proc-log": "^3.0.0",
- "promise-retry": "^2.0.1",
- "read-package-json": "^6.0.0",
- "read-package-json-fast": "^3.0.0",
- "sigstore": "^1.3.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11"
- },
- "bin": {
- "pacote": "lib/bin.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/parse-conflict-json": {
- "version": "3.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "json-parse-even-better-errors": "^3.0.0",
- "just-diff": "^6.0.0",
- "just-diff-apply": "^5.2.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/path-is-absolute": {
- "version": "1.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm/node_modules/path-key": {
- "version": "3.1.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/path-scurry": {
- "version": "1.7.0",
- "dev": true,
- "inBundle": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^9.0.0",
- "minipass": "^5.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/path-scurry/node_modules/lru-cache": {
- "version": "9.1.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "14 || >=16.14"
- }
- },
- "node_modules/npm/node_modules/postcss-selector-parser": {
- "version": "6.0.12",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/npm/node_modules/proc-log": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/process": {
- "version": "0.11.10",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/npm/node_modules/promise-all-reject-late": {
- "version": "1.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/promise-call-limit": {
- "version": "1.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/promise-inflight": {
- "version": "1.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/promise-retry": {
- "version": "2.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "err-code": "^2.0.2",
- "retry": "^0.12.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/npm/node_modules/promzard": {
- "version": "1.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "read": "^2.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/qrcode-terminal": {
- "version": "0.12.0",
- "dev": true,
- "inBundle": true,
- "bin": {
- "qrcode-terminal": "bin/qrcode-terminal.js"
- }
- },
- "node_modules/npm/node_modules/read": {
- "version": "2.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "mute-stream": "~1.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/read-cmd-shim": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/read-package-json": {
- "version": "6.0.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "glob": "^10.2.2",
- "json-parse-even-better-errors": "^3.0.0",
- "normalize-package-data": "^5.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/read-package-json-fast": {
- "version": "3.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "json-parse-even-better-errors": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/readable-stream": {
- "version": "4.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "abort-controller": "^3.0.0",
- "buffer": "^6.0.3",
- "events": "^3.3.0",
- "process": "^0.11.10"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/npm/node_modules/retry": {
- "version": "0.12.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/npm/node_modules/rimraf": {
- "version": "3.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/rimraf/node_modules/brace-expansion": {
- "version": "1.1.11",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/npm/node_modules/rimraf/node_modules/glob": {
- "version": "7.2.3",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/rimraf/node_modules/minimatch": {
- "version": "3.1.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/npm/node_modules/safe-buffer": {
- "version": "5.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/safer-buffer": {
- "version": "2.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "optional": true
- },
- "node_modules/npm/node_modules/semver": {
- "version": "7.5.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/npm/node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/npm/node_modules/set-blocking": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/shebang-command": {
- "version": "2.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/shebang-regex": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/signal-exit": {
- "version": "4.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/npm/node_modules/sigstore": {
- "version": "1.4.0",
- "dev": true,
- "inBundle": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@sigstore/protobuf-specs": "^0.1.0",
- "make-fetch-happen": "^11.0.1",
- "tuf-js": "^1.1.3"
- },
- "bin": {
- "sigstore": "bin/sigstore.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/smart-buffer": {
- "version": "4.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6.0.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/npm/node_modules/socks": {
- "version": "2.7.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ip": "^2.0.0",
- "smart-buffer": "^4.2.0"
- },
- "engines": {
- "node": ">= 10.13.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/npm/node_modules/socks-proxy-agent": {
- "version": "7.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^6.0.2",
- "debug": "^4.3.3",
- "socks": "^2.6.2"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/npm/node_modules/spdx-correct": {
- "version": "3.2.0",
- "dev": true,
- "inBundle": true,
- "license": "Apache-2.0",
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/npm/node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "dev": true,
- "inBundle": true,
- "license": "CC-BY-3.0"
- },
- "node_modules/npm/node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/npm/node_modules/spdx-license-ids": {
- "version": "3.0.13",
- "dev": true,
- "inBundle": true,
- "license": "CC0-1.0"
- },
- "node_modules/npm/node_modules/ssri": {
- "version": "10.0.4",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^5.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/string_decoder": {
- "version": "1.1.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/npm/node_modules/string-width": {
- "version": "4.2.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/strip-ansi": {
- "version": "6.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/supports-color": {
- "version": "7.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/tar": {
- "version": "6.1.14",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/npm/node_modules/tar/node_modules/fs-minipass": {
- "version": "2.1.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npm/node_modules/text-table": {
- "version": "0.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/tiny-relative-date": {
- "version": "1.3.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/treeverse": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/tuf-js": {
- "version": "1.1.5",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "@tufjs/models": "1.0.4",
- "make-fetch-happen": "^11.1.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/unique-filename": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "unique-slug": "^4.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/unique-slug": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "imurmurhash": "^0.1.4"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/util-deprecate": {
- "version": "1.0.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "dev": true,
- "inBundle": true,
- "license": "Apache-2.0",
- "dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "node_modules/npm/node_modules/validate-npm-package-name": {
- "version": "5.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "builtins": "^5.0.0"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/walk-up-path": {
- "version": "3.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/wcwidth": {
- "version": "1.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "defaults": "^1.0.3"
- }
- },
- "node_modules/npm/node_modules/which": {
- "version": "3.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/which.js"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/wide-align": {
- "version": "1.1.5",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "node_modules/npm/node_modules/wrap-ansi": {
- "version": "8.1.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/npm/node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": {
- "version": "6.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": {
- "version": "9.2.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": {
- "version": "5.1.2",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "7.0.1",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/npm/node_modules/wrappy": {
- "version": "1.0.2",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npm/node_modules/write-file-atomic": {
- "version": "5.0.1",
- "dev": true,
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/npm/node_modules/yallist": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/npmlog": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
- "integrity": "sha512-DaL6RTb8Qh4tMe2ttPT1qWccETy2Vi5/8p+htMpLBeXJTr2CAqnF5WQtSP2eFpvaNbhLZ5uilDb98mRm4Q+lZQ==",
- "dev": true,
- "dependencies": {
- "ansi": "~0.3.1",
- "are-we-there-yet": "~1.1.2",
- "gauge": "~1.2.5"
- }
- },
- "node_modules/nth-check": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
- "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
- "dev": true,
- "dependencies": {
- "boolbase": "~1.0.0"
- }
- },
- "node_modules/number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-hash": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
- "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dev": true,
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/one-time": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
- "integrity": "sha512-qAMrwuk2xLEutlASoiPiAMW3EN3K96Ka/ilSXYr6qR1zSVXw2j7+yDSqGTC4T9apfLYxM3tLLjKvgPdAUK7kYQ==",
- "dev": true
- },
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/optional-require": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz",
- "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==",
- "dev": true,
- "dependencies": {
- "require-at": "^1.0.6"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/p-cancelable": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
- "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-each-series": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz",
- "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-event": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz",
- "integrity": "sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==",
- "dev": true,
- "dependencies": {
- "p-timeout": "^1.1.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-filter": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz",
- "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==",
- "dev": true,
- "dependencies": {
- "p-map": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-is-promise": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz",
- "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/p-reduce": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz",
- "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-retry": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
- "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
- "dev": true,
- "dependencies": {
- "@types/retry": "0.12.0",
- "retry": "^0.13.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-timeout": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
- "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==",
- "dev": true,
- "dependencies": {
- "p-finally": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/packet-reader": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
- "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==",
- "dev": true
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/parse/-/parse-4.0.1.tgz",
- "integrity": "sha512-ctv7zaVKlQIBSbarorB7TH3yacDzCvgWBP4ccpLKxlpe21QlaY88kv9V7ca7JdG/Txb3qWug4MwepQoPogXB6Q==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "7.18.0",
- "@babel/runtime-corejs3": "7.17.8",
- "idb-keyval": "6.0.3",
- "react-native-crypto-js": "1.0.0",
- "uuid": "3.4.0",
- "ws": "8.6.0",
- "xmlhttprequest": "1.8.0"
- },
- "engines": {
- "node": ">=14.21.0 <17 || >=18 <19"
- },
- "optionalDependencies": {
- "crypto-js": "4.1.1"
- }
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse-server": {
- "version": "6.1.0-alpha.10",
- "resolved": "git+ssh://git@github.com/parse-community/parse-server.git#559b1de828c3e3f73eee3599a29f0db2741a73c4",
- "dev": true,
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@babel/eslint-parser": "7.19.1",
- "@graphql-tools/merge": "8.3.6",
- "@graphql-tools/schema": "9.0.4",
- "@graphql-tools/utils": "8.12.0",
- "@graphql-yoga/node": "2.6.0",
- "@parse/fs-files-adapter": "1.2.2",
- "@parse/push-adapter": "4.1.2",
- "bcryptjs": "2.4.3",
- "body-parser": "1.20.1",
- "commander": "5.1.0",
- "cors": "2.8.5",
- "deepcopy": "2.1.0",
- "express": "4.18.2",
- "express-rate-limit": "6.6.0",
- "follow-redirects": "1.15.2",
- "graphql": "16.6.0",
- "graphql-list-fields": "2.0.2",
- "graphql-relay": "0.10.0",
- "graphql-tag": "2.12.6",
- "intersect": "1.0.1",
- "ip-range-check": "0.2.0",
- "jsonwebtoken": "9.0.0",
- "jwks-rsa": "2.1.5",
- "ldapjs": "2.3.3",
- "lodash": "4.17.21",
- "lru-cache": "7.12.0",
- "mime": "3.0.0",
- "mongodb": "4.10.0",
- "mustache": "4.2.0",
- "parse": "4.0.1",
- "path-to-regexp": "0.1.7",
- "pg-monitor": "2.0.0",
- "pg-promise": "11.3.0",
- "pluralize": "8.0.0",
- "rate-limit-redis": "3.0.1",
- "redis": "4.0.6",
- "semver": "7.3.8",
- "subscriptions-transport-ws": "0.11.0",
- "tv4": "1.3.0",
- "uuid": "9.0.0",
- "winston": "3.8.1",
- "winston-daily-rotate-file": "4.7.1",
- "ws": "8.9.0"
- },
- "bin": {
- "parse-server": "bin/parse-server"
- },
- "engines": {
- "node": ">=14.21.0 <17 || >=18 <19"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parse-server"
- },
- "optionalDependencies": {
- "@node-rs/bcrypt": "1.1.0"
- }
- },
- "node_modules/parse-server/node_modules/bson": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz",
- "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==",
- "dev": true,
- "dependencies": {
- "buffer": "^5.6.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/parse-server/node_modules/denque": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
- "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
- "dev": true,
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/parse-server/node_modules/lru-cache": {
- "version": "7.12.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.12.0.tgz",
- "integrity": "sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/parse-server/node_modules/mongodb": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.10.0.tgz",
- "integrity": "sha512-My2QxLTw0Cc1O9gih0mz4mqo145Jq4rLAQx0Glk/Ha9iYBzYpt4I2QFNRIh35uNFNfe8KFQcdwY1/HKxXBkinw==",
- "dev": true,
- "dependencies": {
- "bson": "^4.7.0",
- "denque": "^2.1.0",
- "mongodb-connection-string-url": "^2.5.3",
- "socks": "^2.7.0"
- },
- "engines": {
- "node": ">=12.9.0"
- },
- "optionalDependencies": {
- "saslprep": "^1.0.3"
- }
- },
- "node_modules/parse-server/node_modules/one-time": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
- "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
- "dev": true,
- "dependencies": {
- "fn.name": "1.x.x"
- }
- },
- "node_modules/parse-server/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/parse-server/node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/parse-server/node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/parse-server/node_modules/winston": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.1.tgz",
- "integrity": "sha512-r+6YAiCR4uI3N8eQNOg8k3P3PqwAm20cLKlzVD9E66Ch39+LZC+VH1UKf9JemQj2B3QoUHfKD7Poewn0Pr3Y1w==",
- "dev": true,
- "dependencies": {
- "@dabh/diagnostics": "^2.0.2",
- "async": "^3.2.3",
- "is-stream": "^2.0.0",
- "logform": "^2.4.0",
- "one-time": "^1.0.0",
- "readable-stream": "^3.4.0",
- "safe-stable-stringify": "^2.3.1",
- "stack-trace": "0.0.x",
- "triple-beam": "^1.3.0",
- "winston-transport": "^4.5.0"
- },
- "engines": {
- "node": ">= 12.0.0"
- }
- },
- "node_modules/parse-server/node_modules/winston-daily-rotate-file": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz",
- "integrity": "sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==",
- "dev": true,
- "dependencies": {
- "file-stream-rotator": "^0.6.1",
- "object-hash": "^2.0.1",
- "triple-beam": "^1.3.0",
- "winston-transport": "^4.4.0"
- },
- "engines": {
- "node": ">=8"
- },
- "peerDependencies": {
- "winston": "^3"
- }
- },
- "node_modules/parse/node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "dev": true,
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/parse/node_modules/ws": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz",
- "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
- "dev": true
- },
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
- "dev": true
- },
- "node_modules/performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
- "dev": true
- },
- "node_modules/pg": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/pg/-/pg-8.9.0.tgz",
- "integrity": "sha512-ZJM+qkEbtOHRuXjmvBtOgNOXOtLSbxiMiUVMgE4rV6Zwocy03RicCVvDXgx8l4Biwo8/qORUnEqn2fdQzV7KCg==",
- "dev": true,
- "dependencies": {
- "buffer-writer": "2.0.0",
- "packet-reader": "1.0.0",
- "pg-connection-string": "^2.5.0",
- "pg-pool": "^3.5.2",
- "pg-protocol": "^1.6.0",
- "pg-types": "^2.1.0",
- "pgpass": "1.x"
- },
- "engines": {
- "node": ">= 8.0.0"
- },
- "peerDependencies": {
- "pg-native": ">=3.0.1"
- },
- "peerDependenciesMeta": {
- "pg-native": {
- "optional": true
- }
- }
- },
- "node_modules/pg-connection-string": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
- "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==",
- "dev": true
- },
- "node_modules/pg-int8": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
- "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
- "dev": true,
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/pg-minify": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz",
- "integrity": "sha512-1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==",
- "dev": true,
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/pg-monitor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pg-monitor/-/pg-monitor-2.0.0.tgz",
- "integrity": "sha512-UqjhroM701sRrJHhXeF1OwNBGxkN9R0YgkVU8A46wWn3RwK/K7QDylChMoDxo8TmGp86CBP4ZSf+RK9vD8XyVA==",
- "dev": true,
- "dependencies": {
- "cli-color": "2.0.3"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/pg-monitor/node_modules/cli-color": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.3.tgz",
- "integrity": "sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==",
- "dev": true,
- "dependencies": {
- "d": "^1.0.1",
- "es5-ext": "^0.10.61",
- "es6-iterator": "^2.0.3",
- "memoizee": "^0.4.15",
- "timers-ext": "^0.1.7"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/pg-monitor/node_modules/d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dev": true,
- "dependencies": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "node_modules/pg-monitor/node_modules/es6-weak-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
- "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
- "dev": true,
- "dependencies": {
- "d": "1",
- "es5-ext": "^0.10.46",
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.1"
- }
- },
- "node_modules/pg-monitor/node_modules/memoizee": {
- "version": "0.4.15",
- "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
- "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==",
- "dev": true,
- "dependencies": {
- "d": "^1.0.1",
- "es5-ext": "^0.10.53",
- "es6-weak-map": "^2.0.3",
- "event-emitter": "^0.3.5",
- "is-promise": "^2.2.2",
- "lru-queue": "^0.1.0",
- "next-tick": "^1.1.0",
- "timers-ext": "^0.1.7"
- }
- },
- "node_modules/pg-monitor/node_modules/type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
- "dev": true
- },
- "node_modules/pg-pool": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.0.tgz",
- "integrity": "sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ==",
- "dev": true,
- "peerDependencies": {
- "pg": ">=8.0"
- }
- },
- "node_modules/pg-promise": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-11.3.0.tgz",
- "integrity": "sha512-A2CYmax5gsqVAO2N0ET9oPRCPX3kpKymj9qLVK7+jszlJL6l8uJDq/DGqLpxNi5VHwK7Dmm2WNRdrwkh1xuaxQ==",
- "dev": true,
- "dependencies": {
- "assert-options": "0.8.0",
- "pg": "8.9.0",
- "pg-minify": "1.6.2",
- "spex": "3.2.0"
- },
- "engines": {
- "node": ">=14.0"
- }
- },
- "node_modules/pg-protocol": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz",
- "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==",
- "dev": true
- },
- "node_modules/pg-types": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
- "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
- "dev": true,
- "dependencies": {
- "pg-int8": "1.0.1",
- "postgres-array": "~2.0.0",
- "postgres-bytea": "~1.0.0",
- "postgres-date": "~1.0.4",
- "postgres-interval": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pgpass": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
- "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
- "dev": true,
- "dependencies": {
- "split2": "^4.1.0"
- }
- },
- "node_modules/pgpass/node_modules/split2": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
- "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
- "dev": true,
- "engines": {
- "node": ">= 10.x"
- }
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true,
- "peer": true
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
- "dev": true,
- "dependencies": {
- "pinkie": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pkg-conf": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz",
- "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==",
- "dev": true,
- "dependencies": {
- "find-up": "^2.0.0",
- "load-json-file": "^4.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pkg-conf/node_modules/find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
- "dev": true,
- "dependencies": {
- "locate-path": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pkg-conf/node_modules/locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
- "dev": true,
- "dependencies": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pkg-conf/node_modules/p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
- "dependencies": {
- "p-try": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pkg-conf/node_modules/p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
- "dev": true,
- "dependencies": {
- "p-limit": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pkg-conf/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pluralize": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
- "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postgres-array": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
- "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postgres-bytea": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
- "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/postgres-date": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
- "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/postgres-interval": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
- "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
- "dev": true,
- "dependencies": {
- "xtend": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/precond": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz",
- "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/prepend-http": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
- },
- "node_modules/proto-list": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
- "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
- "dev": true
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dev": true,
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/ps-node": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/ps-node/-/ps-node-0.1.6.tgz",
- "integrity": "sha512-w7QJhUTbu70hpDso0YXDRNKCPNuchV8UTUZsAv0m7Qj5g85oHOJfr9drA1EjvK4nQK/bG8P97W4L6PJ3IQLoOA==",
- "dev": true,
- "dependencies": {
- "table-parser": "^0.1.3"
- }
- },
- "node_modules/pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==",
- "dev": true
- },
- "node_modules/psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
- "dev": true
- },
- "node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/q": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
- "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
- "dev": true,
- "engines": {
- "node": ">=0.6.0",
- "teleport": ">=0.2.0"
- }
- },
- "node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/rate-limit-redis": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/rate-limit-redis/-/rate-limit-redis-3.0.1.tgz",
- "integrity": "sha512-L6yhOUBrAZ8VEMX9DwlM3X6hfm8yq+gBO4LoOW7+JgmNq59zE7QmLz4v5VnwYPvLeSh/e7PDcrzUI3UumJw1iw==",
- "dev": true,
- "engines": {
- "node": ">= 14.5.0"
- },
- "peerDependencies": {
- "express-rate-limit": "^6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "dev": true,
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/rc": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
- "dev": true,
- "dependencies": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "bin": {
- "rc": "cli.js"
- }
- },
- "node_modules/rc/node_modules/strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-native-crypto-js": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/react-native-crypto-js/-/react-native-crypto-js-1.0.0.tgz",
- "integrity": "sha512-FNbLuG/HAdapQoybeZSoes1PWdOj0w242gb+e1R0hicf3Gyj/Mf8M9NaED2AnXVOX01b2FXomwUiw1xP1K+8sA==",
- "dev": true
- },
- "node_modules/read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up/node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/read-pkg-up/node_modules/type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg/node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "node_modules/read-pkg/node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "node_modules/read-pkg/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/read-pkg/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/readable-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
- "dev": true,
- "dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/redeyed": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz",
- "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==",
- "dev": true,
- "dependencies": {
- "esprima": "~4.0.0"
- }
- },
- "node_modules/redis": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/redis/-/redis-4.0.6.tgz",
- "integrity": "sha512-IaPAxgF5dV0jx+A9l6yd6R9/PAChZIoAskDVRzUODeLDNhsMlq7OLLTmu0AwAr0xjrJ1bibW5xdpRwqIQ8Q0Xg==",
- "dev": true,
- "dependencies": {
- "@node-redis/bloom": "1.0.1",
- "@node-redis/client": "1.0.5",
- "@node-redis/graph": "1.0.0",
- "@node-redis/json": "1.0.2",
- "@node-redis/search": "1.0.5",
- "@node-redis/time-series": "1.0.2"
- }
- },
- "node_modules/redis-errors": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
- "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/redis-parser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
- "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==",
- "dev": true,
- "dependencies": {
- "redis-errors": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.13.11",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
- "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
- "dev": true
- },
- "node_modules/registry-auth-token": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz",
- "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==",
- "dev": true,
- "dependencies": {
- "@pnpm/npm-conf": "^2.1.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
- "dev": true,
- "dependencies": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/request/node_modules/qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/request/node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "dev": true,
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/require_optional": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
- "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
- "dev": true,
- "dependencies": {
- "resolve-from": "^2.0.0",
- "semver": "^5.1.0"
- }
- },
- "node_modules/require_optional/node_modules/resolve-from": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
- "integrity": "sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require_optional/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/require-at": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz",
- "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.2",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
- "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.11.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rimraf": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz",
- "integrity": "sha512-33Fa/MIw/3F9KcDE/uJ2OuYUyxY+fkmw1c20DFnyhP7dfo2+BexeE1thjluPiJaG8sW6CcaqnTffwpRd4NAiTg==",
- "dev": true,
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/safari-14-idb-fix": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz",
- "integrity": "sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog==",
- "dev": true
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/safe-stable-stringify": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
- "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
- },
- "node_modules/saslprep": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
- "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "sparse-bitfield": "^3.0.3"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/seek-bzip": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
- "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==",
- "dev": true,
- "dependencies": {
- "commander": "^2.8.1"
- },
- "bin": {
- "seek-bunzip": "bin/seek-bunzip",
- "seek-table": "bin/seek-bzip-table"
- }
- },
- "node_modules/seek-bzip/node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
- },
- "node_modules/semantic-release": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.1.tgz",
- "integrity": "sha512-UhGxTUXHJQCBFgEQRZszLOHDpMduDSHGq3Q+30Bu+g0GbXh/EW508+kuFHezP5m0mN8xINW8hooiR3dzSV5ZLA==",
- "dev": true,
- "dependencies": {
- "@semantic-release/commit-analyzer": "^9.0.2",
- "@semantic-release/error": "^3.0.0",
- "@semantic-release/github": "^8.0.0",
- "@semantic-release/npm": "^10.0.2",
- "@semantic-release/release-notes-generator": "^10.0.0",
- "aggregate-error": "^4.0.1",
- "cosmiconfig": "^8.0.0",
- "debug": "^4.0.0",
- "env-ci": "^9.0.0",
- "execa": "^7.0.0",
- "figures": "^5.0.0",
- "find-versions": "^5.1.0",
- "get-stream": "^6.0.0",
- "git-log-parser": "^1.2.0",
- "hook-std": "^3.0.0",
- "hosted-git-info": "^6.0.0",
- "lodash-es": "^4.17.21",
- "marked": "^4.1.0",
- "marked-terminal": "^5.1.1",
- "micromatch": "^4.0.2",
- "p-each-series": "^3.0.0",
- "p-reduce": "^3.0.0",
- "read-pkg-up": "^9.1.0",
- "resolve-from": "^5.0.0",
- "semver": "^7.3.2",
- "semver-diff": "^4.0.0",
- "signale": "^1.2.1",
- "yargs": "^17.5.1"
- },
- "bin": {
- "semantic-release": "bin/semantic-release.js"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/semantic-release/node_modules/@semantic-release/npm": {
- "version": "10.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.3.tgz",
- "integrity": "sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg==",
- "dev": true,
- "dependencies": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^4.0.1",
- "execa": "^7.0.0",
- "fs-extra": "^11.0.0",
- "lodash-es": "^4.17.21",
- "nerf-dart": "^1.0.0",
- "normalize-url": "^8.0.0",
- "npm": "^9.5.0",
- "rc": "^1.2.8",
- "read-pkg": "^8.0.0",
- "registry-auth-token": "^5.0.0",
- "semver": "^7.1.2",
- "tempy": "^3.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "semantic-release": ">=20.1.0"
- }
- },
- "node_modules/semantic-release/node_modules/aggregate-error": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz",
- "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==",
- "dev": true,
- "dependencies": {
- "clean-stack": "^4.0.0",
- "indent-string": "^5.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/clean-stack": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz",
- "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "5.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/execa": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
- "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^4.3.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/semantic-release/node_modules/figures": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz",
- "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^5.0.0",
- "is-unicode-supported": "^1.2.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/find-up": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^7.1.0",
- "path-exists": "^5.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/hosted-git-info": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz",
- "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^7.5.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/semantic-release/node_modules/hosted-git-info/node_modules/lru-cache": {
- "version": "7.18.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
- "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/semantic-release/node_modules/human-signals": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
- "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
- "dev": true,
- "engines": {
- "node": ">=14.18.0"
- }
- },
- "node_modules/semantic-release/node_modules/indent-string": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
- "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/json-parse-even-better-errors": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz",
- "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
- "dev": true,
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/semantic-release/node_modules/lines-and-columns": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz",
- "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/semantic-release/node_modules/locate-path": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
- "dev": true,
- "dependencies": {
- "p-locate": "^6.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/normalize-package-data": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz",
- "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^6.0.0",
- "is-core-module": "^2.8.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/semantic-release/node_modules/npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
- "dev": true,
- "dependencies": {
- "path-key": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^1.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/p-locate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
- "dev": true,
- "dependencies": {
- "p-limit": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/p-reduce": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz",
- "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/parse-json": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz",
- "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.21.4",
- "error-ex": "^1.3.2",
- "json-parse-even-better-errors": "^3.0.0",
- "lines-and-columns": "^2.0.3",
- "type-fest": "^3.8.0"
- },
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/path-exists": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/semantic-release/node_modules/path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/read-pkg": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.0.0.tgz",
- "integrity": "sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==",
- "dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.1",
- "normalize-package-data": "^5.0.0",
- "parse-json": "^7.0.0",
- "type-fest": "^3.8.0"
- },
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/read-pkg-up": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz",
- "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==",
- "dev": true,
- "dependencies": {
- "find-up": "^6.3.0",
- "read-pkg": "^7.1.0",
- "type-fest": "^2.5.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/read-pkg-up/node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semantic-release/node_modules/read-pkg-up/node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/semantic-release/node_modules/read-pkg-up/node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/semantic-release/node_modules/read-pkg-up/node_modules/normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semantic-release/node_modules/read-pkg-up/node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/read-pkg-up/node_modules/read-pkg": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz",
- "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==",
- "dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.1",
- "normalize-package-data": "^3.0.2",
- "parse-json": "^5.2.0",
- "type-fest": "^2.0.0"
- },
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/read-pkg-up/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/semantic-release/node_modules/semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semantic-release/node_modules/strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semantic-release/node_modules/type-fest": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.10.0.tgz",
- "integrity": "sha512-hmAPf1datm+gt3c2mvu0sJyhFy6lTkIGf0GzyaZWxRLnabQfPUqg6tF95RPg6sLxKI7nFLGdFxBcf2/7+GXI+A==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- },
- "peerDependencies": {
- "typescript": ">=4.7.0"
- }
- },
- "node_modules/semantic-release/node_modules/yocto-queue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
- "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/semver-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz",
- "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
- "dev": true,
- "dependencies": {
- "semver": "^7.3.5"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/semver-diff/node_modules/semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver-regex": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz",
- "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dev": true,
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/send/node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "node_modules/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dev": true,
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/signale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz",
- "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==",
- "dev": true,
- "dependencies": {
- "chalk": "^2.3.2",
- "figures": "^2.0.0",
- "pkg-conf": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
- "node_modules/simple-swizzle/node_modules/is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
- "dev": true
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
- "dev": true,
- "engines": {
- "node": ">= 6.0.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/socks": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
- "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
- "dev": true,
- "dependencies": {
- "ip": "^2.0.0",
- "smart-buffer": "^4.2.0"
- },
- "engines": {
- "node": ">= 10.13.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/sort-keys": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
- "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==",
- "dev": true,
- "dependencies": {
- "is-plain-obj": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/sort-keys-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
- "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==",
- "dev": true,
- "dependencies": {
- "sort-keys": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.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/sparse-bitfield": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
- "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "memory-pager": "^1.0.2"
- }
- },
- "node_modules/spawn-error-forwarder": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz",
- "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==",
- "dev": true
- },
- "node_modules/spdx-correct": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "dev": true,
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-license-ids": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
- "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==",
- "dev": true
- },
- "node_modules/spex": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz",
- "integrity": "sha512-9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg==",
- "dev": true,
- "engines": {
- "node": ">=4.5"
- }
- },
- "node_modules/split": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
- "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
- "dev": true,
- "dependencies": {
- "through": "2"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "dev": true,
- "dependencies": {
- "readable-stream": "^3.0.0"
- }
- },
- "node_modules/split2/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/sshpk": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
- "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
- "dev": true,
- "dependencies": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- },
- "bin": {
- "sshpk-conv": "bin/sshpk-conv",
- "sshpk-sign": "bin/sshpk-sign",
- "sshpk-verify": "bin/sshpk-verify"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/stack-trace": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
- "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/stream-combiner2": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
- "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==",
- "dev": true,
- "dependencies": {
- "duplexer2": "~0.1.0",
- "readable-stream": "^2.0.2"
- }
- },
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/strip-dirs": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
- "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
- "dev": true,
- "dependencies": {
- "is-natural-number": "^4.0.1"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
- "dev": true,
- "dependencies": {
- "min-indent": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/strip-outer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
- "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/subscriptions-transport-ws": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz",
- "integrity": "sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==",
- "deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md",
- "dev": true,
- "dependencies": {
- "backo2": "^1.0.2",
- "eventemitter3": "^3.1.0",
- "iterall": "^1.2.1",
- "symbol-observable": "^1.0.4",
- "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
- },
- "peerDependencies": {
- "graphql": "^15.7.2 || ^16.0.0"
- }
- },
- "node_modules/subscriptions-transport-ws/node_modules/ws": {
- "version": "7.5.9",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
- "dev": true,
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-hyperlinks/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-hyperlinks/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/symbol-observable": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
- "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/table-parser": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/table-parser/-/table-parser-0.1.3.tgz",
- "integrity": "sha512-LCYeuvqqoPII3lzzYaXKbC3Forb+d2u4bNwhk/9FlivuGRxPE28YEWAYcujeSlLLDlMfvy29+WPybFJZFiKMYg==",
- "dev": true,
- "dependencies": {
- "connected-domain": "^1.0.0"
- }
- },
- "node_modules/tar-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
- "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
- "dev": true,
- "dependencies": {
- "bl": "^1.0.0",
- "buffer-alloc": "^1.2.0",
- "end-of-stream": "^1.0.0",
- "fs-constants": "^1.0.0",
- "readable-stream": "^2.3.0",
- "to-buffer": "^1.1.1",
- "xtend": "^4.0.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/tar-stream/node_modules/bl": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
- "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
- "dev": true,
- "dependencies": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/temp-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
- "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tempy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz",
- "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==",
- "dev": true,
- "dependencies": {
- "is-stream": "^3.0.0",
- "temp-dir": "^2.0.0",
- "type-fest": "^2.12.2",
- "unique-string": "^3.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tempy/node_modules/is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tempy/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/text-extensions": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz",
- "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/text-hex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
- "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==",
- "dev": true
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "node_modules/through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dev": true
- },
- "node_modules/through2": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
- "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
- "dev": true,
- "dependencies": {
- "readable-stream": "3"
- }
- },
- "node_modules/through2/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/tildify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz",
- "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/timed-out": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/timers-ext": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
- "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
- "dev": true,
- "dependencies": {
- "es5-ext": "~0.10.46",
- "next-tick": "1"
- }
- },
- "node_modules/to-buffer": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
- "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
- "dev": true
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "dev": true,
- "dependencies": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "node_modules/traverse": {
- "version": "0.6.7",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz",
- "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/trim-repeated": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
- "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/triple-beam": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
- "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==",
- "dev": true
- },
- "node_modules/tslib": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
- "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
- "dev": true
- },
- "node_modules/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/tv4": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz",
- "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
- "dev": true
- },
- "node_modules/type": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
- "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==",
- "dev": true
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dev": true,
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/typescript": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
- "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
- "dev": true,
- "peer": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=12.20"
- }
- },
- "node_modules/uglify-js": {
- "version": "3.17.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
- "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
- "dev": true,
- "optional": true,
- "bin": {
- "uglifyjs": "bin/uglifyjs"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/unbzip2-stream": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
- "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
- "dev": true,
- "dependencies": {
- "buffer": "^5.2.1",
- "through": "^2.3.8"
- }
- },
- "node_modules/undici": {
- "version": "5.5.1",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.5.1.tgz",
- "integrity": "sha512-MEvryPLf18HvlCbLSzCW0U00IMftKGI5udnjrQbC5D4P0Hodwffhv+iGfWuJwg16Y/TK11ZFK8i+BPVW2z/eAw==",
- "dev": true,
- "engines": {
- "node": ">=12.18"
- }
- },
- "node_modules/unique-string": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
- "dev": true,
- "dependencies": {
- "crypto-random-string": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/universal-user-agent": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
- "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==",
- "dev": true
- },
- "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/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/untildify": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
- "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
- "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "peer": true,
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/url-join": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz",
- "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==",
- "dev": true
- },
- "node_modules/url-parse-lax": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==",
- "dev": true,
- "dependencies": {
- "prepend-http": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/url-to-options": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
- "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/user-home": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
- "integrity": "sha512-aggiKfEEubv3UwRNqTzLInZpAOmKzwdHqEBmW/hBA/mt99eg+b4VrX6i+IRLxU8+WJYfa33rGwRseg4eElUgsQ==",
- "dev": true,
- "bin": {
- "user-home": "cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "dev": true,
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
- "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
- "dev": true,
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "node_modules/value-or-promise": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz",
- "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/vasync": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz",
- "integrity": "sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==",
- "dev": true,
- "engines": [
- "node >=0.6.0"
- ],
- "dependencies": {
- "verror": "1.10.0"
- }
- },
- "node_modules/vasync/node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
- "dev": true
- },
- "node_modules/vasync/node_modules/verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "dev": true,
- "engines": [
- "node >=0.6.0"
- ],
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "node_modules/verror": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz",
- "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "node_modules/verror/node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
- "dev": true
- },
- "node_modules/web-streams-polyfill": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
- "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "dev": true,
- "dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "node_modules/winston": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz",
- "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==",
- "dev": true,
- "dependencies": {
- "async": "^2.6.1",
- "diagnostics": "^1.1.1",
- "is-stream": "^1.1.0",
- "logform": "^2.1.1",
- "one-time": "0.0.4",
- "readable-stream": "^3.1.1",
- "stack-trace": "0.0.x",
- "triple-beam": "^1.3.0",
- "winston-transport": "^4.3.0"
- },
- "engines": {
- "node": ">= 6.4.0"
- }
- },
- "node_modules/winston-transport": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz",
- "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==",
- "dev": true,
- "dependencies": {
- "logform": "^2.3.2",
- "readable-stream": "^3.6.0",
- "triple-beam": "^1.3.0"
- },
- "engines": {
- "node": ">= 6.4.0"
- }
- },
- "node_modules/winston-transport/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/winston/node_modules/async": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
- "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.14"
- }
- },
- "node_modules/winston/node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/winston/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true
- },
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/wrap-ansi/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
- },
- "node_modules/ws": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz",
- "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xmlhttprequest": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
- "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "dev": true,
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs/node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
- "dev": true,
- "dependencies": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- }
- },
- "dependencies": {
- "@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
- "dev": true,
- "peer": true,
- "requires": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@babel/code-frame": {
- "version": "7.21.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
- "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.18.6"
- }
- },
- "@babel/compat-data": {
- "version": "7.21.7",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz",
- "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==",
- "dev": true,
- "peer": true
- },
- "@babel/core": {
- "version": "7.21.8",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz",
- "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.21.4",
- "@babel/generator": "^7.21.5",
- "@babel/helper-compilation-targets": "^7.21.5",
- "@babel/helper-module-transforms": "^7.21.5",
- "@babel/helpers": "^7.21.5",
- "@babel/parser": "^7.21.8",
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.21.5",
- "@babel/types": "^7.21.5",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.2",
- "semver": "^6.3.0"
- }
- },
- "@babel/eslint-parser": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz",
- "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==",
- "dev": true,
- "requires": {
- "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
- "eslint-visitor-keys": "^2.1.0",
- "semver": "^6.3.0"
- }
- },
- "@babel/generator": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz",
- "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/types": "^7.21.5",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- }
- },
- "@babel/helper-compilation-targets": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz",
- "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/compat-data": "^7.21.5",
- "@babel/helper-validator-option": "^7.21.0",
- "browserslist": "^4.21.3",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "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,
- "peer": true,
- "requires": {
- "yallist": "^3.0.2"
- }
- },
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true,
- "peer": true
- }
- }
- },
- "@babel/helper-environment-visitor": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz",
- "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==",
- "dev": true,
- "peer": true
- },
- "@babel/helper-function-name": {
- "version": "7.21.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
- "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/template": "^7.20.7",
- "@babel/types": "^7.21.0"
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-module-imports": {
- "version": "7.21.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
- "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/types": "^7.21.4"
- }
- },
- "@babel/helper-module-transforms": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz",
- "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/helper-environment-visitor": "^7.21.5",
- "@babel/helper-module-imports": "^7.21.4",
- "@babel/helper-simple-access": "^7.21.5",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.21.5",
- "@babel/types": "^7.21.5"
- }
- },
- "@babel/helper-simple-access": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz",
- "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/types": "^7.21.5"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-string-parser": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz",
- "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==",
- "dev": true,
- "peer": true
- },
- "@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
- "dev": true
- },
- "@babel/helper-validator-option": {
- "version": "7.21.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz",
- "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==",
- "dev": true,
- "peer": true
- },
- "@babel/helpers": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz",
- "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.21.5",
- "@babel/types": "^7.21.5"
- }
- },
- "@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "@babel/parser": {
- "version": "7.21.8",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz",
- "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==",
- "dev": true,
- "peer": true
- },
- "@babel/runtime": {
- "version": "7.18.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.0.tgz",
- "integrity": "sha512-YMQvx/6nKEaucl0MY56mwIG483xk8SDNdlUwb2Ts6FUpr7fm85DxEmsY18LXBNhcTz6tO6JwZV8w1W06v8UKeg==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@babel/runtime-corejs3": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz",
- "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==",
- "dev": true,
- "requires": {
- "core-js-pure": "^3.20.2",
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@babel/template": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
- "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7"
- }
- },
- "@babel/traverse": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz",
- "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/code-frame": "^7.21.4",
- "@babel/generator": "^7.21.5",
- "@babel/helper-environment-visitor": "^7.21.5",
- "@babel/helper-function-name": "^7.21.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.21.5",
- "@babel/types": "^7.21.5",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- }
- },
- "@babel/types": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz",
- "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/helper-string-parser": "^7.21.5",
- "@babel/helper-validator-identifier": "^7.19.1",
- "to-fast-properties": "^2.0.0"
- }
- },
- "@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
- "dev": true
- },
- "@dabh/diagnostics": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
- "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
- "dev": true,
- "requires": {
- "colorspace": "1.1.x",
- "enabled": "2.0.x",
- "kuler": "^2.0.0"
- },
- "dependencies": {
- "enabled": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
- "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==",
- "dev": true
- },
- "kuler": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
- "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==",
- "dev": true
- }
- }
- },
- "@envelop/core": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@envelop/core/-/core-2.6.0.tgz",
- "integrity": "sha512-yTptKinJN//i6m1kXUbnLBl/FobzddI4ehURAMS08eRUOQwAuXqJU9r8VdTav8nIZLb4t6cuDWFb3n331LiwLw==",
- "dev": true,
- "requires": {
- "@envelop/types": "2.4.0",
- "tslib": "2.4.0"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
- "dev": true
- }
- }
- },
- "@envelop/parser-cache": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/@envelop/parser-cache/-/parser-cache-4.7.0.tgz",
- "integrity": "sha512-63NfXDcW/vGn4U6NFxaZ0JbYWAcJb9A6jhTvghsSz1ZS+Dny/ci8bVSgVmM1q+N56hPyGsVPuyI+rIc71mPU5g==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0",
- "tslib": "^2.4.0"
- }
- },
- "@envelop/types": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/@envelop/types/-/types-2.4.0.tgz",
- "integrity": "sha512-pjxS98cDQBS84X29VcwzH3aJ/KiLCGwyMxuj7/5FkdiaCXAD1JEvKEj9LARWlFYj1bY43uII4+UptFebrhiIaw==",
- "dev": true,
- "requires": {
- "tslib": "^2.4.0"
- }
- },
- "@envelop/validation-cache": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/@envelop/validation-cache/-/validation-cache-4.7.0.tgz",
- "integrity": "sha512-PzL+GfWJRT+JjsJqZAIxHKEkvkM3hxkeytS5O0QLXT8kURNBV28r+Kdnn2RCF5+6ILhyGpiDb60vaquBi7g4lw==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0",
- "tslib": "^2.4.0"
- }
- },
- "@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
- "dev": true,
- "peer": true,
- "requires": {
- "eslint-visitor-keys": "^3.3.0"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
- "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
- "dev": true,
- "peer": true
- }
- }
- },
- "@eslint-community/regexpp": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
- "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
- "dev": true,
- "peer": true
- },
- "@eslint/eslintrc": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz",
- "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.5.2",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "dependencies": {
- "globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "peer": true
- }
- }
- },
- "@eslint/js": {
- "version": "8.40.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz",
- "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==",
- "dev": true,
- "peer": true
- },
- "@graphql-tools/merge": {
- "version": "8.3.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.6.tgz",
- "integrity": "sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ==",
- "dev": true,
- "requires": {
- "@graphql-tools/utils": "8.12.0",
- "tslib": "^2.4.0"
- }
- },
- "@graphql-tools/schema": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.4.tgz",
- "integrity": "sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ==",
- "dev": true,
- "requires": {
- "@graphql-tools/merge": "8.3.6",
- "@graphql-tools/utils": "8.12.0",
- "tslib": "^2.4.0",
- "value-or-promise": "1.0.11"
- }
- },
- "@graphql-tools/utils": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.12.0.tgz",
- "integrity": "sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw==",
- "dev": true,
- "requires": {
- "tslib": "^2.4.0"
- }
- },
- "@graphql-typed-document-node/core": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
- "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
- "dev": true,
- "requires": {}
- },
- "@graphql-yoga/common": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@graphql-yoga/common/-/common-2.6.0.tgz",
- "integrity": "sha512-iG33wMQlBujB1+Q2D/CLEVDW3xTeBVhHKsbaUmVSHV4zpmGRRQMg/YROJ2mU1lONOyZDPIC+9j3AR7+x0dSzoA==",
- "dev": true,
- "requires": {
- "@envelop/core": "^2.0.0",
- "@envelop/parser-cache": "^4.0.0",
- "@envelop/validation-cache": "^4.0.0",
- "@graphql-tools/schema": "^8.3.1",
- "@graphql-tools/utils": "^8.6.0",
- "@graphql-typed-document-node/core": "^3.1.1",
- "@graphql-yoga/subscription": "2.0.0",
- "cross-undici-fetch": "^0.4.2",
- "dset": "^3.1.1",
- "tslib": "^2.3.1"
- },
- "dependencies": {
- "@graphql-tools/merge": {
- "version": "8.3.1",
- "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz",
- "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==",
- "dev": true,
- "requires": {
- "@graphql-tools/utils": "8.9.0",
- "tslib": "^2.4.0"
- }
- },
- "@graphql-tools/schema": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz",
- "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==",
- "dev": true,
- "requires": {
- "@graphql-tools/merge": "8.3.1",
- "@graphql-tools/utils": "8.9.0",
- "tslib": "^2.4.0",
- "value-or-promise": "1.0.11"
- }
- },
- "@graphql-tools/utils": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz",
- "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==",
- "dev": true,
- "requires": {
- "tslib": "^2.4.0"
- }
- }
- }
- },
- "@graphql-yoga/node": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@graphql-yoga/node/-/node-2.6.0.tgz",
- "integrity": "sha512-VkHaiIwDYx+WJI/NnT2x+mGknk1YoNTP/auweDvKzPXdsWR5Za8rEYUloKZX4TxHTpyqbBLMtCt+4TDITriVbA==",
- "dev": true,
- "requires": {
- "@envelop/core": "^2.0.0",
- "@graphql-tools/utils": "^8.6.0",
- "@graphql-yoga/common": "2.6.0",
- "@graphql-yoga/subscription": "2.0.0",
- "cross-undici-fetch": "^0.4.2",
- "tslib": "^2.3.1"
- }
- },
- "@graphql-yoga/subscription": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@graphql-yoga/subscription/-/subscription-2.0.0.tgz",
- "integrity": "sha512-HlG+gIddjIP3/BDrMZymdzmzDjNdYuSGMxx6+1JA83gAEVRDR4yOoT4QeNKYqRhLK9xca/Hxp1PfBpquSa244Q==",
- "dev": true,
- "requires": {
- "@repeaterjs/repeater": "^3.0.4",
- "tslib": "^2.3.1"
- }
- },
- "@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
- "dev": true,
- "peer": true,
- "requires": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.5"
- }
- },
- "@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "dev": true,
- "peer": true
- },
- "@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
- "dev": true,
- "peer": true
- },
- "@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "dev": true,
- "peer": true
- },
- "@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true,
- "peer": true
- },
- "@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true,
- "peer": true
- },
- "@jridgewell/trace-mapping": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
- "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
- "dev": true,
- "peer": true,
- "requires": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- },
- "dependencies": {
- "@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "dev": true,
- "peer": true
- }
- }
- },
- "@napi-rs/triples": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.1.0.tgz",
- "integrity": "sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==",
- "dev": true,
- "optional": true
- },
- "@nicolo-ribaudo/eslint-scope-5-internals": {
- "version": "5.1.1-v1",
- "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
- "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
- "dev": true,
- "requires": {
- "eslint-scope": "5.1.1"
- }
- },
- "@node-redis/bloom": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@node-redis/bloom/-/bloom-1.0.1.tgz",
- "integrity": "sha512-mXEBvEIgF4tUzdIN89LiYsbi6//EdpFA7L8M+DHCvePXg+bfHWi+ct5VI6nHUFQE5+ohm/9wmgihCH3HSkeKsw==",
- "dev": true,
- "requires": {}
- },
- "@node-redis/client": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@node-redis/client/-/client-1.0.5.tgz",
- "integrity": "sha512-ESZ3bd1f+od62h4MaBLKum+klVJfA4wAeLHcVQBkoXa1l0viFesOWnakLQqKg+UyrlJhZmXJWtu0Y9v7iTMrig==",
- "dev": true,
- "requires": {
- "cluster-key-slot": "1.1.0",
- "generic-pool": "3.8.2",
- "redis-parser": "3.0.0",
- "yallist": "4.0.0"
- }
- },
- "@node-redis/graph": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@node-redis/graph/-/graph-1.0.0.tgz",
- "integrity": "sha512-mRSo8jEGC0cf+Rm7q8mWMKKKqkn6EAnA9IA2S3JvUv/gaWW/73vil7GLNwion2ihTptAm05I9LkepzfIXUKX5g==",
- "dev": true,
- "requires": {}
- },
- "@node-redis/json": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@node-redis/json/-/json-1.0.2.tgz",
- "integrity": "sha512-qVRgn8WfG46QQ08CghSbY4VhHFgaTY71WjpwRBGEuqGPfWwfRcIf3OqSpR7Q/45X+v3xd8mvYjywqh0wqJ8T+g==",
- "dev": true,
- "requires": {}
- },
- "@node-redis/search": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@node-redis/search/-/search-1.0.5.tgz",
- "integrity": "sha512-MCOL8iCKq4v+3HgEQv8zGlSkZyXSXtERgrAJ4TSryIG/eLFy84b57KmNNa/V7M1Q2Wd2hgn2nPCGNcQtk1R1OQ==",
- "dev": true,
- "requires": {}
- },
- "@node-redis/time-series": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@node-redis/time-series/-/time-series-1.0.2.tgz",
- "integrity": "sha512-HGQ8YooJ8Mx7l28tD7XjtB3ImLEjlUxG1wC1PAjxu6hPJqjPshUZxAICzDqDjtIbhDTf48WXXUcx8TQJB1XTKA==",
- "dev": true,
- "requires": {}
- },
- "@node-rs/bcrypt": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.1.0.tgz",
- "integrity": "sha512-5vjztYYcPCyvamO3C+hrNaVplZC9yEMzGxJECliQR5hkUOQdrtulCpigNOr1POWpC1YsJH0ZL+ktWop+cl5Qqw==",
- "dev": true,
- "optional": true,
- "requires": {
- "@node-rs/bcrypt-android-arm64": "^1.1.0",
- "@node-rs/bcrypt-darwin-arm64": "^1.1.0",
- "@node-rs/bcrypt-darwin-x64": "^1.1.0",
- "@node-rs/bcrypt-linux-arm-gnueabihf": "^1.1.0",
- "@node-rs/bcrypt-linux-arm64-gnu": "^1.1.0",
- "@node-rs/bcrypt-linux-x64-gnu": "^1.1.0",
- "@node-rs/bcrypt-linux-x64-musl": "^1.1.0",
- "@node-rs/bcrypt-win32-ia32-msvc": "^1.1.0",
- "@node-rs/bcrypt-win32-x64-msvc": "^1.1.0",
- "@node-rs/helper": "^1.1.0"
- }
- },
- "@node-rs/bcrypt-android-arm64": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.7.1.tgz",
- "integrity": "sha512-gEBUIcBIFQmhWMh61PbBtaIIEWZIJyAog2gw3ipkWYGlCJfHb3wFQ3HgZohz1n8e9l700SLWIBDR+sZ7CBSKFw==",
- "dev": true,
- "optional": true
- },
- "@node-rs/bcrypt-darwin-arm64": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.7.1.tgz",
- "integrity": "sha512-9AJiPUb05ezu65F9+JwjoqUN9/kzTnKpUUIkyRB8mMi6vB86CykNpueplqvsHFA2m4HZhdPzcX37hhAMcWlRxg==",
- "dev": true,
- "optional": true
- },
- "@node-rs/bcrypt-darwin-x64": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.7.1.tgz",
- "integrity": "sha512-dAOPZJA5K8Z0e4DytKX2SOd2VkRXxqDC98sl+qDjL0lBP4TqIr3B7cdJouZ+S5s71gk2oECh7VJPC8nOXrQGpw==",
- "dev": true,
- "optional": true
- },
- "@node-rs/bcrypt-linux-arm-gnueabihf": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.7.1.tgz",
- "integrity": "sha512-6ovC/VQTiXJGGhxBl9uPx6VVoh75A5783oCvjUOBOXFh6mu2WNbD26V+mQlE9ZSxI2rniVP/6HD6+maZo69DcA==",
- "dev": true,
- "optional": true
- },
- "@node-rs/bcrypt-linux-arm64-gnu": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.7.1.tgz",
- "integrity": "sha512-+UFyHCW7O5GwGt9qre3TSGVP9sMfCk9jynC9+r/GiwRcf0As/id8+PK1BloUCyETIzlQ+vqoqtL/crVHWfnL8g==",
- "dev": true,
- "optional": true
- },
- "@node-rs/bcrypt-linux-x64-gnu": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.7.1.tgz",
- "integrity": "sha512-BN2f+D4GbMfYYp4n8wLIa1Q+eWZcCDyoykmknr53mcYhpTjz2HzH208V08jfmvt0O98JBPijgFR9e0m28SN0uw==",
- "dev": true,
- "optional": true
- },
- "@node-rs/bcrypt-linux-x64-musl": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.7.1.tgz",
- "integrity": "sha512-DVilfjinvnGblXEXznzlwR/PckuMIkIQgXmITS2h0rw1u3MQSvabCc8h83Vg6mzS8iOZQ9XkdEZ2JoAE8L9D6Q==",
- "dev": true,
- "optional": true
- },
- "@node-rs/bcrypt-win32-ia32-msvc": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.7.1.tgz",
- "integrity": "sha512-xQ8e6G8YjRB5z+EzHmbsxRgCq1OF4yqwN2s1SeSpsWr6mPUFwJyRvQFuda0IkKYS0aTDjLi7OqXs8rhxiY4Dzg==",
- "dev": true,
- "optional": true
- },
- "@node-rs/bcrypt-win32-x64-msvc": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.7.1.tgz",
- "integrity": "sha512-HKI/aMhqYwB7bfQBBREF1wbD8tLdOLg5o+y09gT8GwBcmy6vOYCEsBICC3ehJ5/xXCY2rY0JONElhB7Zb/xLeg==",
- "dev": true,
- "optional": true
- },
- "@node-rs/helper": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.3.3.tgz",
- "integrity": "sha512-p4OdfQObGN9YFy5WZaGwlPYICQSe7xZYyXB0sxREmvj1HzGKp5bPg2PlfgfMZEfnjIA882B9ZrnagYzZihIwjA==",
- "dev": true,
- "optional": true,
- "requires": {
- "@napi-rs/triples": "^1.1.0"
- }
- },
- "@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- }
- },
- "@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true
- },
- "@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "requires": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- }
- },
- "@octokit/auth-token": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz",
- "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==",
- "dev": true,
- "requires": {
- "@octokit/types": "^9.0.0"
- }
- },
- "@octokit/core": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz",
- "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==",
- "dev": true,
- "requires": {
- "@octokit/auth-token": "^3.0.0",
- "@octokit/graphql": "^5.0.0",
- "@octokit/request": "^6.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^9.0.0",
- "before-after-hook": "^2.2.0",
- "universal-user-agent": "^6.0.0"
- }
- },
- "@octokit/endpoint": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz",
- "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==",
- "dev": true,
- "requires": {
- "@octokit/types": "^9.0.0",
- "is-plain-object": "^5.0.0",
- "universal-user-agent": "^6.0.0"
- }
- },
- "@octokit/graphql": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz",
- "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==",
- "dev": true,
- "requires": {
- "@octokit/request": "^6.0.0",
- "@octokit/types": "^9.0.0",
- "universal-user-agent": "^6.0.0"
- }
- },
- "@octokit/openapi-types": {
- "version": "17.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-17.1.2.tgz",
- "integrity": "sha512-OaS7Ol4Y+U50PbejfzQflGWRMxO04nYWO5ZBv6JerqMKE2WS/tI9VoVDDPXHBlRMGG2fOdKwtVGlFfc7AVIstw==",
- "dev": true
- },
- "@octokit/plugin-paginate-rest": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.0.tgz",
- "integrity": "sha512-5T4iXjJdYCVA1rdWS1C+uZV9AvtZY9QgTG74kFiSFVj94dZXowyi/YK8f4SGjZaL69jZthGlBaDKRdCMCF9log==",
- "dev": true,
- "requires": {
- "@octokit/types": "^9.2.2"
- }
- },
- "@octokit/plugin-request-log": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz",
- "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==",
- "dev": true,
- "requires": {}
- },
- "@octokit/plugin-rest-endpoint-methods": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.1.0.tgz",
- "integrity": "sha512-SWwz/hc47GaKJR6BlJI4WIVRodbAFRvrR0QRPSoPMs7krb7anYPML3psg+ThEz/kcwOdSNh/oA8qThi/Wvs4Fw==",
- "dev": true,
- "requires": {
- "@octokit/types": "^9.2.2",
- "deprecation": "^2.3.1"
- }
- },
- "@octokit/request": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz",
- "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==",
- "dev": true,
- "requires": {
- "@octokit/endpoint": "^7.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^9.0.0",
- "is-plain-object": "^5.0.0",
- "node-fetch": "^2.6.7",
- "universal-user-agent": "^6.0.0"
- }
- },
- "@octokit/request-error": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz",
- "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==",
- "dev": true,
- "requires": {
- "@octokit/types": "^9.0.0",
- "deprecation": "^2.0.0",
- "once": "^1.4.0"
- }
- },
- "@octokit/rest": {
- "version": "19.0.7",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz",
- "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==",
- "dev": true,
- "requires": {
- "@octokit/core": "^4.1.0",
- "@octokit/plugin-paginate-rest": "^6.0.0",
- "@octokit/plugin-request-log": "^1.0.4",
- "@octokit/plugin-rest-endpoint-methods": "^7.0.0"
- }
- },
- "@octokit/types": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.2.2.tgz",
- "integrity": "sha512-9BjDxjgQIvCjNWZsbqyH5QC2Yni16oaE6xL+8SUBMzcYPF4TGQBXGA97Cl3KceK9mwiNMb1mOYCz6FbCCLEL+g==",
- "dev": true,
- "requires": {
- "@octokit/openapi-types": "^17.1.2"
- }
- },
- "@panva/asn1.js": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz",
- "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==",
- "dev": true
- },
- "@parse/fs-files-adapter": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@parse/fs-files-adapter/-/fs-files-adapter-1.2.2.tgz",
- "integrity": "sha512-VUsVZXgt53FULqUd9xqGDW6RXes62qHXTNOeRSlS1MOemiCdtQOUGgLHgjdYQXnZ1hPLkxZKph96AluZUb953g==",
- "dev": true
- },
- "@parse/node-apn": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/@parse/node-apn/-/node-apn-5.1.3.tgz",
- "integrity": "sha512-Bwhmbm895lEIF2772PJ8dSvBjrtOG9/q/TDMxmX40IgZxQFoXS73+JUIKTq3CA7SUB/Szu5roJINQ0L2U/1MJw==",
- "dev": true,
- "requires": {
- "debug": "4.3.3",
- "jsonwebtoken": "8.5.1",
- "node-forge": "1.3.0",
- "verror": "1.10.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "jsonwebtoken": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
- "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
- "dev": true,
- "requires": {
- "jws": "^3.2.2",
- "lodash.includes": "^4.3.0",
- "lodash.isboolean": "^3.0.3",
- "lodash.isinteger": "^4.0.4",
- "lodash.isnumber": "^3.0.3",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.once": "^4.0.0",
- "ms": "^2.1.1",
- "semver": "^5.6.0"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "@parse/node-gcm": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@parse/node-gcm/-/node-gcm-1.0.2.tgz",
- "integrity": "sha512-5LwLAYaGPWvuAyqaRr+4LD3Lq4V/A8DiznCFC2as9XBqfmhP7bwQMKKcymVcINrJGxPhNi69RrQpuEhIehtIqQ==",
- "dev": true,
- "requires": {
- "debug": "^3.1.0",
- "lodash": "^4.17.10",
- "request": "2.88.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
- "dev": true
- },
- "qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "dev": true
- },
- "request": {
- "version": "2.88.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
- "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
- "dev": true,
- "requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.0",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.4.3",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- }
- },
- "tough-cookie": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
- "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
- "dev": true,
- "requires": {
- "psl": "^1.1.24",
- "punycode": "^1.4.1"
- }
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "dev": true
- }
- }
- },
- "@parse/push-adapter": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@parse/push-adapter/-/push-adapter-4.1.2.tgz",
- "integrity": "sha512-034vZTlAzgdfefIY4+Q4j8DHS/VwUAIVoh1JeRkHNfyQmUQ++uKbQbUQdJ/nf11HHS69kwLENs13BmhlHMpyHQ==",
- "dev": true,
- "requires": {
- "@parse/node-apn": "5.1.3",
- "@parse/node-gcm": "1.0.2",
- "npmlog": "4.1.2",
- "parse": "3.4.0"
- },
- "dependencies": {
- "@babel/runtime": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz",
- "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@babel/runtime-corejs3": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.7.tgz",
- "integrity": "sha512-Wvzcw4mBYbTagyBVZpAJWI06auSIj033T/yNE0Zn1xcup83MieCddZA7ls3kme17L4NOGBrQ09Q+nKB41RLWBA==",
- "dev": true,
- "requires": {
- "core-js-pure": "^3.15.0",
- "regenerator-runtime": "^0.13.4"
- }
- },
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
- "dev": true
- },
- "gauge": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
- "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
- "dev": true,
- "requires": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
- }
- },
- "idb-keyval": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-5.0.6.tgz",
- "integrity": "sha512-6lJuVbwyo82mKSH6Wq2eHkt9LcbwHAelMIcMe0tP4p20Pod7tTxq9zf0ge2n/YDfMOpDryerfmmYyuQiaFaKOg==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
- "dev": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "npmlog": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
- "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
- "dev": true,
- "requires": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
- }
- },
- "parse": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/parse/-/parse-3.4.0.tgz",
- "integrity": "sha512-FMZLxPW6PvrBgxkXc9AmnYsFKvPwiS4G2n9OI4mdfiSoNzIVLc+bXzlUdJ+I7hiqHsBTP0BrdQczw2/cnVkJ6w==",
- "dev": true,
- "requires": {
- "@babel/runtime": "7.15.4",
- "@babel/runtime-corejs3": "7.14.7",
- "crypto-js": "4.1.1",
- "idb-keyval": "5.0.6",
- "react-native-crypto-js": "1.0.0",
- "uuid": "3.4.0",
- "ws": "7.5.1",
- "xmlhttprequest": "1.8.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
- "dev": true,
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "dev": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "dev": true
- },
- "ws": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz",
- "integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==",
- "dev": true,
- "requires": {}
- }
- }
- },
- "@pnpm/config.env-replace": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
- "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==",
- "dev": true
- },
- "@pnpm/network.ca-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
- "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
- "dev": true,
- "requires": {
- "graceful-fs": "4.2.10"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
- "dev": true
- }
- }
- },
- "@pnpm/npm-conf": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.0.tgz",
- "integrity": "sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==",
- "dev": true,
- "requires": {
- "@pnpm/config.env-replace": "^1.1.0",
- "@pnpm/network.ca-file": "^1.0.1",
- "config-chain": "^1.1.11"
- }
- },
- "@repeaterjs/repeater": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz",
- "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==",
- "dev": true
- },
- "@semantic-release/changelog": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz",
- "integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==",
- "dev": true,
- "requires": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "fs-extra": "^11.0.0",
- "lodash": "^4.17.4"
- }
- },
- "@semantic-release/commit-analyzer": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz",
- "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==",
- "dev": true,
- "requires": {
- "conventional-changelog-angular": "^5.0.0",
- "conventional-commits-filter": "^2.0.0",
- "conventional-commits-parser": "^3.2.3",
- "debug": "^4.0.0",
- "import-from": "^4.0.0",
- "lodash": "^4.17.4",
- "micromatch": "^4.0.2"
- }
- },
- "@semantic-release/error": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz",
- "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==",
- "dev": true
- },
- "@semantic-release/exec": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-6.0.3.tgz",
- "integrity": "sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==",
- "dev": true,
- "requires": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "debug": "^4.0.0",
- "execa": "^5.0.0",
- "lodash": "^4.17.4",
- "parse-json": "^5.0.0"
- }
- },
- "@semantic-release/git": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz",
- "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==",
- "dev": true,
- "requires": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "debug": "^4.0.0",
- "dir-glob": "^3.0.0",
- "execa": "^5.0.0",
- "lodash": "^4.17.4",
- "micromatch": "^4.0.0",
- "p-reduce": "^2.0.0"
- }
- },
- "@semantic-release/github": {
- "version": "8.0.7",
- "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.7.tgz",
- "integrity": "sha512-VtgicRIKGvmTHwm//iqTh/5NGQwsncOMR5vQK9pMT92Aem7dv37JFKKRuulUsAnUOIlO4G8wH3gPiBAA0iW0ww==",
- "dev": true,
- "requires": {
- "@octokit/rest": "^19.0.0",
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^3.0.0",
- "bottleneck": "^2.18.1",
- "debug": "^4.0.0",
- "dir-glob": "^3.0.0",
- "fs-extra": "^11.0.0",
- "globby": "^11.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "issue-parser": "^6.0.0",
- "lodash": "^4.17.4",
- "mime": "^3.0.0",
- "p-filter": "^2.0.0",
- "p-retry": "^4.0.0",
- "url-join": "^4.0.0"
- }
- },
- "@semantic-release/release-notes-generator": {
- "version": "10.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz",
- "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==",
- "dev": true,
- "requires": {
- "conventional-changelog-angular": "^5.0.0",
- "conventional-changelog-writer": "^5.0.0",
- "conventional-commits-filter": "^2.0.0",
- "conventional-commits-parser": "^3.2.3",
- "debug": "^4.0.0",
- "get-stream": "^6.0.0",
- "import-from": "^4.0.0",
- "into-stream": "^6.0.0",
- "lodash": "^4.17.4",
- "read-pkg-up": "^7.0.0"
- }
- },
- "@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true
- },
- "@types/body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
- "dev": true,
- "requires": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "@types/connect": {
- "version": "3.4.35",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
- "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/express": {
- "version": "4.17.17",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz",
- "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
- "dev": true,
- "requires": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "@types/express-serve-static-core": {
- "version": "4.17.34",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz",
- "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- },
- "@types/jsonwebtoken": {
- "version": "8.5.9",
- "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz",
- "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/mime": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
- "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
- "dev": true
- },
- "@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
- "dev": true
- },
- "@types/node": {
- "version": "20.1.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.3.tgz",
- "integrity": "sha512-NP2yfZpgmf2eDRPmgGq+fjGjSwFgYbihA8/gK+ey23qT9RkxsgNTZvGOEpXgzIGqesTYkElELLgtKoMQTys5vA==",
- "dev": true
- },
- "@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
- "dev": true
- },
- "@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
- "dev": true
- },
- "@types/range-parser": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
- "dev": true
- },
- "@types/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
- "dev": true
- },
- "@types/send": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz",
- "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==",
- "dev": true,
- "requires": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
- "@types/serve-static": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz",
- "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==",
- "dev": true,
- "requires": {
- "@types/mime": "*",
- "@types/node": "*"
- }
- },
- "@types/triple-beam": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz",
- "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==",
- "dev": true
- },
- "@types/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==",
- "dev": true
- },
- "@types/whatwg-url": {
- "version": "8.2.2",
- "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
- "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "@types/webidl-conversions": "*"
- }
- },
- "abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
- "dev": true,
- "requires": {
- "event-target-shim": "^5.0.0"
- }
- },
- "abstract-logging": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz",
- "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==",
- "dev": true
- },
- "accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dev": true,
- "requires": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- }
- },
- "acorn": {
- "version": "8.8.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
- "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
- "dev": true,
- "peer": true
- },
- "acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "peer": true,
- "requires": {}
- },
- "agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "requires": {
- "debug": "4"
- }
- },
- "aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
- "requires": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- }
- },
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ampersand-events": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/ampersand-events/-/ampersand-events-2.0.2.tgz",
- "integrity": "sha512-pPnVEJviRxXi9YhZA9j3GwGGBTlDLi+YIoBvrpKXgce+CO1nMlZU2aOV8OJogNuR2YPbptAUHNz7SKX+MvLj8A==",
- "dev": true,
- "requires": {
- "ampersand-version": "^1.0.2",
- "lodash": "^4.6.1"
- }
- },
- "ampersand-state": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/ampersand-state/-/ampersand-state-5.0.3.tgz",
- "integrity": "sha512-sr904K5zvw6mkGjFHhTcfBIdpoJ6mn/HrFg7OleRmBpw3apLb3Z0gVrgRTb7kK1wOLI34vs4S+IXqNHUeqWCzw==",
- "dev": true,
- "requires": {
- "ampersand-events": "^2.0.1",
- "ampersand-version": "^1.0.0",
- "array-next": "~0.0.1",
- "key-tree-store": "^1.3.0",
- "lodash": "^4.12.0"
- }
- },
- "ampersand-version": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/ampersand-version/-/ampersand-version-1.0.2.tgz",
- "integrity": "sha512-FVVLY7Pghtgc8pQl0rF3A3+OS/CZ+/ILLMIYIaO1cA9v5SRkainqUMfSot3fu32svuThIsYK3q9iCsH9W5+mWQ==",
- "dev": true,
- "requires": {
- "find-root": "^0.1.1",
- "through2": "^0.6.3"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "dev": true
- },
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
- "dev": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
- "dev": true
- },
- "through2": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
- "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==",
- "dev": true,
- "requires": {
- "readable-stream": ">=1.0.33-1 <1.1.0-0",
- "xtend": ">=4.0.0 <4.1.0-0"
- }
- }
- }
- },
- "ansi": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
- "integrity": "sha512-iFY7JCgHbepc0b82yLaw4IMortylNb6wG4kL+4R0C3iv6i+RHGHux/yUX5BTiRvSX/shMnngjR1YyNMnXEFh5A==",
- "dev": true
- },
- "ansi-escapes": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
- "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
- "dev": true,
- "requires": {
- "type-fest": "^3.0.0"
- },
- "dependencies": {
- "type-fest": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.10.0.tgz",
- "integrity": "sha512-hmAPf1datm+gt3c2mvu0sJyhFy6lTkIGf0GzyaZWxRLnabQfPUqg6tF95RPg6sLxKI7nFLGdFxBcf2/7+GXI+A==",
- "dev": true,
- "requires": {}
- }
- }
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "ansicolors": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
- "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==",
- "dev": true
- },
- "aproba": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
- "dev": true
- },
- "are-we-there-yet": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
- "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
- "dev": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "argv-formatter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz",
- "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==",
- "dev": true
- },
- "array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "dev": true
- },
- "array-ify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
- "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
- "dev": true
- },
- "array-next": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/array-next/-/array-next-0.0.1.tgz",
- "integrity": "sha512-sBOC/Iaz2hCcYi2XlyRfyZCRUxamlE5NJXEFjE9BTx23HALnWAFsPjGtfrAclt9o3G/38Het2yyeyOd3CEY7lg==",
- "dev": true
- },
- "array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true
- },
- "arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
- "dev": true
- },
- "asn1": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
- "dev": true,
- "requires": {
- "safer-buffer": "~2.1.0"
- }
- },
- "assert-options": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/assert-options/-/assert-options-0.8.0.tgz",
- "integrity": "sha512-qSELrEaEz4sGwTs4Qh+swQkjiHAysC4rot21+jzXU86dJzNG+FDqBzyS3ohSoTRf4ZLA3FSwxQdiuNl5NXUtvA==",
- "dev": true
- },
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
- "dev": true
- },
- "async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
- "dev": true
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
- "dev": true
- },
- "aws4": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
- "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
- "dev": true
- },
- "backo2": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
- "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==",
- "dev": true
- },
- "backoff": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz",
- "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==",
- "dev": true,
- "requires": {
- "precond": "0.2"
- }
- },
- "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
- },
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
- "dev": true,
- "requires": {
- "tweetnacl": "^0.14.3"
- }
- },
- "bcryptjs": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
- "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==",
- "dev": true
- },
- "before-after-hook": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
- "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==",
- "dev": true
- },
- "bl": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
- "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
- "dev": true,
- "requires": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
- }
- },
- "body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dev": true,
- "requires": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- }
- }
- },
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
- },
- "bottleneck": {
- "version": "2.19.5",
- "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz",
- "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==",
- "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"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "browserslist": {
- "version": "4.21.5",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
- "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
- "dev": true,
- "peer": true,
- "requires": {
- "caniuse-lite": "^1.0.30001449",
- "electron-to-chromium": "^1.4.284",
- "node-releases": "^2.0.8",
- "update-browserslist-db": "^1.0.10"
- }
- },
- "bson": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
- "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==",
- "dev": true
- },
- "buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "buffer-alloc": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
- "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
- "dev": true,
- "requires": {
- "buffer-alloc-unsafe": "^1.1.0",
- "buffer-fill": "^1.0.0"
- }
- },
- "buffer-alloc-unsafe": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
- "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
- "dev": true
- },
- "buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "dev": true
- },
- "buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
- "dev": true
- },
- "buffer-fill": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
- "dev": true
- },
- "buffer-writer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
- "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==",
- "dev": true
- },
- "busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dev": true,
- "requires": {
- "streamsearch": "^1.1.0"
- }
- },
- "bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
- },
- "camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
- "dev": true,
- "requires": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
- }
- },
- "caniuse-lite": {
- "version": "1.0.30001486",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001486.tgz",
- "integrity": "sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg==",
- "dev": true,
- "peer": true
- },
- "cardinal": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz",
- "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==",
- "dev": true,
- "requires": {
- "ansicolors": "~0.3.2",
- "redeyed": "~2.1.0"
- }
- },
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
- "dev": true
- },
- "caw": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz",
- "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==",
- "dev": true,
- "requires": {
- "get-proxy": "^2.0.0",
- "isurl": "^1.0.0-alpha5",
- "tunnel-agent": "^0.6.0",
- "url-to-options": "^1.0.1"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "cheerio": {
- "version": "0.22.0",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
- "integrity": "sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==",
- "dev": true,
- "requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash.assignin": "^4.0.9",
- "lodash.bind": "^4.1.4",
- "lodash.defaults": "^4.0.1",
- "lodash.filter": "^4.4.0",
- "lodash.flatten": "^4.2.0",
- "lodash.foreach": "^4.3.0",
- "lodash.map": "^4.4.0",
- "lodash.merge": "^4.4.0",
- "lodash.pick": "^4.2.1",
- "lodash.reduce": "^4.4.0",
- "lodash.reject": "^4.4.0",
- "lodash.some": "^4.4.0"
- }
- },
- "clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true
- },
- "cli-color": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-0.3.2.tgz",
- "integrity": "sha512-Ys/nDhHNRcxrS4EUI2RS/QCUE+61AMuEOj3sWDX+EIHkJWj+4XkRbOdwdxJteAJKjXYBbeFJMtfaEPd1MBF9pQ==",
- "dev": true,
- "requires": {
- "d": "~0.1.1",
- "es5-ext": "~0.10.2",
- "memoizee": "0.3.x",
- "timers-ext": "0.1.x"
- }
- },
- "cli-table3": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
- "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
- "dev": true,
- "requires": {
- "@colors/colors": "1.5.0",
- "string-width": "^4.2.0"
- }
- },
- "cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- }
- },
- "clui": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/clui/-/clui-0.3.6.tgz",
- "integrity": "sha512-Z4UbgZILlIAjkEkZiDOa2aoYjohKx7fa6DxIh6cE9A6WNWZ61iXfQc6CmdC9SKdS5nO0P0UyQ+WfoXfB65e3HQ==",
- "dev": true,
- "requires": {
- "cli-color": "0.3.2"
- }
- },
- "cluster-key-slot": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz",
- "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==",
- "dev": true
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
- "dev": true
- },
- "color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
- "dev": true,
- "requires": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "colornames": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz",
- "integrity": "sha512-/pyV40IrsdulWv+wFPmERh9k/mjsPZ64yUMDmWrtj/k1nmgrzzIENWKdaVKyBbvFdQWqkcaRxr+polCo3VMe7A==",
- "dev": true
- },
- "colorspace": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
- "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
- "dev": true,
- "requires": {
- "color": "^3.1.3",
- "text-hex": "1.0.x"
- }
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "commander": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
- "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
- "dev": true
- },
- "compare-func": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
- "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
- "dev": true,
- "requires": {
- "array-ify": "^1.0.0",
- "dot-prop": "^5.1.0"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "config-chain": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
- "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
- "dev": true,
- "requires": {
- "ini": "^1.3.4",
- "proto-list": "~1.2.1"
- }
- },
- "connected-domain": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/connected-domain/-/connected-domain-1.0.0.tgz",
- "integrity": "sha512-lHlohUiJxlpunvDag2Y0pO20bnvarMjnrdciZeuJUqRwrf/5JHNhdpiPIr5GQ8IkqrFj5TDMQwcCjblGo1oeuA==",
- "dev": true
- },
- "console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "dev": true
- },
- "content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dev": true,
- "requires": {
- "safe-buffer": "5.2.1"
- }
- },
- "content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "dev": true
- },
- "conventional-changelog-angular": {
- "version": "5.0.13",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz",
- "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==",
- "dev": true,
- "requires": {
- "compare-func": "^2.0.0",
- "q": "^1.5.1"
- }
- },
- "conventional-changelog-writer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz",
- "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==",
- "dev": true,
- "requires": {
- "conventional-commits-filter": "^2.0.7",
- "dateformat": "^3.0.0",
- "handlebars": "^4.7.7",
- "json-stringify-safe": "^5.0.1",
- "lodash": "^4.17.15",
- "meow": "^8.0.0",
- "semver": "^6.0.0",
- "split": "^1.0.0",
- "through2": "^4.0.0"
- }
- },
- "conventional-commits-filter": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz",
- "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==",
- "dev": true,
- "requires": {
- "lodash.ismatch": "^4.4.0",
- "modify-values": "^1.0.0"
- }
- },
- "conventional-commits-parser": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz",
- "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==",
- "dev": true,
- "requires": {
- "is-text-path": "^1.0.1",
- "JSONStream": "^1.0.4",
- "lodash": "^4.17.15",
- "meow": "^8.0.0",
- "split2": "^3.0.0",
- "through2": "^4.0.0"
- }
- },
- "convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true,
- "peer": true
- },
- "cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "dev": true
- },
- "cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "dev": true
- },
- "core-js-pure": {
- "version": "3.30.2",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz",
- "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==",
- "dev": true
- },
- "core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true
- },
- "cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "dev": true,
- "requires": {
- "object-assign": "^4",
- "vary": "^1"
- }
- },
- "cosmiconfig": {
- "version": "8.1.3",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz",
- "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==",
- "dev": true,
- "requires": {
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0"
- }
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "cross-undici-fetch": {
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.4.14.tgz",
- "integrity": "sha512-CCep44A/baoO8kYJBIR1cRO/tRAk29xzb/tH3O85OtgwZGkL5I0tJZ47ccZdrnAJxrl5tlaYhAOx09fJXMcUqQ==",
- "dev": true,
- "requires": {
- "abort-controller": "^3.0.0",
- "busboy": "^1.6.0",
- "form-data-encoder": "^1.7.1",
- "formdata-node": "^4.3.1",
- "node-fetch": "^2.6.7",
- "undici": "5.5.1",
- "web-streams-polyfill": "^3.2.0"
- }
- },
- "crypto-js": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
- "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==",
- "dev": true,
- "optional": true
- },
- "crypto-random-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
- "dev": true,
- "requires": {
- "type-fest": "^1.0.1"
- },
- "dependencies": {
- "type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
- "dev": true
- }
- }
- },
- "css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==",
- "dev": true,
- "requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
- }
- },
- "css-what": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
- "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
- "dev": true
- },
- "d": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
- "integrity": "sha512-0SdM9V9pd/OXJHoWmTfNPTAeD+lw6ZqHg+isPyBFuJsZLSE0Ygg1cYZ/0l6DrKQXMOqGOu1oWupMoOfoRfMZrQ==",
- "dev": true,
- "requires": {
- "es5-ext": "~0.10.2"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "dateformat": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
- "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
- "dev": true
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "dev": true
- },
- "decamelize-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
- "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
- "dev": true,
- "requires": {
- "decamelize": "^1.1.0",
- "map-obj": "^1.0.0"
- },
- "dependencies": {
- "map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
- "dev": true
- }
- }
- },
- "decompress": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz",
- "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==",
- "dev": true,
- "requires": {
- "decompress-tar": "^4.0.0",
- "decompress-tarbz2": "^4.0.0",
- "decompress-targz": "^4.0.0",
- "decompress-unzip": "^4.0.1",
- "graceful-fs": "^4.1.10",
- "make-dir": "^1.0.0",
- "pify": "^2.3.0",
- "strip-dirs": "^2.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true
- }
- }
- },
- "decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
- "dev": true,
- "requires": {
- "mimic-response": "^1.0.0"
- }
- },
- "decompress-tar": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz",
- "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
- "dev": true,
- "requires": {
- "file-type": "^5.2.0",
- "is-stream": "^1.1.0",
- "tar-stream": "^1.5.2"
- },
- "dependencies": {
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true
- }
- }
- },
- "decompress-tarbz2": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
- "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
- "dev": true,
- "requires": {
- "decompress-tar": "^4.1.0",
- "file-type": "^6.1.0",
- "is-stream": "^1.1.0",
- "seek-bzip": "^1.0.5",
- "unbzip2-stream": "^1.0.9"
- },
- "dependencies": {
- "file-type": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz",
- "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==",
- "dev": true
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true
- }
- }
- },
- "decompress-targz": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz",
- "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
- "dev": true,
- "requires": {
- "decompress-tar": "^4.1.1",
- "file-type": "^5.2.0",
- "is-stream": "^1.1.0"
- },
- "dependencies": {
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true
- }
- }
- },
- "decompress-unzip": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
- "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==",
- "dev": true,
- "requires": {
- "file-type": "^3.8.0",
- "get-stream": "^2.2.0",
- "pify": "^2.3.0",
- "yauzl": "^2.4.2"
- },
- "dependencies": {
- "file-type": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
- "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==",
- "dev": true
- },
- "get-stream": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
- "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==",
- "dev": true,
- "requires": {
- "object-assign": "^4.0.1",
- "pinkie-promise": "^2.0.0"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true
- }
- }
- },
- "deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "dev": true
- },
- "deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true,
- "peer": true
- },
- "deepcopy": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/deepcopy/-/deepcopy-2.1.0.tgz",
- "integrity": "sha512-8cZeTb1ZKC3bdSCP6XOM1IsTczIO73fdqtwa2B0N15eAz7gmyhQo+mc5gnFuulsgN3vIQYmTgbmQVKalH1dKvQ==",
- "dev": true,
- "requires": {
- "type-detect": "^4.0.8"
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true
- },
- "delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
- "dev": true
- },
- "denque": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz",
- "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==",
- "dev": true
- },
- "depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true
- },
- "deprecation": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
- "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
- "dev": true
- },
- "destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "dev": true
- },
- "diagnostics": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
- "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==",
- "dev": true,
- "requires": {
- "colorspace": "1.1.x",
- "enabled": "1.0.x",
- "kuler": "1.0.x"
- }
- },
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "requires": {
- "path-type": "^4.0.0"
- }
- },
- "docopt": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz",
- "integrity": "sha512-NqTbaYeE4gA/wU1hdKFdU+AFahpDOpgGLzHP42k6H6DKExJd0A55KEVWYhL9FEmHmgeLvEU2vuKXDuU+4yToOw==",
- "dev": true
- },
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "peer": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "dom-serializer": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
- "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
- "dev": true,
- "requires": {
- "domelementtype": "^1.3.0",
- "entities": "^1.1.1"
- }
- },
- "domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
- "dev": true
- },
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "dev": true,
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==",
- "dev": true,
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
- "dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dev": true,
- "requires": {
- "is-obj": "^2.0.0"
- }
- },
- "downcache": {
- "version": "0.0.9",
- "resolved": "https://registry.npmjs.org/downcache/-/downcache-0.0.9.tgz",
- "integrity": "sha512-AssoVsNYu5DnPY0Ro67lkbiAr66sk5IHuiIGm3pzFzWmTzkcEoFjDlG8szzP4x+ZN2OHehKTZbwDrC7l2Q52+g==",
- "dev": true,
- "requires": {
- "extend": "^3.0.0",
- "graceful-fs": "^4.1.3",
- "limiter": "^1.1.0",
- "mkdirp": "^0.5.1",
- "npmlog": "^2.0.3",
- "request": "^2.69.0",
- "rimraf": "^2.5.2"
- },
- "dependencies": {
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
- }
- },
- "download": {
- "version": "6.2.5",
- "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz",
- "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==",
- "dev": true,
- "requires": {
- "caw": "^2.0.0",
- "content-disposition": "^0.5.2",
- "decompress": "^4.0.0",
- "ext-name": "^5.0.0",
- "file-type": "5.2.0",
- "filenamify": "^2.0.0",
- "get-stream": "^3.0.0",
- "got": "^7.0.0",
- "make-dir": "^1.0.0",
- "p-event": "^1.0.0",
- "pify": "^3.0.0"
- },
- "dependencies": {
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
- "dev": true
- }
- }
- },
- "dset": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz",
- "integrity": "sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==",
- "dev": true
- },
- "duplexer2": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
- "dev": true,
- "requires": {
- "readable-stream": "^2.0.2"
- }
- },
- "duplexer3": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
- "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
- "dev": true
- },
- "ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
- "dev": true,
- "requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "dev": true,
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "dev": true
- },
- "electron-to-chromium": {
- "version": "1.4.392",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.392.tgz",
- "integrity": "sha512-TXQOMW9tnhIms3jGy/lJctLjICOgyueZFJ1KUtm6DTQ+QpxX3p7ZBwB6syuZ9KBuT5S4XX7bgY1ECPgfxKUdOg==",
- "dev": true,
- "peer": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "enabled": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
- "integrity": "sha512-nnzgVSpB35qKrUN8358SjO1bYAmxoThECTWw9s3J0x5G8A9hokKHVDFzBjVpCoSryo6MhN8woVyascN5jheaNA==",
- "dev": true,
- "requires": {
- "env-variable": "0.0.x"
- }
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true
- },
- "end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dev": true,
- "requires": {
- "once": "^1.4.0"
- }
- },
- "entities": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
- "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
- "dev": true
- },
- "env-ci": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.1.0.tgz",
- "integrity": "sha512-ZCEas2sDVFR3gpumwwzSU4OJZwWJ46yqJH3TqH3vSxEBzeAlC0uCJLGAnZC0vX1TIXzHzjcwpKmUn2xw5mC/qA==",
- "dev": true,
- "requires": {
- "execa": "^7.0.0",
- "java-properties": "^1.0.2"
- },
- "dependencies": {
- "execa": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
- "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
- "dev": true,
- "requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^4.3.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
- "strip-final-newline": "^3.0.0"
- }
- },
- "human-signals": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
- "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
- "dev": true
- },
- "is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true
- },
- "mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dev": true
- },
- "npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
- "dev": true,
- "requires": {
- "path-key": "^4.0.0"
- }
- },
- "onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dev": true,
- "requires": {
- "mimic-fn": "^4.0.0"
- }
- },
- "path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dev": true
- },
- "strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dev": true
- }
- }
- },
- "env-variable": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz",
- "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==",
- "dev": true
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "es5-ext": {
- "version": "0.10.62",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
- "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
- "dev": true,
- "requires": {
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.3",
- "next-tick": "^1.1.0"
- }
- },
- "es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
- "dev": true,
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- },
- "dependencies": {
- "d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dev": true,
- "requires": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
- "dev": true
- }
- }
- },
- "es6-symbol": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
- "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
- "dev": true,
- "requires": {
- "d": "^1.0.1",
- "ext": "^1.1.2"
- },
- "dependencies": {
- "d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dev": true,
- "requires": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
- "dev": true
- }
- }
- },
- "es6-weak-map": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz",
- "integrity": "sha512-P+N5Cd2TXeb7G59euFiM7snORspgbInS29Nbf3KNO2JQp/DyhvMCDWd58nsVAXwYJ6W3Bx7qDdy6QQ3PCJ7jKQ==",
- "dev": true,
- "requires": {
- "d": "~0.1.1",
- "es5-ext": "~0.10.6",
- "es6-iterator": "~0.1.3",
- "es6-symbol": "~2.0.1"
- },
- "dependencies": {
- "es6-iterator": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
- "integrity": "sha512-6TOmbFM6OPWkTe+bQ3ZuUkvqcWUjAnYjKUCLdbvRsAUz2Pr+fYIibwNXNkLNtIK9PPFbNMZZddaRNkyJhlGJhA==",
- "dev": true,
- "requires": {
- "d": "~0.1.1",
- "es5-ext": "~0.10.5",
- "es6-symbol": "~2.0.1"
- }
- },
- "es6-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz",
- "integrity": "sha512-wjobO4zO8726HVU7mI2OA/B6QszqwHJuKab7gKHVx+uRfVVYGcWJkCIFxV2Madqb9/RUSrhJ/r6hPfG7FsWtow==",
- "dev": true,
- "requires": {
- "d": "~0.1.1",
- "es5-ext": "~0.10.5"
- }
- }
- }
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true
- },
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "eslint": {
- "version": "8.40.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz",
- "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.3",
- "@eslint/js": "8.40.0",
- "@humanwhocodes/config-array": "^0.11.8",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.0",
- "eslint-visitor-keys": "^3.4.1",
- "espree": "^9.5.2",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "peer": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "peer": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "peer": true
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "peer": true
- },
- "eslint-scope": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
- "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
- "dev": true,
- "peer": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
- "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
- "dev": true,
- "peer": true
- },
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "peer": true
- },
- "glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "peer": true,
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "peer": true
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "peer": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "peer": true
- }
- }
- },
- "eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- }
- },
- "eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true
- },
- "espree": {
- "version": "9.5.2",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz",
- "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==",
- "dev": true,
- "peer": true,
- "requires": {
- "acorn": "^8.8.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
- "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
- "dev": true,
- "peer": true
- }
- }
- },
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- },
- "esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
- "dev": true,
- "peer": true,
- "requires": {
- "estraverse": "^5.1.0"
- },
- "dependencies": {
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "peer": true
- }
- }
- },
- "esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "requires": {
- "estraverse": "^5.2.0"
- },
- "dependencies": {
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true
- }
- }
- },
- "estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "peer": true
- },
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "dev": true
- },
- "event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
- "dev": true,
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14"
- },
- "dependencies": {
- "d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dev": true,
- "requires": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
- "dev": true
- }
- }
- },
- "event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "dev": true
- },
- "eventemitter3": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
- "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
- "dev": true
- },
- "execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- }
- },
- "express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dev": true,
- "requires": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- }
- }
- },
- "express-rate-limit": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.6.0.tgz",
- "integrity": "sha512-HFN2+4ZGdkQOS8Qli4z6knmJFnw6lZed67o6b7RGplWeb1Z0s8VXaj3dUgPIdm9hrhZXTRpCTHXA0/2Eqex0vA==",
- "dev": true,
- "requires": {}
- },
- "ext": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
- "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
- "dev": true,
- "requires": {
- "type": "^2.7.2"
- }
- },
- "ext-list": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
- "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
- "dev": true,
- "requires": {
- "mime-db": "^1.28.0"
- }
- },
- "ext-name": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
- "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
- "dev": true,
- "requires": {
- "ext-list": "^2.0.0",
- "sort-keys-length": "^1.0.0"
- }
- },
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
- },
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
- "dev": true
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
- },
- "fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- }
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true,
- "peer": true
- },
- "fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
- "dev": true,
- "requires": {
- "reusify": "^1.0.4"
- }
- },
- "fd-slicer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
- "dev": true,
- "requires": {
- "pend": "~1.2.0"
- }
- },
- "fecha": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
- "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==",
- "dev": true
- },
- "figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dev": true,
- "peer": true,
- "requires": {
- "flat-cache": "^3.0.4"
- }
- },
- "file-stream-rotator": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz",
- "integrity": "sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==",
- "dev": true,
- "requires": {
- "moment": "^2.29.1"
- }
- },
- "file-type": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
- "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==",
- "dev": true
- },
- "filename-reserved-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
- "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==",
- "dev": true
- },
- "filenamify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz",
- "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==",
- "dev": true,
- "requires": {
- "filename-reserved-regex": "^2.0.0",
- "strip-outer": "^1.0.0",
- "trim-repeated": "^1.0.0"
- }
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- }
- }
- },
- "find-root": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/find-root/-/find-root-0.1.2.tgz",
- "integrity": "sha512-GyDxVgA61TZcrgDJPqOqGBpi80Uf2yIstubgizi7AjC9yPdRrqBR+Y0MvK4kXnYlaoz3d+SGxDHMYVkwI/yd2w==",
- "dev": true
- },
- "find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "peer": true,
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "find-versions": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz",
- "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==",
- "dev": true,
- "requires": {
- "semver-regex": "^4.0.5"
- }
- },
- "flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
- "dev": true,
- "peer": true,
- "requires": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- },
- "dependencies": {
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "peer": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
- }
- },
- "flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true,
- "peer": true
- },
- "fn.name": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
- "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==",
- "dev": true
- },
- "follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
- "dev": true
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
- "dev": true
- },
- "form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dev": true,
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- }
- },
- "form-data-encoder": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.9.0.tgz",
- "integrity": "sha512-rahaRMkN8P8d/tgK/BLPX+WBVM27NbvdXBxqQujBtkDAIFspaRqN7Od7lfdGQA6KAD+f82fYCLBq1ipvcu8qLw==",
- "dev": true
- },
- "formdata-node": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz",
- "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==",
- "dev": true,
- "requires": {
- "node-domexception": "1.0.0",
- "web-streams-polyfill": "4.0.0-beta.3"
- },
- "dependencies": {
- "web-streams-polyfill": {
- "version": "4.0.0-beta.3",
- "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz",
- "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==",
- "dev": true
- }
- }
- },
- "forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "dev": true
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "dev": true
- },
- "from2": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
- "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0"
- }
- },
- "fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "dev": true
- },
- "fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
- "dev": true,
- "requires": {
- "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": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "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
- },
- "gauge": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
- "integrity": "sha512-fVbU2wRE91yDvKUnrIaQlHKAWKY5e08PmztCrwuH5YVQ+Z/p3d0ny2T48o6uvAAXHIUnfaQdHkmxYbQft1eHVA==",
- "dev": true,
- "requires": {
- "ansi": "^0.3.0",
- "has-unicode": "^2.0.0",
- "lodash.pad": "^4.1.0",
- "lodash.padend": "^4.1.0",
- "lodash.padstart": "^4.1.0"
- }
- },
- "generic-pool": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.8.2.tgz",
- "integrity": "sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg==",
- "dev": true
- },
- "gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "peer": true
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
- },
- "get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- }
- },
- "get-mongodb-version": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/get-mongodb-version/-/get-mongodb-version-2.0.1.tgz",
- "integrity": "sha512-yTN0UY7VJSSt01QH/aCiqiBjfxcDrEdKeM3uXY6QR3sRARoftx36QT0YNsCQm7FDTgrmDje7bK2C9ClM7SGKDA==",
- "dev": true,
- "requires": {
- "lodash.startswith": "^4.2.1",
- "minimist": "^1.1.1",
- "mongodb": "*",
- "which": "^1.1.1"
- },
- "dependencies": {
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "get-proxy": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
- "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==",
- "dev": true,
- "requires": {
- "npm-conf": "^1.1.0"
- }
- },
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "git-log-parser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz",
- "integrity": "sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==",
- "dev": true,
- "requires": {
- "argv-formatter": "~1.0.0",
- "spawn-error-forwarder": "~1.0.0",
- "split2": "~1.0.0",
- "stream-combiner2": "~1.1.1",
- "through2": "~2.0.0",
- "traverse": "~0.6.6"
- },
- "dependencies": {
- "split2": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz",
- "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==",
- "dev": true,
- "requires": {
- "through2": "~2.0.0"
- }
- },
- "through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "dev": true,
- "requires": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- }
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "peer": true
- },
- "globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
- "requires": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- }
- },
- "got": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
- "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
- "dev": true,
- "requires": {
- "decompress-response": "^3.2.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^3.0.0",
- "is-plain-obj": "^1.1.0",
- "is-retry-allowed": "^1.0.0",
- "is-stream": "^1.0.0",
- "isurl": "^1.0.0-alpha5",
- "lowercase-keys": "^1.0.0",
- "p-cancelable": "^0.3.0",
- "p-timeout": "^1.1.1",
- "safe-buffer": "^5.0.1",
- "timed-out": "^4.0.0",
- "url-parse-lax": "^1.0.0",
- "url-to-options": "^1.0.1"
- },
- "dependencies": {
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
- "dev": true
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true
- }
- }
- },
- "graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true
- },
- "grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
- "dev": true,
- "peer": true
- },
- "graphql": {
- "version": "16.6.0",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz",
- "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==",
- "dev": true
- },
- "graphql-list-fields": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/graphql-list-fields/-/graphql-list-fields-2.0.2.tgz",
- "integrity": "sha512-9TSAwcVA3KWw7JWYep5NCk2aw3wl1ayLtbMpmG7l26vh1FZ+gZexNPP+XJfUFyJa71UU0zcKSgtgpsrsA3Xv9Q==",
- "dev": true
- },
- "graphql-relay": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/graphql-relay/-/graphql-relay-0.10.0.tgz",
- "integrity": "sha512-44yBuw2/DLNEiMypbNZBt1yMDbBmyVPVesPywnteGGALiBmdyy1JP8jSg8ClLePg8ZZxk0O4BLhd1a6U/1jDOQ==",
- "dev": true,
- "requires": {}
- },
- "graphql-tag": {
- "version": "2.12.6",
- "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz",
- "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
- "dev": true,
- "requires": {
- "tslib": "^2.1.0"
- }
- },
- "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"
- }
- },
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
- "dev": true
- },
- "har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "dev": true,
- "requires": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- }
- },
- "hard-rejection": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
- "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
- "dev": true
- },
- "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"
- }
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "has-symbol-support-x": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
- "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
- "dev": true
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true
- },
- "has-to-string-tag-x": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
- "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
- "dev": true,
- "requires": {
- "has-symbol-support-x": "^1.4.1"
- }
- },
- "has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "dev": true
- },
- "hook-std": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz",
- "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==",
- "dev": true
- },
- "hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "htmlparser2": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
- "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
- "dev": true,
- "requires": {
- "domelementtype": "^1.3.1",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^3.1.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dev": true,
- "requires": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- }
- },
- "http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
- "dev": true,
- "requires": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- }
- },
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- }
- },
- "https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "requires": {
- "agent-base": "6",
- "debug": "4"
- }
- },
- "human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "idb-keyval": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.0.3.tgz",
- "integrity": "sha512-yh8V7CnE6EQMu9YDwQXhRxwZh4nv+8xm/HV4ZqK4IiYFJBWYGjJuykADJbSP+F/GDXUBwCSSNn/14IpGL81TuA==",
- "dev": true,
- "requires": {
- "safari-14-idb-fix": "^3.0.0"
- }
- },
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true
- },
- "ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
- "dev": true
- },
- "import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- }
- },
- "import-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz",
- "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==",
- "dev": true
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "peer": true
- },
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "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
- },
- "ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
- },
- "intersect": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/intersect/-/intersect-1.0.1.tgz",
- "integrity": "sha512-qsc720yevCO+4NydrJWgEWKccAQwTOvj2m73O/VBA6iUL2HGZJ9XqBiyraNrBXX/W1IAjdpXdRZk24sq8TzBRg==",
- "dev": true
- },
- "into-stream": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz",
- "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==",
- "dev": true,
- "requires": {
- "from2": "^2.3.0",
- "p-is-promise": "^3.0.0"
- }
- },
- "ip": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
- "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
- "dev": true
- },
- "ip-range-check": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/ip-range-check/-/ip-range-check-0.2.0.tgz",
- "integrity": "sha512-oaM3l/3gHbLlt/tCWLvt0mj1qUaI+STuRFnUvARGCujK9vvU61+2JsDpmkMzR4VsJhuFXWWgeKKVnwwoFfzCqw==",
- "dev": true,
- "requires": {
- "ipaddr.js": "^1.0.1"
- }
- },
- "ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "dev": true
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "is-core-module": {
- "version": "2.12.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
- "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-mongodb-running": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-mongodb-running/-/is-mongodb-running-1.0.2.tgz",
- "integrity": "sha512-EslN8MErcBPExb+iK4RnG1n28JGjByA2Rm3YPmdHDGCRd7Hc2uvqshyVMAJXxbDSxRMy8vhxims2oRqQUeGJeA==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.1",
- "debug": ">= 2.6.9",
- "figures": "^2.0.0",
- "lodash": "^4.17.10",
- "lsof": "^0.1.0",
- "minimist": "^1.2.0",
- "node-netstat": "^1.4.2",
- "ps-node": "^0.1.6"
- }
- },
- "is-natural-number": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
- "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==",
- "dev": true
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dev": true
- },
- "is-object": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
- "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==",
- "dev": true
- },
- "is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true,
- "peer": true
- },
- "is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
- "dev": true
- },
- "is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
- "dev": true
- },
- "is-promise": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
- "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
- "dev": true
- },
- "is-retry-allowed": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
- "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
- "dev": true
- },
- "is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true
- },
- "is-text-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
- "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==",
- "dev": true,
- "requires": {
- "text-extensions": "^1.0.0"
- }
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
- "is-unicode-supported": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
- "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==",
- "dev": true
- },
- "is-wsl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
- "dev": true
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
- "dev": true
- },
- "issue-parser": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz",
- "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==",
- "dev": true,
- "requires": {
- "lodash.capitalize": "^4.2.1",
- "lodash.escaperegexp": "^4.1.2",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.uniqby": "^4.7.0"
- }
- },
- "isurl": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
- "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
- "dev": true,
- "requires": {
- "has-to-string-tag-x": "^1.2.0",
- "is-object": "^1.0.1"
- }
- },
- "iterall": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
- "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==",
- "dev": true
- },
- "java-properties": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz",
- "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==",
- "dev": true
- },
- "jose": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.6.tgz",
- "integrity": "sha512-FVoPY7SflDodE4lknJmbAHSUjLCzE2H1F6MS0RYKMQ8SR+lNccpMf8R4eqkNYyyUjR5qZReOzZo5C5YiHOCjjg==",
- "dev": true,
- "requires": {
- "@panva/asn1.js": "^1.0.0"
- }
- },
- "js-sdsl": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
- "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
- "dev": true,
- "peer": true
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
- "dev": true
- },
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "peer": true
- },
- "json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
- "dev": true
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true,
- "peer": true
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true
- },
- "json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "peer": true
- },
- "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"
- }
- },
- "jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
- "dev": true
- },
- "JSONStream": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "dev": true,
- "requires": {
- "jsonparse": "^1.2.0",
- "through": ">=2.2.7 <3"
- }
- },
- "jsonwebtoken": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz",
- "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==",
- "dev": true,
- "requires": {
- "jws": "^3.2.2",
- "lodash": "^4.17.21",
- "ms": "^2.1.1",
- "semver": "^7.3.8"
- },
- "dependencies": {
- "semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
- }
- },
- "jsprim": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
- "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
- "dev": true,
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.4.0",
- "verror": "1.10.0"
- },
- "dependencies": {
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
- "dev": true
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- }
- }
- },
- "jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "dev": true,
- "requires": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "jwks-rsa": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.1.5.tgz",
- "integrity": "sha512-IODtn1SwEm7n6GQZnQLY0oxKDrMh7n/jRH1MzE8mlxWMrh2NnMyOsXTebu8vJ1qCpmuTJcL4DdiE0E4h8jnwsA==",
- "dev": true,
- "requires": {
- "@types/express": "^4.17.14",
- "@types/jsonwebtoken": "^8.5.9",
- "debug": "^4.3.4",
- "jose": "^2.0.6",
- "limiter": "^1.1.5",
- "lru-memoizer": "^2.1.4"
- }
- },
- "jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "dev": true,
- "requires": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "key-tree-store": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/key-tree-store/-/key-tree-store-1.3.0.tgz",
- "integrity": "sha512-qXk+lR+LXvGos3wqMxIMWweKDgCx8ZKWM6BEPm7iZkOKug5ggi66vUt+3vbtKJLBrAyOxQ4S8JRwK++Q4XZRmw==",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true
- },
- "klaw": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
- "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.9"
- }
- },
- "kuler": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz",
- "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==",
- "dev": true,
- "requires": {
- "colornames": "^1.1.1"
- }
- },
- "ldap-filter": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz",
- "integrity": "sha512-/tFkx5WIn4HuO+6w9lsfxq4FN3O+fDZeO9Mek8dCD8rTUpqzRa766BOBO7BcGkn3X86m5+cBm1/2S/Shzz7gMg==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "ldapjs": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.3.3.tgz",
- "integrity": "sha512-75QiiLJV/PQqtpH+HGls44dXweviFwQ6SiIK27EqzKQ5jU/7UFrl2E5nLdQ3IYRBzJ/AVFJI66u0MZ0uofKYwg==",
- "dev": true,
- "requires": {
- "abstract-logging": "^2.0.0",
- "asn1": "^0.2.4",
- "assert-plus": "^1.0.0",
- "backoff": "^2.5.0",
- "ldap-filter": "^0.3.3",
- "once": "^1.4.0",
- "vasync": "^2.2.0",
- "verror": "^1.8.1"
- }
- },
- "levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- }
- },
- "limiter": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz",
- "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==",
- "dev": true
- },
- "lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- }
- }
- },
- "locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "peer": true,
- "requires": {
- "p-locate": "^5.0.0"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "lodash-es": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
- "dev": true
- },
- "lodash.assignin": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
- "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==",
- "dev": true
- },
- "lodash.bind": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
- "integrity": "sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==",
- "dev": true
- },
- "lodash.capitalize": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz",
- "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==",
- "dev": true
- },
- "lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
- "dev": true
- },
- "lodash.defaults": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
- "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
- "dev": true
- },
- "lodash.difference": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
- "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==",
- "dev": true
- },
- "lodash.escaperegexp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
- "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
- "dev": true
- },
- "lodash.filter": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
- "integrity": "sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==",
- "dev": true
- },
- "lodash.flatten": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==",
- "dev": true
- },
- "lodash.foreach": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
- "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==",
- "dev": true
- },
- "lodash.includes": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
- "dev": true
- },
- "lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
- "dev": true
- },
- "lodash.isinteger": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
- "dev": true
- },
- "lodash.ismatch": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz",
- "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==",
- "dev": true
- },
- "lodash.isnumber": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
- "dev": true
- },
- "lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "dev": true
- },
- "lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
- "dev": true
- },
- "lodash.map": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
- "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==",
- "dev": true
- },
- "lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
- },
- "lodash.once": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
- "dev": true
- },
- "lodash.pad": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz",
- "integrity": "sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg==",
- "dev": true
- },
- "lodash.padend": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
- "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==",
- "dev": true
- },
- "lodash.padstart": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
- "integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==",
- "dev": true
- },
- "lodash.pick": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==",
- "dev": true
- },
- "lodash.reduce": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
- "integrity": "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==",
- "dev": true
- },
- "lodash.reject": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
- "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==",
- "dev": true
- },
- "lodash.some": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
- "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==",
- "dev": true
- },
- "lodash.startswith": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/lodash.startswith/-/lodash.startswith-4.2.1.tgz",
- "integrity": "sha512-XClYR1h4/fJ7H+mmCKppbiBmljN/nGs73iq2SjCT9SF4CBPoUHzLvWmH1GtZMhMBZSiRkHXfeA2RY1eIlJ75ww==",
- "dev": true
- },
- "lodash.uniqby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz",
- "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==",
- "dev": true
- },
- "logform": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz",
- "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==",
- "dev": true,
- "requires": {
- "@colors/colors": "1.5.0",
- "@types/triple-beam": "^1.3.2",
- "fecha": "^4.2.0",
- "ms": "^2.1.1",
- "safe-stable-stringify": "^2.3.1",
- "triple-beam": "^1.3.0"
- }
- },
- "lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
- "dev": true
- },
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "lru-memoizer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.2.0.tgz",
- "integrity": "sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==",
- "dev": true,
- "requires": {
- "lodash.clonedeep": "^4.5.0",
- "lru-cache": "~4.0.0"
- },
- "dependencies": {
- "lru-cache": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
- "integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==",
- "dev": true,
- "requires": {
- "pseudomap": "^1.0.1",
- "yallist": "^2.0.0"
- }
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
- "dev": true
- }
- }
- },
- "lru-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
- "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==",
- "dev": true,
- "requires": {
- "es5-ext": "~0.10.2"
- }
- },
- "lsof": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/lsof/-/lsof-0.1.0.tgz",
- "integrity": "sha512-RlNW3s4gQ0CIlDM3jwfx/Ogdwpa8PHySyd5FnKKXfi2NPXEjqgwONyA0y9ax33ur1G+K+f192zzKNQljupSgNA==",
- "dev": true
- },
- "make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
- "dev": true,
- "requires": {
- "pify": "^3.0.0"
- }
- },
- "map-obj": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
- "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
- "dev": true
- },
- "marked": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
- "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
- "dev": true
- },
- "marked-terminal": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz",
- "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==",
- "dev": true,
- "requires": {
- "ansi-escapes": "^6.2.0",
- "cardinal": "^2.1.1",
- "chalk": "^5.2.0",
- "cli-table3": "^0.6.3",
- "node-emoji": "^1.11.0",
- "supports-hyperlinks": "^2.3.0"
- },
- "dependencies": {
- "chalk": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
- "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
- "dev": true
- }
- }
- },
- "media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "dev": true
- },
- "memoizee": {
- "version": "0.3.10",
- "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz",
- "integrity": "sha512-LLzVUuWwGBKK188spgOK/ukrp5zvd9JGsiLDH41pH9vt5jvhZfsu5pxDuAnYAMG8YEGce72KO07sSBy9KkvOfw==",
- "dev": true,
- "requires": {
- "d": "~0.1.1",
- "es5-ext": "~0.10.11",
- "es6-weak-map": "~0.1.4",
- "event-emitter": "~0.3.4",
- "lru-queue": "0.1",
- "next-tick": "~0.2.2",
- "timers-ext": "0.1"
- },
- "dependencies": {
- "next-tick": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz",
- "integrity": "sha512-f7h4svPtl+QidoBv4taKXUjJ70G2asaZ8G28nS0OkqaalX8dwwrtWtyxEDPK62AC00ur/+/E0pUwBwY5EPn15Q==",
- "dev": true
- }
- }
- },
- "memory-pager": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
- "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
- "dev": true,
- "optional": true
- },
- "meow": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
- "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
- "dev": true,
- "requires": {
- "@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.2.2",
- "decamelize-keys": "^1.1.0",
- "hard-rejection": "^2.1.0",
- "minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.0",
- "read-pkg-up": "^7.0.1",
- "redent": "^3.0.0",
- "trim-newlines": "^3.0.0",
- "type-fest": "^0.18.0",
- "yargs-parser": "^20.2.3"
- }
- },
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
- "dev": true
- },
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true
- },
- "methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "dev": true
- },
- "micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
- "requires": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- }
- },
- "mime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
- "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
- "dev": true
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true
- },
- "mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
- "requires": {
- "mime-db": "1.52.0"
- }
- },
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
- },
- "mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
- "dev": true
- },
- "min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "dev": true
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dev": true
- },
- "minimist-options": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
- "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
- "dev": true,
- "requires": {
- "arrify": "^1.0.1",
- "is-plain-obj": "^1.1.0",
- "kind-of": "^6.0.3"
- }
- },
- "mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.6"
- }
- },
- "modify-values": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
- "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==",
- "dev": true
- },
- "moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
- "dev": true
- },
- "mongodb": {
- "version": "3.7.3",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz",
- "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==",
- "dev": true,
- "requires": {
- "bl": "^2.2.1",
- "bson": "^1.1.4",
- "denque": "^1.4.1",
- "optional-require": "^1.1.8",
- "safe-buffer": "^5.1.2",
- "saslprep": "^1.0.0"
- }
- },
- "mongodb-connection-string-url": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
- "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
- "dev": true,
- "requires": {
- "@types/whatwg-url": "^8.2.1",
- "whatwg-url": "^11.0.0"
- },
- "dependencies": {
- "tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.1"
- }
- },
- "webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "dev": true
- },
- "whatwg-url": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
- "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
- "dev": true,
- "requires": {
- "tr46": "^3.0.0",
- "webidl-conversions": "^7.0.0"
- }
- }
- }
- },
- "mongodb-core": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.7.tgz",
- "integrity": "sha512-WypKdLxFNPOH/Jy6i9z47IjG2wIldA54iDZBmHMINcgKOUcWJh8og+Wix76oGd7EyYkHJKssQ2FAOw5Su/n4XQ==",
- "dev": true,
- "requires": {
- "bson": "^1.1.1",
- "require_optional": "^1.0.1",
- "safe-buffer": "^5.1.2",
- "saslprep": "^1.0.0"
- }
- },
- "mongodb-dbpath": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/mongodb-dbpath/-/mongodb-dbpath-0.0.1.tgz",
- "integrity": "sha512-JljM2Gci3LQgECY4Wnp8tRx6eDNSoTnqiz4TIaOfqLuPr3SAbSdZEAQomHniH8DQJpn97gxdYkW/XomxYPZM2w==",
- "dev": true,
- "requires": {
- "async": "^1.4.0",
- "debug": "^2.1.1",
- "minimist": "^1.1.1",
- "mkdirp": "^0.5.1",
- "untildify": "^1.0.0"
- },
- "dependencies": {
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==",
- "dev": true
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "untildify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-1.0.0.tgz",
- "integrity": "sha512-LSU5BVpAncfzB2UBQaqfNww36wRSehWHs2grMM0ueYctZYxAhntiMvqDBhezYCYvbLeejeZ1nUWSl3mmkdPp+g==",
- "dev": true,
- "requires": {
- "user-home": "^1.0.0"
- }
- }
- }
- },
- "mongodb-download-url": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/mongodb-download-url/-/mongodb-download-url-1.3.0.tgz",
- "integrity": "sha512-N7mRi3/LIAHCeTa+JtJVrVno4BNHVYF+6/WUamVFsbvCxtljDmQA1n9FSQxV4dfdiknR9zaoFcXAmd1gtg3Elg==",
- "dev": true,
- "requires": {
- "debug": "^4.1.1",
- "minimist": "^1.2.3",
- "node-fetch": "^2.6.1",
- "semver": "^7.1.1"
- },
- "dependencies": {
- "semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
- }
- },
- "mongodb-runner": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/mongodb-runner/-/mongodb-runner-4.8.1.tgz",
- "integrity": "sha512-1jv7EEyh+ajvGmLwDMXY5BjT/Xqdxgf+AwPK99JHhgeoAISffS3l9Z1c/IIOsSCulMlL7KlR10TyUdzSHZqMhg==",
- "dev": true,
- "requires": {
- "async": "^3.1.0",
- "clui": "^0.3.6",
- "debug": "^4.1.1",
- "fs-extra": "^8.1.0",
- "is-mongodb-running": "^1.0.1",
- "lodash.defaults": "^4.2.0",
- "minimist": "^1.2.0",
- "mkdirp": "^0.5.1",
- "mongodb": "^3.4.0",
- "mongodb-dbpath": "^0.0.1",
- "mongodb-tools": "github:mongodb-js/mongodb-tools#0d1a90f49796c41f6d47c7c7999fe384014a16a0",
- "mongodb-version-manager": "^1.4.3",
- "untildify": "^4.0.0",
- "which": "^2.0.1"
- },
- "dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
- "jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.6"
- }
- },
- "universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true
- }
- }
- },
- "mongodb-tools": {
- "version": "git+ssh://git@github.com/mongodb-js/mongodb-tools.git#0d1a90f49796c41f6d47c7c7999fe384014a16a0",
- "integrity": "sha512-DNJJQYg1/VcE4gNP7zpKeWGIezwcpkI8XzG4YFL3WybY6cuKWMz3d1CIp3uKKEpva1qOHk2LI8mKWJX1Vpw4Sg==",
- "dev": true,
- "from": "mongodb-tools@github:mongodb-js/mongodb-tools#0d1a90f49796c41f6d47c7c7999fe384014a16a0",
- "requires": {
- "debug": "^2.2.0",
- "lodash": "^4.17.12",
- "mkdirp": "0.5.0",
- "mongodb-core": "*",
- "rimraf": "2.2.6"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==",
- "dev": true
- },
- "mkdirp": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
- "integrity": "sha512-xjjNGy+ry1lhtIKcr2PT6ok3aszhQfgrUDp4OZLHacgRgFmF6XR9XCOJVcXlVGQonIqXcK1DvqgKKQOPWYGSfw==",
- "dev": true,
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- }
- }
- },
- "mongodb-version-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mongodb-version-list/-/mongodb-version-list-1.0.0.tgz",
- "integrity": "sha512-F3kIABEMNjg3ZAX4SRbO1QPmhpP4NX2IgJq+lcUKidducTOVJafXJ+E+pMkgpU0xumC8QYbIZJ+8y4GZys9E4g==",
- "dev": true,
- "requires": {
- "cheerio": "^0.22.0",
- "debug": "^2.2.0",
- "downcache": "^0.0.9",
- "fs-extra": "^1.0.0",
- "minimist": "^1.1.1",
- "semver": "^5.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "fs-extra": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
- "integrity": "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^2.1.0",
- "klaw": "^1.0.0"
- }
- },
- "jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.6"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "mongodb-version-manager": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/mongodb-version-manager/-/mongodb-version-manager-1.5.0.tgz",
- "integrity": "sha512-VHijlQXvQFnX/9MzfGePyBNr9qHLHRHg6sM2ChFO+05Htf6JY50WzvDWZmtXUNGXEor80fXxhswwDJevGlZkyA==",
- "dev": true,
- "requires": {
- "ampersand-state": "^5.0.3",
- "async": "^3.1.0",
- "chalk": "^2.1.0",
- "debug": ">= 2.6.9 < 3.0.0 || >= ^3.1.0",
- "docopt": "^0.6.2",
- "download": "^6.2.5",
- "figures": "^3.2.0",
- "fs-extra": "^8.1.0",
- "get-mongodb-version": "^2.0.1",
- "lodash.defaults": "^4.2.0",
- "lodash.difference": "^4.1.1",
- "mongodb-download-url": "^1.0.0",
- "mongodb-version-list": "^1.0.0",
- "semver": "^5.3.0",
- "tildify": "^2.0.0",
- "untildify": "^4.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
- "jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.6"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- },
- "universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true
- }
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "mustache": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
- "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
- "dev": true
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true,
- "peer": true
- },
- "negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "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
- },
- "nerf-dart": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz",
- "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==",
- "dev": true
- },
- "next-tick": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
- "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
- "dev": true
- },
- "node-domexception": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
- "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
- "dev": true
- },
- "node-emoji": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
- "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.21"
- }
- },
- "node-fetch": {
- "version": "2.6.11",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz",
- "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==",
- "dev": true,
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "node-forge": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.0.tgz",
- "integrity": "sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==",
- "dev": true
- },
- "node-netstat": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/node-netstat/-/node-netstat-1.8.0.tgz",
- "integrity": "sha512-P1a5Sh9FfjTXxI6hC9q/Nqre8kT63FQxBCr1qz5ffk76EkQBH62+XEhIhlzfz6Bz+FRwOFqidW2FDGXnOXvyJQ==",
- "dev": true,
- "requires": {
- "is-wsl": "^1.1.0"
- }
- },
- "node-releases": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
- "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
- "dev": true,
- "peer": true
- },
- "normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "dev": true,
- "requires": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
- },
- "dependencies": {
- "semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
- }
- },
- "normalize-url": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
- "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
- "dev": true
- },
- "npm": {
- "version": "9.6.6",
- "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.6.tgz",
- "integrity": "sha512-GIe+nCIw8EJIv52IXDVETSGnx7p9Ttg4VsaXNIeT4eaKZpIZ635rKC/uzQ6nnc4ibCUmESoK3PrXG0/puoqNcg==",
- "dev": true,
- "requires": {
- "@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/arborist": "^6.2.9",
- "@npmcli/config": "^6.1.6",
- "@npmcli/map-workspaces": "^3.0.4",
- "@npmcli/package-json": "^3.0.0",
- "@npmcli/run-script": "^6.0.1",
- "abbrev": "^2.0.0",
- "archy": "~1.0.0",
- "cacache": "^17.1.0",
- "chalk": "^4.1.2",
- "ci-info": "^3.8.0",
- "cli-columns": "^4.0.0",
- "cli-table3": "^0.6.3",
- "columnify": "^1.6.0",
- "fastest-levenshtein": "^1.0.16",
- "fs-minipass": "^3.0.2",
- "glob": "^10.2.2",
- "graceful-fs": "^4.2.11",
- "hosted-git-info": "^6.1.1",
- "ini": "^4.1.0",
- "init-package-json": "^5.0.0",
- "is-cidr": "^4.0.2",
- "json-parse-even-better-errors": "^3.0.0",
- "libnpmaccess": "^7.0.2",
- "libnpmdiff": "^5.0.17",
- "libnpmexec": "^5.0.17",
- "libnpmfund": "^4.0.17",
- "libnpmhook": "^9.0.3",
- "libnpmorg": "^5.0.4",
- "libnpmpack": "^5.0.17",
- "libnpmpublish": "^7.1.4",
- "libnpmsearch": "^6.0.2",
- "libnpmteam": "^5.0.3",
- "libnpmversion": "^4.0.2",
- "make-fetch-happen": "^11.1.1",
- "minimatch": "^9.0.0",
- "minipass": "^5.0.0",
- "minipass-pipeline": "^1.2.4",
- "ms": "^2.1.2",
- "node-gyp": "^9.3.1",
- "nopt": "^7.1.0",
- "npm-audit-report": "^4.0.0",
- "npm-install-checks": "^6.1.1",
- "npm-package-arg": "^10.1.0",
- "npm-pick-manifest": "^8.0.1",
- "npm-profile": "^7.0.1",
- "npm-registry-fetch": "^14.0.5",
- "npm-user-validate": "^2.0.0",
- "npmlog": "^7.0.1",
- "p-map": "^4.0.0",
- "pacote": "^15.1.3",
- "parse-conflict-json": "^3.0.1",
- "proc-log": "^3.0.0",
- "qrcode-terminal": "^0.12.0",
- "read": "^2.1.0",
- "read-package-json": "^6.0.3",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.5.0",
- "ssri": "^10.0.4",
- "tar": "^6.1.14",
- "text-table": "~0.2.0",
- "tiny-relative-date": "^1.3.0",
- "treeverse": "^3.0.0",
- "validate-npm-package-name": "^5.0.0",
- "which": "^3.0.1",
- "write-file-atomic": "^5.0.1"
- },
- "dependencies": {
- "@colors/colors": {
- "version": "1.5.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "@gar/promisify": {
- "version": "1.1.3",
- "bundled": true,
- "dev": true
- },
- "@isaacs/cliui": {
- "version": "8.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "6.0.1",
- "bundled": true,
- "dev": true
- },
- "emoji-regex": {
- "version": "9.2.2",
- "bundled": true,
- "dev": true
- },
- "string-width": {
- "version": "5.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- }
- },
- "strip-ansi": {
- "version": "7.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-regex": "^6.0.1"
- }
- }
- }
- },
- "@isaacs/string-locale-compare": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "@npmcli/arborist": {
- "version": "6.2.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/fs": "^3.1.0",
- "@npmcli/installed-package-contents": "^2.0.2",
- "@npmcli/map-workspaces": "^3.0.2",
- "@npmcli/metavuln-calculator": "^5.0.0",
- "@npmcli/name-from-folder": "^2.0.0",
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/package-json": "^3.0.0",
- "@npmcli/query": "^3.0.0",
- "@npmcli/run-script": "^6.0.0",
- "bin-links": "^4.0.1",
- "cacache": "^17.0.4",
- "common-ancestor-path": "^1.0.1",
- "hosted-git-info": "^6.1.1",
- "json-parse-even-better-errors": "^3.0.0",
- "json-stringify-nice": "^1.1.4",
- "minimatch": "^9.0.0",
- "nopt": "^7.0.0",
- "npm-install-checks": "^6.0.0",
- "npm-package-arg": "^10.1.0",
- "npm-pick-manifest": "^8.0.1",
- "npm-registry-fetch": "^14.0.3",
- "npmlog": "^7.0.1",
- "pacote": "^15.0.8",
- "parse-conflict-json": "^3.0.0",
- "proc-log": "^3.0.0",
- "promise-all-reject-late": "^1.0.0",
- "promise-call-limit": "^1.0.2",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.3.7",
- "ssri": "^10.0.1",
- "treeverse": "^3.0.0",
- "walk-up-path": "^3.0.1"
- }
- },
- "@npmcli/config": {
- "version": "6.1.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/map-workspaces": "^3.0.2",
- "ini": "^4.1.0",
- "nopt": "^7.0.0",
- "proc-log": "^3.0.0",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.3.5",
- "walk-up-path": "^3.0.1"
- }
- },
- "@npmcli/disparity-colors": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-styles": "^4.3.0"
- }
- },
- "@npmcli/fs": {
- "version": "3.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "semver": "^7.3.5"
- }
- },
- "@npmcli/git": {
- "version": "4.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/promise-spawn": "^6.0.0",
- "lru-cache": "^7.4.4",
- "npm-pick-manifest": "^8.0.0",
- "proc-log": "^3.0.0",
- "promise-inflight": "^1.0.1",
- "promise-retry": "^2.0.1",
- "semver": "^7.3.5",
- "which": "^3.0.0"
- }
- },
- "@npmcli/installed-package-contents": {
- "version": "2.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "npm-bundled": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- }
- },
- "@npmcli/map-workspaces": {
- "version": "3.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/name-from-folder": "^2.0.0",
- "glob": "^10.2.2",
- "minimatch": "^9.0.0",
- "read-package-json-fast": "^3.0.0"
- }
- },
- "@npmcli/metavuln-calculator": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "cacache": "^17.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "pacote": "^15.0.0",
- "semver": "^7.3.5"
- }
- },
- "@npmcli/move-file": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "mkdirp": "^1.0.4",
- "rimraf": "^3.0.2"
- }
- },
- "@npmcli/name-from-folder": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "@npmcli/node-gyp": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- },
- "@npmcli/package-json": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "json-parse-even-better-errors": "^3.0.0"
- }
- },
- "@npmcli/promise-spawn": {
- "version": "6.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "which": "^3.0.0"
- }
- },
- "@npmcli/query": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.10"
- }
- },
- "@npmcli/run-script": {
- "version": "6.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/node-gyp": "^3.0.0",
- "@npmcli/promise-spawn": "^6.0.0",
- "node-gyp": "^9.0.0",
- "read-package-json-fast": "^3.0.0",
- "which": "^3.0.0"
- }
- },
- "@pkgjs/parseargs": {
- "version": "0.11.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "@sigstore/protobuf-specs": {
- "version": "0.1.0",
- "bundled": true,
- "dev": true
- },
- "@tootallnate/once": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "@tufjs/canonical-json": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "@tufjs/models": {
- "version": "1.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "@tufjs/canonical-json": "1.0.0",
- "minimatch": "^9.0.0"
- }
- },
- "abbrev": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "abort-controller": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "event-target-shim": "^5.0.0"
- }
- },
- "agent-base": {
- "version": "6.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "debug": "4"
- }
- },
- "agentkeepalive": {
- "version": "4.3.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "debug": "^4.1.0",
- "depd": "^2.0.0",
- "humanize-ms": "^1.2.1"
- }
- },
- "aggregate-error": {
- "version": "3.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- }
- },
- "ansi-regex": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "aproba": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "archy": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "are-we-there-yet": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^4.1.0"
- }
- },
- "balanced-match": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "base64-js": {
- "version": "1.5.1",
- "bundled": true,
- "dev": true
- },
- "bin-links": {
- "version": "4.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "cmd-shim": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "read-cmd-shim": "^4.0.0",
- "write-file-atomic": "^5.0.0"
- }
- },
- "binary-extensions": {
- "version": "2.2.0",
- "bundled": true,
- "dev": true
- },
- "brace-expansion": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "buffer": {
- "version": "6.0.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "builtins": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "semver": "^7.0.0"
- }
- },
- "cacache": {
- "version": "17.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/fs": "^3.1.0",
- "fs-minipass": "^3.0.0",
- "glob": "^10.2.2",
- "lru-cache": "^7.7.1",
- "minipass": "^5.0.0",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "p-map": "^4.0.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11",
- "unique-filename": "^3.0.0"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "chownr": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "ci-info": {
- "version": "3.8.0",
- "bundled": true,
- "dev": true
- },
- "cidr-regex": {
- "version": "3.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "ip-regex": "^4.1.0"
- }
- },
- "clean-stack": {
- "version": "2.2.0",
- "bundled": true,
- "dev": true
- },
- "cli-columns": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1"
- }
- },
- "cli-table3": {
- "version": "0.6.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "@colors/colors": "1.5.0",
- "string-width": "^4.2.0"
- }
- },
- "clone": {
- "version": "1.0.4",
- "bundled": true,
- "dev": true
- },
- "cmd-shim": {
- "version": "6.0.1",
- "bundled": true,
- "dev": true
- },
- "color-convert": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "bundled": true,
- "dev": true
- },
- "color-support": {
- "version": "1.1.3",
- "bundled": true,
- "dev": true
- },
- "columnify": {
- "version": "1.6.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "strip-ansi": "^6.0.1",
- "wcwidth": "^1.0.0"
- }
- },
- "common-ancestor-path": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "concat-map": {
- "version": "0.0.1",
- "bundled": true,
- "dev": true
- },
- "console-control-strings": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "cross-spawn": {
- "version": "7.0.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "dependencies": {
- "which": {
- "version": "2.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "cssesc": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- },
- "debug": {
- "version": "4.3.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.2",
- "bundled": true,
- "dev": true
- }
- }
- },
- "defaults": {
- "version": "1.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "clone": "^1.0.2"
- }
- },
- "delegates": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "depd": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "diff": {
- "version": "5.1.0",
- "bundled": true,
- "dev": true
- },
- "eastasianwidth": {
- "version": "0.2.0",
- "bundled": true,
- "dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "bundled": true,
- "dev": true
- },
- "encoding": {
- "version": "0.1.13",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "iconv-lite": "^0.6.2"
- }
- },
- "env-paths": {
- "version": "2.2.1",
- "bundled": true,
- "dev": true
- },
- "err-code": {
- "version": "2.0.3",
- "bundled": true,
- "dev": true
- },
- "event-target-shim": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true
- },
- "events": {
- "version": "3.3.0",
- "bundled": true,
- "dev": true
- },
- "fastest-levenshtein": {
- "version": "1.0.16",
- "bundled": true,
- "dev": true
- },
- "foreground-child": {
- "version": "3.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- }
- },
- "fs-minipass": {
- "version": "3.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "minipass": "^5.0.0"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "function-bind": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true
- },
- "gauge": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.3",
- "console-control-strings": "^1.1.0",
- "has-unicode": "^2.0.1",
- "signal-exit": "^4.0.1",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.5"
- }
- },
- "glob": {
- "version": "10.2.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.0.3",
- "minimatch": "^9.0.0",
- "minipass": "^5.0.0",
- "path-scurry": "^1.7.0"
- }
- },
- "graceful-fs": {
- "version": "4.2.11",
- "bundled": true,
- "dev": true
- },
- "has": {
- "version": "1.0.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true
- },
- "has-unicode": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true
- },
- "hosted-git-info": {
- "version": "6.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "lru-cache": "^7.5.1"
- }
- },
- "http-cache-semantics": {
- "version": "4.1.1",
- "bundled": true,
- "dev": true
- },
- "http-proxy-agent": {
- "version": "5.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- }
- },
- "https-proxy-agent": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "agent-base": "6",
- "debug": "4"
- }
- },
- "humanize-ms": {
- "version": "1.2.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "ms": "^2.0.0"
- }
- },
- "iconv-lite": {
- "version": "0.6.3",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- }
- },
- "ieee754": {
- "version": "1.2.1",
- "bundled": true,
- "dev": true
- },
- "ignore-walk": {
- "version": "6.0.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "minimatch": "^9.0.0"
- }
- },
- "imurmurhash": {
- "version": "0.1.4",
- "bundled": true,
- "dev": true
- },
- "indent-string": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true
- },
- "infer-owner": {
- "version": "1.0.4",
- "bundled": true,
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "bundled": true,
- "dev": true
- },
- "ini": {
- "version": "4.1.0",
- "bundled": true,
- "dev": true
- },
- "init-package-json": {
- "version": "5.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "npm-package-arg": "^10.0.0",
- "promzard": "^1.0.0",
- "read": "^2.0.0",
- "read-package-json": "^6.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4",
- "validate-npm-package-name": "^5.0.0"
- }
- },
- "ip": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "ip-regex": {
- "version": "4.3.0",
- "bundled": true,
- "dev": true
- },
- "is-cidr": {
- "version": "4.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "cidr-regex": "^3.1.1"
- }
- },
- "is-core-module": {
- "version": "2.12.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- },
- "is-lambda": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "isexe": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "jackspeak": {
- "version": "2.2.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "@isaacs/cliui": "^8.0.2",
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "json-parse-even-better-errors": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- },
- "json-stringify-nice": {
- "version": "1.1.4",
- "bundled": true,
- "dev": true
- },
- "jsonparse": {
- "version": "1.3.1",
- "bundled": true,
- "dev": true
- },
- "just-diff": {
- "version": "6.0.2",
- "bundled": true,
- "dev": true
- },
- "just-diff-apply": {
- "version": "5.5.0",
- "bundled": true,
- "dev": true
- },
- "libnpmaccess": {
- "version": "7.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "npm-package-arg": "^10.1.0",
- "npm-registry-fetch": "^14.0.3"
- }
- },
- "libnpmdiff": {
- "version": "5.0.17",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/arborist": "^6.2.9",
- "@npmcli/disparity-colors": "^3.0.0",
- "@npmcli/installed-package-contents": "^2.0.2",
- "binary-extensions": "^2.2.0",
- "diff": "^5.1.0",
- "minimatch": "^9.0.0",
- "npm-package-arg": "^10.1.0",
- "pacote": "^15.0.8",
- "tar": "^6.1.13"
- }
- },
- "libnpmexec": {
- "version": "5.0.17",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/arborist": "^6.2.9",
- "@npmcli/run-script": "^6.0.0",
- "chalk": "^4.1.0",
- "ci-info": "^3.7.1",
- "npm-package-arg": "^10.1.0",
- "npmlog": "^7.0.1",
- "pacote": "^15.0.8",
- "proc-log": "^3.0.0",
- "read": "^2.0.0",
- "read-package-json-fast": "^3.0.2",
- "semver": "^7.3.7",
- "walk-up-path": "^3.0.1"
- }
- },
- "libnpmfund": {
- "version": "4.0.17",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/arborist": "^6.2.9"
- }
- },
- "libnpmhook": {
- "version": "9.0.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "aproba": "^2.0.0",
- "npm-registry-fetch": "^14.0.3"
- }
- },
- "libnpmorg": {
- "version": "5.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "aproba": "^2.0.0",
- "npm-registry-fetch": "^14.0.3"
- }
- },
- "libnpmpack": {
- "version": "5.0.17",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/arborist": "^6.2.9",
- "@npmcli/run-script": "^6.0.0",
- "npm-package-arg": "^10.1.0",
- "pacote": "^15.0.8"
- }
- },
- "libnpmpublish": {
- "version": "7.1.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "ci-info": "^3.6.1",
- "normalize-package-data": "^5.0.0",
- "npm-package-arg": "^10.1.0",
- "npm-registry-fetch": "^14.0.3",
- "proc-log": "^3.0.0",
- "semver": "^7.3.7",
- "sigstore": "^1.4.0",
- "ssri": "^10.0.1"
- }
- },
- "libnpmsearch": {
- "version": "6.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "npm-registry-fetch": "^14.0.3"
- }
- },
- "libnpmteam": {
- "version": "5.0.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "aproba": "^2.0.0",
- "npm-registry-fetch": "^14.0.3"
- }
- },
- "libnpmversion": {
- "version": "4.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/git": "^4.0.1",
- "@npmcli/run-script": "^6.0.0",
- "json-parse-even-better-errors": "^3.0.0",
- "proc-log": "^3.0.0",
- "semver": "^7.3.7"
- }
- },
- "lru-cache": {
- "version": "7.18.3",
- "bundled": true,
- "dev": true
- },
- "make-fetch-happen": {
- "version": "11.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "agentkeepalive": "^4.2.1",
- "cacache": "^17.0.0",
- "http-cache-semantics": "^4.1.1",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^7.7.1",
- "minipass": "^5.0.0",
- "minipass-fetch": "^3.0.0",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^7.0.0",
- "ssri": "^10.0.0"
- }
- },
- "minimatch": {
- "version": "9.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "minipass": {
- "version": "5.0.0",
- "bundled": true,
- "dev": true
- },
- "minipass-collect": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "minipass-fetch": {
- "version": "3.0.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "encoding": "^0.1.13",
- "minipass": "^5.0.0",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.1.2"
- }
- },
- "minipass-flush": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "minipass-json-stream": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "jsonparse": "^1.3.1",
- "minipass": "^3.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "minipass-pipeline": {
- "version": "1.2.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "minipass-sized": {
- "version": "1.0.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "minizlib": {
- "version": "2.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "bundled": true,
- "dev": true
- },
- "ms": {
- "version": "2.1.3",
- "bundled": true,
- "dev": true
- },
- "mute-stream": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "negotiator": {
- "version": "0.6.3",
- "bundled": true,
- "dev": true
- },
- "node-gyp": {
- "version": "9.3.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "env-paths": "^2.2.0",
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.6",
- "make-fetch-happen": "^10.0.3",
- "nopt": "^6.0.0",
- "npmlog": "^6.0.0",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.2",
- "which": "^2.0.2"
- },
- "dependencies": {
- "@npmcli/fs": {
- "version": "2.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "@gar/promisify": "^1.1.3",
- "semver": "^7.3.5"
- }
- },
- "abbrev": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true
- },
- "are-we-there-yet": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- }
- },
- "brace-expansion": {
- "version": "1.1.11",
- "bundled": true,
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "cacache": {
- "version": "16.1.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/fs": "^2.1.0",
- "@npmcli/move-file": "^2.0.0",
- "chownr": "^2.0.0",
- "fs-minipass": "^2.1.0",
- "glob": "^8.0.1",
- "infer-owner": "^1.0.4",
- "lru-cache": "^7.7.1",
- "minipass": "^3.1.6",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "mkdirp": "^1.0.4",
- "p-map": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "rimraf": "^3.0.2",
- "ssri": "^9.0.0",
- "tar": "^6.1.11",
- "unique-filename": "^2.0.0"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "glob": {
- "version": "8.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
- }
- },
- "minimatch": {
- "version": "5.1.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "fs-minipass": {
- "version": "2.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "gauge": {
- "version": "4.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.3",
- "console-control-strings": "^1.1.0",
- "has-unicode": "^2.0.1",
- "signal-exit": "^3.0.7",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.5"
- }
- },
- "glob": {
- "version": "7.2.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "make-fetch-happen": {
- "version": "10.2.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "agentkeepalive": "^4.2.1",
- "cacache": "^16.1.0",
- "http-cache-semantics": "^4.1.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^7.7.1",
- "minipass": "^3.1.6",
- "minipass-collect": "^1.0.2",
- "minipass-fetch": "^2.0.3",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^7.0.0",
- "ssri": "^9.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minipass": {
- "version": "3.3.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "minipass-fetch": {
- "version": "2.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "encoding": "^0.1.13",
- "minipass": "^3.1.6",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.1.2"
- }
- },
- "nopt": {
- "version": "6.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "abbrev": "^1.0.0"
- }
- },
- "npmlog": {
- "version": "6.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "are-we-there-yet": "^3.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^4.0.3",
- "set-blocking": "^2.0.0"
- }
- },
- "readable-stream": {
- "version": "3.6.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "signal-exit": {
- "version": "3.0.7",
- "bundled": true,
- "dev": true
- },
- "ssri": {
- "version": "9.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "minipass": "^3.1.1"
- }
- },
- "unique-filename": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "unique-slug": "^3.0.0"
- }
- },
- "unique-slug": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4"
- }
- },
- "which": {
- "version": "2.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "nopt": {
- "version": "7.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "abbrev": "^2.0.0"
- }
- },
- "normalize-package-data": {
- "version": "5.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "hosted-git-info": "^6.0.0",
- "is-core-module": "^2.8.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- }
- },
- "npm-audit-report": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "chalk": "^4.0.0"
- }
- },
- "npm-bundled": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "npm-normalize-package-bin": "^3.0.0"
- }
- },
- "npm-install-checks": {
- "version": "6.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "semver": "^7.1.1"
- }
- },
- "npm-normalize-package-bin": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true
- },
- "npm-package-arg": {
- "version": "10.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "hosted-git-info": "^6.0.0",
- "proc-log": "^3.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^5.0.0"
- }
- },
- "npm-packlist": {
- "version": "7.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "ignore-walk": "^6.0.0"
- }
- },
- "npm-pick-manifest": {
- "version": "8.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "npm-install-checks": "^6.0.0",
- "npm-normalize-package-bin": "^3.0.0",
- "npm-package-arg": "^10.0.0",
- "semver": "^7.3.5"
- }
- },
- "npm-profile": {
- "version": "7.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "npm-registry-fetch": "^14.0.0",
- "proc-log": "^3.0.0"
- }
- },
- "npm-registry-fetch": {
- "version": "14.0.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "make-fetch-happen": "^11.0.0",
- "minipass": "^5.0.0",
- "minipass-fetch": "^3.0.0",
- "minipass-json-stream": "^1.0.1",
- "minizlib": "^2.1.2",
- "npm-package-arg": "^10.0.0",
- "proc-log": "^3.0.0"
- }
- },
- "npm-user-validate": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "npmlog": {
- "version": "7.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "are-we-there-yet": "^4.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^5.0.0",
- "set-blocking": "^2.0.0"
- }
- },
- "once": {
- "version": "1.4.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "wrappy": "1"
- }
- },
- "p-map": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "aggregate-error": "^3.0.0"
- }
- },
- "pacote": {
- "version": "15.1.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "@npmcli/git": "^4.0.0",
- "@npmcli/installed-package-contents": "^2.0.1",
- "@npmcli/promise-spawn": "^6.0.1",
- "@npmcli/run-script": "^6.0.0",
- "cacache": "^17.0.0",
- "fs-minipass": "^3.0.0",
- "minipass": "^5.0.0",
- "npm-package-arg": "^10.0.0",
- "npm-packlist": "^7.0.0",
- "npm-pick-manifest": "^8.0.0",
- "npm-registry-fetch": "^14.0.0",
- "proc-log": "^3.0.0",
- "promise-retry": "^2.0.1",
- "read-package-json": "^6.0.0",
- "read-package-json-fast": "^3.0.0",
- "sigstore": "^1.3.0",
- "ssri": "^10.0.0",
- "tar": "^6.1.11"
- }
- },
- "parse-conflict-json": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "json-parse-even-better-errors": "^3.0.0",
- "just-diff": "^6.0.0",
- "just-diff-apply": "^5.2.0"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "path-key": {
- "version": "3.1.1",
- "bundled": true,
- "dev": true
- },
- "path-scurry": {
- "version": "1.7.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "lru-cache": "^9.0.0",
- "minipass": "^5.0.0"
- },
- "dependencies": {
- "lru-cache": {
- "version": "9.1.1",
- "bundled": true,
- "dev": true
- }
- }
- },
- "postcss-selector-parser": {
- "version": "6.0.12",
- "bundled": true,
- "dev": true,
- "requires": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- }
- },
- "proc-log": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- },
- "process": {
- "version": "0.11.10",
- "bundled": true,
- "dev": true
- },
- "promise-all-reject-late": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "promise-call-limit": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "promise-inflight": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "promise-retry": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "err-code": "^2.0.2",
- "retry": "^0.12.0"
- }
- },
- "promzard": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "read": "^2.0.0"
- }
- },
- "qrcode-terminal": {
- "version": "0.12.0",
- "bundled": true,
- "dev": true
- },
- "read": {
- "version": "2.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "mute-stream": "~1.0.0"
- }
- },
- "read-cmd-shim": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true
- },
- "read-package-json": {
- "version": "6.0.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "glob": "^10.2.2",
- "json-parse-even-better-errors": "^3.0.0",
- "normalize-package-data": "^5.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- }
- },
- "read-package-json-fast": {
- "version": "3.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "json-parse-even-better-errors": "^3.0.0",
- "npm-normalize-package-bin": "^3.0.0"
- }
- },
- "readable-stream": {
- "version": "4.3.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "abort-controller": "^3.0.0",
- "buffer": "^6.0.3",
- "events": "^3.3.0",
- "process": "^0.11.10"
- }
- },
- "retry": {
- "version": "0.12.0",
- "bundled": true,
- "dev": true
- },
- "rimraf": {
- "version": "3.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "bundled": true,
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- }
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "bundled": true,
- "dev": true
- },
- "safer-buffer": {
- "version": "2.1.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "semver": {
- "version": "7.5.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- },
- "dependencies": {
- "lru-cache": {
- "version": "6.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "set-blocking": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "shebang-command": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- },
- "signal-exit": {
- "version": "4.0.1",
- "bundled": true,
- "dev": true
- },
- "sigstore": {
- "version": "1.4.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "@sigstore/protobuf-specs": "^0.1.0",
- "make-fetch-happen": "^11.0.1",
- "tuf-js": "^1.1.3"
- }
- },
- "smart-buffer": {
- "version": "4.2.0",
- "bundled": true,
- "dev": true
- },
- "socks": {
- "version": "2.7.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "ip": "^2.0.0",
- "smart-buffer": "^4.2.0"
- }
- },
- "socks-proxy-agent": {
- "version": "7.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "agent-base": "^6.0.2",
- "debug": "^4.3.3",
- "socks": "^2.6.2"
- }
- },
- "spdx-correct": {
- "version": "3.2.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.3.0",
- "bundled": true,
- "dev": true
- },
- "spdx-expression-parse": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.13",
- "bundled": true,
- "dev": true
- },
- "ssri": {
- "version": "10.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "minipass": "^5.0.0"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "string-width": {
- "version": "4.2.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "string-width-cjs": {
- "version": "npm:string-width@4.2.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-ansi-cjs": {
- "version": "npm:strip-ansi@6.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "tar": {
- "version": "6.1.14",
- "bundled": true,
- "dev": true,
- "requires": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "dependencies": {
- "fs-minipass": {
- "version": "2.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "3.3.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- }
- }
- },
- "text-table": {
- "version": "0.2.0",
- "bundled": true,
- "dev": true
- },
- "tiny-relative-date": {
- "version": "1.3.0",
- "bundled": true,
- "dev": true
- },
- "treeverse": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- },
- "tuf-js": {
- "version": "1.1.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "@tufjs/models": "1.0.4",
- "make-fetch-happen": "^11.1.0"
- }
- },
- "unique-filename": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "unique-slug": "^4.0.0"
- }
- },
- "unique-slug": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "validate-npm-package-name": {
- "version": "5.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "builtins": "^5.0.0"
- }
- },
- "walk-up-path": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true
- },
- "wcwidth": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "defaults": "^1.0.3"
- }
- },
- "which": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "wide-align": {
- "version": "1.1.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "wrap-ansi": {
- "version": "8.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "6.0.1",
- "bundled": true,
- "dev": true
- },
- "ansi-styles": {
- "version": "6.2.1",
- "bundled": true,
- "dev": true
- },
- "emoji-regex": {
- "version": "9.2.2",
- "bundled": true,
- "dev": true
- },
- "string-width": {
- "version": "5.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- }
- },
- "strip-ansi": {
- "version": "7.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-regex": "^6.0.1"
- }
- }
- }
- },
- "wrap-ansi-cjs": {
- "version": "npm:wrap-ansi@7.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "write-file-atomic": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- }
- },
- "yallist": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true
- }
- }
- },
- "npm-conf": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
- "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
- "dev": true,
- "requires": {
- "config-chain": "^1.1.11",
- "pify": "^3.0.0"
- }
- },
- "npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "requires": {
- "path-key": "^3.0.0"
- }
- },
- "npmlog": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
- "integrity": "sha512-DaL6RTb8Qh4tMe2ttPT1qWccETy2Vi5/8p+htMpLBeXJTr2CAqnF5WQtSP2eFpvaNbhLZ5uilDb98mRm4Q+lZQ==",
- "dev": true,
- "requires": {
- "ansi": "~0.3.1",
- "are-we-there-yet": "~1.1.2",
- "gauge": "~1.2.5"
- }
- },
- "nth-check": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
- "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
- "dev": true,
- "requires": {
- "boolbase": "~1.0.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
- "dev": true
- },
- "oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "dev": true
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true
- },
- "object-hash": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
- "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
- "dev": true
- },
- "object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "dev": true
- },
- "on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dev": true,
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "requires": {
- "wrappy": "1"
- }
- },
- "one-time": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
- "integrity": "sha512-qAMrwuk2xLEutlASoiPiAMW3EN3K96Ka/ilSXYr6qR1zSVXw2j7+yDSqGTC4T9apfLYxM3tLLjKvgPdAUK7kYQ==",
- "dev": true
- },
- "onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "requires": {
- "mimic-fn": "^2.1.0"
- }
- },
- "optional-require": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz",
- "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==",
- "dev": true,
- "requires": {
- "require-at": "^1.0.6"
- }
- },
- "optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
- "dev": true,
- "peer": true,
- "requires": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
- }
- },
- "p-cancelable": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
- "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==",
- "dev": true
- },
- "p-each-series": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz",
- "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==",
- "dev": true
- },
- "p-event": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz",
- "integrity": "sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==",
- "dev": true,
- "requires": {
- "p-timeout": "^1.1.1"
- }
- },
- "p-filter": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz",
- "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==",
- "dev": true,
- "requires": {
- "p-map": "^2.0.0"
- }
- },
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
- "dev": true
- },
- "p-is-promise": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz",
- "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==",
- "dev": true
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "peer": true,
- "requires": {
- "p-limit": "^3.0.2"
- }
- },
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true
- },
- "p-reduce": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz",
- "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==",
- "dev": true
- },
- "p-retry": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
- "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
- "dev": true,
- "requires": {
- "@types/retry": "0.12.0",
- "retry": "^0.13.1"
- }
- },
- "p-timeout": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
- "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==",
- "dev": true,
- "requires": {
- "p-finally": "^1.0.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
- "dev": true
- },
- "packet-reader": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
- "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==",
- "dev": true
- },
- "parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "requires": {
- "callsites": "^3.0.0"
- }
- },
- "parse": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/parse/-/parse-4.0.1.tgz",
- "integrity": "sha512-ctv7zaVKlQIBSbarorB7TH3yacDzCvgWBP4ccpLKxlpe21QlaY88kv9V7ca7JdG/Txb3qWug4MwepQoPogXB6Q==",
- "dev": true,
- "requires": {
- "@babel/runtime": "7.18.0",
- "@babel/runtime-corejs3": "7.17.8",
- "crypto-js": "4.1.1",
- "idb-keyval": "6.0.3",
- "react-native-crypto-js": "1.0.0",
- "uuid": "3.4.0",
- "ws": "8.6.0",
- "xmlhttprequest": "1.8.0"
- },
- "dependencies": {
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "dev": true
- },
- "ws": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz",
- "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==",
- "dev": true,
- "requires": {}
- }
- }
- },
- "parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- }
- },
- "parse-server": {
- "version": "git+ssh://git@github.com/parse-community/parse-server.git#559b1de828c3e3f73eee3599a29f0db2741a73c4",
- "dev": true,
- "from": "parse-server@github:parse-community/parse-server#alpha",
- "requires": {
- "@babel/eslint-parser": "7.19.1",
- "@graphql-tools/merge": "8.3.6",
- "@graphql-tools/schema": "9.0.4",
- "@graphql-tools/utils": "8.12.0",
- "@graphql-yoga/node": "2.6.0",
- "@node-rs/bcrypt": "1.1.0",
- "@parse/fs-files-adapter": "1.2.2",
- "@parse/push-adapter": "4.1.2",
- "bcryptjs": "2.4.3",
- "body-parser": "1.20.1",
- "commander": "5.1.0",
- "cors": "2.8.5",
- "deepcopy": "2.1.0",
- "express": "4.18.2",
- "express-rate-limit": "6.6.0",
- "follow-redirects": "1.15.2",
- "graphql": "16.6.0",
- "graphql-list-fields": "2.0.2",
- "graphql-relay": "0.10.0",
- "graphql-tag": "2.12.6",
- "intersect": "1.0.1",
- "ip-range-check": "0.2.0",
- "jsonwebtoken": "9.0.0",
- "jwks-rsa": "2.1.5",
- "ldapjs": "2.3.3",
- "lodash": "4.17.21",
- "lru-cache": "7.12.0",
- "mime": "3.0.0",
- "mongodb": "4.10.0",
- "mustache": "4.2.0",
- "parse": "4.0.1",
- "path-to-regexp": "0.1.7",
- "pg-monitor": "2.0.0",
- "pg-promise": "11.3.0",
- "pluralize": "8.0.0",
- "rate-limit-redis": "3.0.1",
- "redis": "4.0.6",
- "semver": "7.3.8",
- "subscriptions-transport-ws": "0.11.0",
- "tv4": "1.3.0",
- "uuid": "9.0.0",
- "winston": "3.8.1",
- "winston-daily-rotate-file": "4.7.1",
- "ws": "8.9.0"
- },
- "dependencies": {
- "bson": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz",
- "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==",
- "dev": true,
- "requires": {
- "buffer": "^5.6.0"
- }
- },
- "denque": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
- "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
- "dev": true
- },
- "lru-cache": {
- "version": "7.12.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.12.0.tgz",
- "integrity": "sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw==",
- "dev": true
- },
- "mongodb": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.10.0.tgz",
- "integrity": "sha512-My2QxLTw0Cc1O9gih0mz4mqo145Jq4rLAQx0Glk/Ha9iYBzYpt4I2QFNRIh35uNFNfe8KFQcdwY1/HKxXBkinw==",
- "dev": true,
- "requires": {
- "bson": "^4.7.0",
- "denque": "^2.1.0",
- "mongodb-connection-string-url": "^2.5.3",
- "saslprep": "^1.0.3",
- "socks": "^2.7.0"
- }
- },
- "one-time": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
- "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
- "dev": true,
- "requires": {
- "fn.name": "1.x.x"
- }
- },
- "readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- },
- "dependencies": {
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- }
- }
- },
- "winston": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.1.tgz",
- "integrity": "sha512-r+6YAiCR4uI3N8eQNOg8k3P3PqwAm20cLKlzVD9E66Ch39+LZC+VH1UKf9JemQj2B3QoUHfKD7Poewn0Pr3Y1w==",
- "dev": true,
- "requires": {
- "@dabh/diagnostics": "^2.0.2",
- "async": "^3.2.3",
- "is-stream": "^2.0.0",
- "logform": "^2.4.0",
- "one-time": "^1.0.0",
- "readable-stream": "^3.4.0",
- "safe-stable-stringify": "^2.3.1",
- "stack-trace": "0.0.x",
- "triple-beam": "^1.3.0",
- "winston-transport": "^4.5.0"
- }
- },
- "winston-daily-rotate-file": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz",
- "integrity": "sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==",
- "dev": true,
- "requires": {
- "file-stream-rotator": "^0.6.1",
- "object-hash": "^2.0.1",
- "triple-beam": "^1.3.0",
- "winston-transport": "^4.4.0"
- }
- }
- }
- },
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
- "dev": true
- },
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- },
- "pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
- "dev": true
- },
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
- "dev": true
- },
- "pg": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/pg/-/pg-8.9.0.tgz",
- "integrity": "sha512-ZJM+qkEbtOHRuXjmvBtOgNOXOtLSbxiMiUVMgE4rV6Zwocy03RicCVvDXgx8l4Biwo8/qORUnEqn2fdQzV7KCg==",
- "dev": true,
- "requires": {
- "buffer-writer": "2.0.0",
- "packet-reader": "1.0.0",
- "pg-connection-string": "^2.5.0",
- "pg-pool": "^3.5.2",
- "pg-protocol": "^1.6.0",
- "pg-types": "^2.1.0",
- "pgpass": "1.x"
- }
- },
- "pg-connection-string": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
- "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==",
- "dev": true
- },
- "pg-int8": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
- "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
- "dev": true
- },
- "pg-minify": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz",
- "integrity": "sha512-1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==",
- "dev": true
- },
- "pg-monitor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pg-monitor/-/pg-monitor-2.0.0.tgz",
- "integrity": "sha512-UqjhroM701sRrJHhXeF1OwNBGxkN9R0YgkVU8A46wWn3RwK/K7QDylChMoDxo8TmGp86CBP4ZSf+RK9vD8XyVA==",
- "dev": true,
- "requires": {
- "cli-color": "2.0.3"
- },
- "dependencies": {
- "cli-color": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.3.tgz",
- "integrity": "sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==",
- "dev": true,
- "requires": {
- "d": "^1.0.1",
- "es5-ext": "^0.10.61",
- "es6-iterator": "^2.0.3",
- "memoizee": "^0.4.15",
- "timers-ext": "^0.1.7"
- }
- },
- "d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dev": true,
- "requires": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "es6-weak-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
- "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
- "dev": true,
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.46",
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.1"
- }
- },
- "memoizee": {
- "version": "0.4.15",
- "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
- "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==",
- "dev": true,
- "requires": {
- "d": "^1.0.1",
- "es5-ext": "^0.10.53",
- "es6-weak-map": "^2.0.3",
- "event-emitter": "^0.3.5",
- "is-promise": "^2.2.2",
- "lru-queue": "^0.1.0",
- "next-tick": "^1.1.0",
- "timers-ext": "^0.1.7"
- }
- },
- "type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
- "dev": true
- }
- }
- },
- "pg-pool": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.0.tgz",
- "integrity": "sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ==",
- "dev": true,
- "requires": {}
- },
- "pg-promise": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-11.3.0.tgz",
- "integrity": "sha512-A2CYmax5gsqVAO2N0ET9oPRCPX3kpKymj9qLVK7+jszlJL6l8uJDq/DGqLpxNi5VHwK7Dmm2WNRdrwkh1xuaxQ==",
- "dev": true,
- "requires": {
- "assert-options": "0.8.0",
- "pg": "8.9.0",
- "pg-minify": "1.6.2",
- "spex": "3.2.0"
- }
- },
- "pg-protocol": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz",
- "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==",
- "dev": true
- },
- "pg-types": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
- "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
- "dev": true,
- "requires": {
- "pg-int8": "1.0.1",
- "postgres-array": "~2.0.0",
- "postgres-bytea": "~1.0.0",
- "postgres-date": "~1.0.4",
- "postgres-interval": "^1.1.0"
- }
- },
- "pgpass": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
- "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
- "dev": true,
- "requires": {
- "split2": "^4.1.0"
- },
- "dependencies": {
- "split2": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
- "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
- "dev": true
- }
- }
- },
- "picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true,
- "peer": true
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
- "dev": true,
- "requires": {
- "pinkie": "^2.0.0"
- }
- },
- "pkg-conf": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz",
- "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==",
- "dev": true,
- "requires": {
- "find-up": "^2.0.0",
- "load-json-file": "^4.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
- "dev": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
- "dev": true,
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
- "dev": true,
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true
- }
- }
- },
- "pluralize": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
- "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
- "dev": true
- },
- "postgres-array": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
- "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
- "dev": true
- },
- "postgres-bytea": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
- "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==",
- "dev": true
- },
- "postgres-date": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
- "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
- "dev": true
- },
- "postgres-interval": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
- "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
- "dev": true,
- "requires": {
- "xtend": "^4.0.0"
- }
- },
- "precond": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz",
- "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==",
- "dev": true
- },
- "prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
- "peer": true
- },
- "prepend-http": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==",
- "dev": true
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
- },
- "proto-list": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
- "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
- "dev": true
- },
- "proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dev": true,
- "requires": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- }
- },
- "ps-node": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/ps-node/-/ps-node-0.1.6.tgz",
- "integrity": "sha512-w7QJhUTbu70hpDso0YXDRNKCPNuchV8UTUZsAv0m7Qj5g85oHOJfr9drA1EjvK4nQK/bG8P97W4L6PJ3IQLoOA==",
- "dev": true,
- "requires": {
- "table-parser": "^0.1.3"
- }
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==",
- "dev": true
- },
- "psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
- "dev": true
- },
- "punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
- "dev": true
- },
- "q": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
- "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
- "dev": true
- },
- "qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "requires": {
- "side-channel": "^1.0.4"
- }
- },
- "queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
- },
- "quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
- "dev": true
- },
- "range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "dev": true
- },
- "rate-limit-redis": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/rate-limit-redis/-/rate-limit-redis-3.0.1.tgz",
- "integrity": "sha512-L6yhOUBrAZ8VEMX9DwlM3X6hfm8yq+gBO4LoOW7+JgmNq59zE7QmLz4v5VnwYPvLeSh/e7PDcrzUI3UumJw1iw==",
- "dev": true,
- "requires": {}
- },
- "raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "dev": true,
- "requires": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- }
- },
- "rc": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
- "dev": true,
- "requires": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "dependencies": {
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
- "dev": true
- }
- }
- },
- "react-native-crypto-js": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/react-native-crypto-js/-/react-native-crypto-js-1.0.0.tgz",
- "integrity": "sha512-FNbLuG/HAdapQoybeZSoes1PWdOj0w242gb+e1R0hicf3Gyj/Mf8M9NaED2AnXVOX01b2FXomwUiw1xP1K+8sA==",
- "dev": true
- },
- "read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "dev": true,
- "requires": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "dependencies": {
- "hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dev": true,
- "requires": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- },
- "type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true
- }
- }
- },
- "read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
- "dev": true,
- "requires": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
- },
- "dependencies": {
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true
- }
- }
- },
- "readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- }
- }
- },
- "redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
- "dev": true,
- "requires": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
- }
- },
- "redeyed": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz",
- "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==",
- "dev": true,
- "requires": {
- "esprima": "~4.0.0"
- }
- },
- "redis": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/redis/-/redis-4.0.6.tgz",
- "integrity": "sha512-IaPAxgF5dV0jx+A9l6yd6R9/PAChZIoAskDVRzUODeLDNhsMlq7OLLTmu0AwAr0xjrJ1bibW5xdpRwqIQ8Q0Xg==",
- "dev": true,
- "requires": {
- "@node-redis/bloom": "1.0.1",
- "@node-redis/client": "1.0.5",
- "@node-redis/graph": "1.0.0",
- "@node-redis/json": "1.0.2",
- "@node-redis/search": "1.0.5",
- "@node-redis/time-series": "1.0.2"
- }
- },
- "redis-errors": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
- "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==",
- "dev": true
- },
- "redis-parser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
- "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==",
- "dev": true,
- "requires": {
- "redis-errors": "^1.0.0"
- }
- },
- "regenerator-runtime": {
- "version": "0.13.11",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
- "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
- "dev": true
- },
- "registry-auth-token": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz",
- "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==",
- "dev": true,
- "requires": {
- "@pnpm/npm-conf": "^2.1.0"
- }
- },
- "request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "dev": true,
- "requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "dependencies": {
- "qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "dev": true
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "dev": true
- }
- }
- },
- "require_optional": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
- "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
- "dev": true,
- "requires": {
- "resolve-from": "^2.0.0",
- "semver": "^5.1.0"
- },
- "dependencies": {
- "resolve-from": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
- "integrity": "sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==",
- "dev": true
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "require-at": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz",
- "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==",
- "dev": true
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true
- },
- "resolve": {
- "version": "1.22.2",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
- "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.11.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
- },
- "retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
- "dev": true
- },
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
- },
- "rimraf": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz",
- "integrity": "sha512-33Fa/MIw/3F9KcDE/uJ2OuYUyxY+fkmw1c20DFnyhP7dfo2+BexeE1thjluPiJaG8sW6CcaqnTffwpRd4NAiTg==",
- "dev": true
- },
- "run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "requires": {
- "queue-microtask": "^1.2.2"
- }
- },
- "safari-14-idb-fix": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz",
- "integrity": "sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog==",
- "dev": true
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true
- },
- "safe-stable-stringify": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
- "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
- "dev": true
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
- },
- "saslprep": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
- "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
- "dev": true,
- "optional": true,
- "requires": {
- "sparse-bitfield": "^3.0.3"
- }
- },
- "seek-bzip": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
- "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==",
- "dev": true,
- "requires": {
- "commander": "^2.8.1"
- },
- "dependencies": {
- "commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
- }
- }
- },
- "semantic-release": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.0.1.tgz",
- "integrity": "sha512-UhGxTUXHJQCBFgEQRZszLOHDpMduDSHGq3Q+30Bu+g0GbXh/EW508+kuFHezP5m0mN8xINW8hooiR3dzSV5ZLA==",
- "dev": true,
- "requires": {
- "@semantic-release/commit-analyzer": "^9.0.2",
- "@semantic-release/error": "^3.0.0",
- "@semantic-release/github": "^8.0.0",
- "@semantic-release/npm": "^10.0.2",
- "@semantic-release/release-notes-generator": "^10.0.0",
- "aggregate-error": "^4.0.1",
- "cosmiconfig": "^8.0.0",
- "debug": "^4.0.0",
- "env-ci": "^9.0.0",
- "execa": "^7.0.0",
- "figures": "^5.0.0",
- "find-versions": "^5.1.0",
- "get-stream": "^6.0.0",
- "git-log-parser": "^1.2.0",
- "hook-std": "^3.0.0",
- "hosted-git-info": "^6.0.0",
- "lodash-es": "^4.17.21",
- "marked": "^4.1.0",
- "marked-terminal": "^5.1.1",
- "micromatch": "^4.0.2",
- "p-each-series": "^3.0.0",
- "p-reduce": "^3.0.0",
- "read-pkg-up": "^9.1.0",
- "resolve-from": "^5.0.0",
- "semver": "^7.3.2",
- "semver-diff": "^4.0.0",
- "signale": "^1.2.1",
- "yargs": "^17.5.1"
- },
- "dependencies": {
- "@semantic-release/npm": {
- "version": "10.0.3",
- "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.3.tgz",
- "integrity": "sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg==",
- "dev": true,
- "requires": {
- "@semantic-release/error": "^3.0.0",
- "aggregate-error": "^4.0.1",
- "execa": "^7.0.0",
- "fs-extra": "^11.0.0",
- "lodash-es": "^4.17.21",
- "nerf-dart": "^1.0.0",
- "normalize-url": "^8.0.0",
- "npm": "^9.5.0",
- "rc": "^1.2.8",
- "read-pkg": "^8.0.0",
- "registry-auth-token": "^5.0.0",
- "semver": "^7.1.2",
- "tempy": "^3.0.0"
- }
- },
- "aggregate-error": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz",
- "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==",
- "dev": true,
- "requires": {
- "clean-stack": "^4.0.0",
- "indent-string": "^5.0.0"
- }
- },
- "clean-stack": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz",
- "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "5.0.0"
- }
- },
- "escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true
- },
- "execa": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
- "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
- "dev": true,
- "requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^4.3.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
- "strip-final-newline": "^3.0.0"
- }
- },
- "figures": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz",
- "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^5.0.0",
- "is-unicode-supported": "^1.2.0"
- }
- },
- "find-up": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
- "dev": true,
- "requires": {
- "locate-path": "^7.1.0",
- "path-exists": "^5.0.0"
- }
- },
- "hosted-git-info": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz",
- "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==",
- "dev": true,
- "requires": {
- "lru-cache": "^7.5.1"
- },
- "dependencies": {
- "lru-cache": {
- "version": "7.18.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
- "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
- "dev": true
- }
- }
- },
- "human-signals": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
- "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
- "dev": true
- },
- "indent-string": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
- "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
- "dev": true
- },
- "is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true
- },
- "json-parse-even-better-errors": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz",
- "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
- "dev": true
- },
- "lines-and-columns": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz",
- "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==",
- "dev": true
- },
- "locate-path": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
- "dev": true,
- "requires": {
- "p-locate": "^6.0.0"
- }
- },
- "mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dev": true
- },
- "normalize-package-data": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz",
- "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==",
- "dev": true,
- "requires": {
- "hosted-git-info": "^6.0.0",
- "is-core-module": "^2.8.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- }
- },
- "npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
- "dev": true,
- "requires": {
- "path-key": "^4.0.0"
- }
- },
- "onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dev": true,
- "requires": {
- "mimic-fn": "^4.0.0"
- }
- },
- "p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
- "dev": true,
- "requires": {
- "p-limit": "^4.0.0"
- }
- },
- "p-reduce": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz",
- "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==",
- "dev": true
- },
- "parse-json": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz",
- "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.21.4",
- "error-ex": "^1.3.2",
- "json-parse-even-better-errors": "^3.0.0",
- "lines-and-columns": "^2.0.3",
- "type-fest": "^3.8.0"
- }
- },
- "path-exists": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
- "dev": true
- },
- "path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dev": true
- },
- "read-pkg": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.0.0.tgz",
- "integrity": "sha512-Ajb9oSjxXBw0YyOiwtQ2dKbAA/vMnUPnY63XcCk+mXo0BwIdQEMgZLZiMWGttQHcUhUgbK0mH85ethMPKXxziw==",
- "dev": true,
- "requires": {
- "@types/normalize-package-data": "^2.4.1",
- "normalize-package-data": "^5.0.0",
- "parse-json": "^7.0.0",
- "type-fest": "^3.8.0"
- }
- },
- "read-pkg-up": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz",
- "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==",
- "dev": true,
- "requires": {
- "find-up": "^6.3.0",
- "read-pkg": "^7.1.0",
- "type-fest": "^2.5.0"
- },
- "dependencies": {
- "hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "dev": true,
- "requires": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- }
- },
- "read-pkg": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz",
- "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==",
- "dev": true,
- "requires": {
- "@types/normalize-package-data": "^2.4.1",
- "normalize-package-data": "^3.0.2",
- "parse-json": "^5.2.0",
- "type-fest": "^2.0.0"
- }
- },
- "type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true
- }
- }
- },
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true
- },
- "semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dev": true
- },
- "type-fest": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.10.0.tgz",
- "integrity": "sha512-hmAPf1datm+gt3c2mvu0sJyhFy6lTkIGf0GzyaZWxRLnabQfPUqg6tF95RPg6sLxKI7nFLGdFxBcf2/7+GXI+A==",
- "dev": true,
- "requires": {}
- },
- "yocto-queue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
- "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
- "dev": true
- }
- }
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- },
- "semver-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz",
- "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
- "dev": true,
- "requires": {
- "semver": "^7.3.5"
- },
- "dependencies": {
- "semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
- }
- },
- "semver-regex": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz",
- "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==",
- "dev": true
- },
- "send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- },
- "dependencies": {
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- }
- }
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- }
- }
- },
- "serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dev": true,
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- }
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true
- },
- "setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "signale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz",
- "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==",
- "dev": true,
- "requires": {
- "chalk": "^2.3.2",
- "figures": "^2.0.0",
- "pkg-conf": "^2.1.0"
- }
- },
- "simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "dev": true,
- "requires": {
- "is-arrayish": "^0.3.1"
- },
- "dependencies": {
- "is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
- "dev": true
- }
- }
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
- "smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
- "dev": true
- },
- "socks": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
- "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
- "dev": true,
- "requires": {
- "ip": "^2.0.0",
- "smart-buffer": "^4.2.0"
- }
- },
- "sort-keys": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
- "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==",
- "dev": true,
- "requires": {
- "is-plain-obj": "^1.0.0"
- }
- },
- "sort-keys-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
- "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==",
- "dev": true,
- "requires": {
- "sort-keys": "^1.0.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
- },
- "sparse-bitfield": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
- "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "memory-pager": "^1.0.2"
- }
- },
- "spawn-error-forwarder": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz",
- "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==",
- "dev": true
- },
- "spdx-correct": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "dev": true,
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
- "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==",
- "dev": true
- },
- "spex": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz",
- "integrity": "sha512-9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg==",
- "dev": true
- },
- "split": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
- "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
- "dev": true,
- "requires": {
- "through": "2"
- }
- },
- "split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "dev": true,
- "requires": {
- "readable-stream": "^3.0.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "sshpk": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
- "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
- "dev": true,
- "requires": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- }
- },
- "stack-trace": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
- "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==",
- "dev": true
- },
- "statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true
- },
- "stream-combiner2": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
- "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==",
- "dev": true,
- "requires": {
- "duplexer2": "~0.1.0",
- "readable-stream": "^2.0.2"
- }
- },
- "streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "dev": true
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- }
- }
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true
- },
- "strip-dirs": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
- "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
- "dev": true,
- "requires": {
- "is-natural-number": "^4.0.1"
- }
- },
- "strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true
- },
- "strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
- "dev": true,
- "requires": {
- "min-indent": "^1.0.0"
- }
- },
- "strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "peer": true
- },
- "strip-outer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
- "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.2"
- }
- },
- "subscriptions-transport-ws": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz",
- "integrity": "sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==",
- "dev": true,
- "requires": {
- "backo2": "^1.0.2",
- "eventemitter3": "^3.1.0",
- "iterall": "^1.2.1",
- "symbol-observable": "^1.0.4",
- "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
- },
- "dependencies": {
- "ws": {
- "version": "7.5.9",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
- "dev": true,
- "requires": {}
- }
- }
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true
- },
- "symbol-observable": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
- "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
- "dev": true
- },
- "table-parser": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/table-parser/-/table-parser-0.1.3.tgz",
- "integrity": "sha512-LCYeuvqqoPII3lzzYaXKbC3Forb+d2u4bNwhk/9FlivuGRxPE28YEWAYcujeSlLLDlMfvy29+WPybFJZFiKMYg==",
- "dev": true,
- "requires": {
- "connected-domain": "^1.0.0"
- }
- },
- "tar-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
- "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
- "dev": true,
- "requires": {
- "bl": "^1.0.0",
- "buffer-alloc": "^1.2.0",
- "end-of-stream": "^1.0.0",
- "fs-constants": "^1.0.0",
- "readable-stream": "^2.3.0",
- "to-buffer": "^1.1.1",
- "xtend": "^4.0.0"
- },
- "dependencies": {
- "bl": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
- "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
- "dev": true,
- "requires": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
- }
- }
- }
- },
- "temp-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
- "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
- "dev": true
- },
- "tempy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz",
- "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==",
- "dev": true,
- "requires": {
- "is-stream": "^3.0.0",
- "temp-dir": "^2.0.0",
- "type-fest": "^2.12.2",
- "unique-string": "^3.0.0"
- },
- "dependencies": {
- "is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true
- },
- "type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true
- }
- }
- },
- "text-extensions": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz",
- "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==",
- "dev": true
- },
- "text-hex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
- "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==",
- "dev": true
- },
- "text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dev": true
- },
- "through2": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
- "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
- "dev": true,
- "requires": {
- "readable-stream": "3"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "tildify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz",
- "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==",
- "dev": true
- },
- "timed-out": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
- "dev": true
- },
- "timers-ext": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
- "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
- "dev": true,
- "requires": {
- "es5-ext": "~0.10.46",
- "next-tick": "1"
- }
- },
- "to-buffer": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
- "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
- "dev": true
- },
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
- "peer": true
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "dev": true
- },
- "tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "dev": true,
- "requires": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- }
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "traverse": {
- "version": "0.6.7",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz",
- "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==",
- "dev": true
- },
- "trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
- "dev": true
- },
- "trim-repeated": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
- "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.2"
- }
- },
- "triple-beam": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
- "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==",
- "dev": true
- },
- "tslib": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
- "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
- "dev": true
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "dev": true,
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "tv4": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz",
- "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==",
- "dev": true
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
- "dev": true
- },
- "type": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
- "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==",
- "dev": true
- },
- "type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "peer": true,
- "requires": {
- "prelude-ls": "^1.2.1"
- }
- },
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true
- },
- "type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
- "dev": true
- },
- "type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dev": true,
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- }
- },
- "typescript": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
- "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
- "dev": true,
- "peer": true
- },
- "uglify-js": {
- "version": "3.17.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
- "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
- "dev": true,
- "optional": true
- },
- "unbzip2-stream": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
- "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
- "dev": true,
- "requires": {
- "buffer": "^5.2.1",
- "through": "^2.3.8"
- }
- },
- "undici": {
- "version": "5.5.1",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.5.1.tgz",
- "integrity": "sha512-MEvryPLf18HvlCbLSzCW0U00IMftKGI5udnjrQbC5D4P0Hodwffhv+iGfWuJwg16Y/TK11ZFK8i+BPVW2z/eAw==",
- "dev": true
- },
- "unique-string": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
- "dev": true,
- "requires": {
- "crypto-random-string": "^4.0.0"
- }
- },
- "universal-user-agent": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
- "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==",
- "dev": true
- },
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true
- },
- "untildify": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
- "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
- "dev": true
- },
- "update-browserslist-db": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
- "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
- "dev": true,
- "peer": true,
- "requires": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "url-join": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz",
- "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==",
- "dev": true
- },
- "url-parse-lax": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==",
- "dev": true,
- "requires": {
- "prepend-http": "^1.0.1"
- }
- },
- "url-to-options": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
- "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==",
- "dev": true
- },
- "user-home": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
- "integrity": "sha512-aggiKfEEubv3UwRNqTzLInZpAOmKzwdHqEBmW/hBA/mt99eg+b4VrX6i+IRLxU8+WJYfa33rGwRseg4eElUgsQ==",
- "dev": true
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "dev": true
- },
- "uuid": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
- "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
- "dev": true
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "value-or-promise": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz",
- "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==",
- "dev": true
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "dev": true
- },
- "vasync": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz",
- "integrity": "sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==",
- "dev": true,
- "requires": {
- "verror": "1.10.0"
- },
- "dependencies": {
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
- "dev": true
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- }
- }
- },
- "verror": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz",
- "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- },
- "dependencies": {
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
- "dev": true
- }
- }
- },
- "web-streams-polyfill": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
- "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
- "dev": true
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "dev": true,
- "requires": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "winston": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz",
- "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==",
- "dev": true,
- "requires": {
- "async": "^2.6.1",
- "diagnostics": "^1.1.1",
- "is-stream": "^1.1.0",
- "logform": "^2.1.1",
- "one-time": "0.0.4",
- "readable-stream": "^3.1.1",
- "stack-trace": "0.0.x",
- "triple-beam": "^1.3.0",
- "winston-transport": "^4.3.0"
- },
- "dependencies": {
- "async": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
- "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.14"
- }
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true
- },
- "readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "winston-transport": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz",
- "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==",
- "dev": true,
- "requires": {
- "logform": "^2.3.2",
- "readable-stream": "^3.6.0",
- "triple-beam": "^1.3.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true,
- "peer": true
- },
- "wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
- },
- "ws": {
- "version": "8.9.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz",
- "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==",
- "dev": true,
- "requires": {}
- },
- "xmlhttprequest": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
- "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==",
- "dev": true
- },
- "xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "dev": true,
- "requires": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "dependencies": {
- "yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true
- }
- }
- },
- "yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true
- },
- "yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
- "dev": true,
- "requires": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
- },
- "yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "peer": true
- }
- }
-}
diff --git a/package.json b/package.json
deleted file mode 100644
index 9cbf449b..00000000
--- a/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "parse-php-sdk",
- "scripts": {
- "test": "./vendor/bin/phpunit",
- "test-stream": "./vendor/bin/phpunit --bootstrap=./tests/bootstrap-stream.php",
- "test:coverage": "XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-clover=coverage.xml",
- "test-stream:coverage": "XDEBUG_MODE=coverage ./vendor/bin/phpunit --bootstrap=./tests/bootstrap-stream.php --coverage-clover=coverage.xml",
- "lint": "./vendor/bin/phpcs --standard=./phpcs.xml.dist ./src/Parse ./tests/Parse",
- "lint:fix": "./vendor/bin/phpcbf --standard=./phpcs.xml.dist ./src/Parse ./tests/Parse",
- "prestart": "MONGODB_VERSION=4.0.4 MONGODB_TOPOLOGY=replicaset MONGODB_STORAGE_ENGINE=wiredTiger mongodb-runner start",
- "start": "TESTING=1 node ./tests/server.js &",
- "server-only": "TESTING=1 node ./tests/server.js",
- "document-check": "./vendor/bin/phpdoc -d ./src/ --template='default'",
- "document": "./vendor/bin/phpdoc -d ./src/ --title 'Parse PHP SDK API Reference' --template='default'"
- },
- "type": "module",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/parse-community/parse-php-sdk"
- },
- "license": "BSD-3-Clause",
- "homepage": "https://parseplatform.org",
- "devDependencies": {
- "@semantic-release/changelog": "6.0.3",
- "@semantic-release/commit-analyzer": "9.0.2",
- "@semantic-release/exec": "6.0.3",
- "@semantic-release/git": "10.0.1",
- "@semantic-release/github": "8.0.7",
- "@semantic-release/release-notes-generator": "10.0.3",
- "mongodb-runner": "4.8.1",
- "parse-server": "github:parse-community/parse-server#alpha",
- "semantic-release": "21.0.1",
- "winston": "3.2.1"
- },
- "version": "2.4.0"
-}
diff --git a/packages/Default.html b/packages/Default.html
new file mode 100644
index 00000000..e3154c9e
--- /dev/null
+++ b/packages/Default.html
@@ -0,0 +1,121 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/Parse-HttpClients.html b/packages/Parse-HttpClients.html
new file mode 100644
index 00000000..03caad3d
--- /dev/null
+++ b/packages/Parse-HttpClients.html
@@ -0,0 +1,141 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HttpClients
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ ParseHttpable
+ Class ParseHttpable - Interface for an HTTPable client
+
+ ParseCurl
+ Class ParseCurl - Wrapper for abstracted curl usage
+ ParseCurlHttpClient
+ Class ParseCurlHttpClient - Curl http client
+ ParseStream
+ Class ParseStream - Wrapper for abstracted stream usage
+ ParseStreamHttpClient
+ Class ParseStreamHttpClient - Stream http client
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/Parse-Internal.html b/packages/Parse-Internal.html
new file mode 100644
index 00000000..d92f3814
--- /dev/null
+++ b/packages/Parse-Internal.html
@@ -0,0 +1,151 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Internal
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ Encodable
+ Class Encodable - Interface for Parse Classes which provide an encode
+method.
+ FieldOperation
+ Class FieldOperation - Interface for all Parse Field Operations.
+
+ AddOperation
+ Class AddOperation - FieldOperation for adding object(s) to array fields.
+ AddUniqueOperation
+ Class AddUniqueOperation - Operation to add unique objects to an array key.
+ DeleteOperation
+ Class DeleteOperation - FieldOperation to remove a key from an object.
+ IncrementOperation
+ Class IncrementOperation - Operation to increment numeric object key.
+ ParseRelationOperation
+ Class ParseRelationOperation - A class that is used to manage ParseRelation changes such as object add or remove.
+ RemoveOperation
+ Class RemoveOperation - FieldOperation for removing object(s) from array
+fields.
+ SetOperation
+ Class SetOperation - Operation to set a value for an object key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/Parse.html b/packages/Parse.html
new file mode 100644
index 00000000..b23dd263
--- /dev/null
+++ b/packages/Parse.html
@@ -0,0 +1,200 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parse
+
+
+ Packages
+
+
+
+
+ HttpClients
+ Internal
+
+
+
+
+ Interfaces, Classes and Traits
+
+
+
+
+ ParseStorageInterface
+ Class ParseStorageInterface - Specifies an interface for implementing persistence.
+
+ ParseACL
+ Class ParseACL - is used to control which users can access or modify a particular
+object. Each ParseObject can have its own ParseACL. You can grant read and
+write permissions separately to specific users, to groups of users that
+belong to roles, or you can grant permissions to "the public" so that, for
+example, any user could read a particular object but only a particular set
+of users could write to that object.
+ ParseAggregateException
+ Class ParseAggregateException - Multiple error condition.
+ ParseAnalytics
+ Class ParseAnalytics - Handles sending app-open and custom analytics events.
+ ParseAudience
+ Class ParseAudience - Representation of Audience for tracking and sending push notifications
+ ParseBytes
+ Class ParseBytes - Representation of a Byte array for storage on a Parse Object.
+ ParseClient
+ Class ParseClient - Main class for Parse initialization and communication.
+ ParseCloud
+ Class ParseCloud - Facilitates calling Parse Cloud functions.
+ ParseConfig
+ Class ParseConfig - For accessing Parse Config settings.
+ ParseException
+ Class ParseException - Wrapper for \Exception class.
+ ParseFile
+ Class ParseFile - Representation of a Parse File object.
+ ParseGeoPoint
+ Class ParseGeoPoint - Representation of a Parse GeoPoint object.
+ ParseHooks
+ Class ParseHooks - Representation of a Parse Hooks object.
+ ParseInstallation
+ Class ParseInstallation - Representation of an Installation stored on Parse.
+ ParseLogs
+ Class ParseLogs - Allows access to server side parse script logs
+ ParseMemoryStorage
+ Class ParseMemoryStorage - Uses non-persisted memory for storage.
+ ParseObject
+ Class ParseObject - Representation of an object stored on Parse.
+ ParsePolygon
+ ParsePolygon - Representation of a Parse Polygon object.
+ ParsePush
+ Class ParsePush - Handles sending push notifications with Parse.
+ ParsePushStatus
+ Class ParsePushStatus - Representation of PushStatus for push notifications
+ ParseQuery
+ Class ParseQuery - Handles querying data from Parse.
+ ParseRelation
+ Class ParseRelation - A class that is used to access all of the children of a many-to-many relationship.
+ ParseRole
+ Class ParseRole - Representation of an access Role.
+ ParseSchema
+ Class ParseSchema - Handles schemas data from Parse.
+ ParseServerInfo
+ Class ParseFeatures - Representation of server-side features
+ ParseSession
+ Class ParseSession - Representation of an expiring user session.
+ ParseSessionStorage
+ Class ParseSessionStorage - Uses PHP session support for persistent storage.
+ ParseUser
+ Class ParseUser - Representation of a user object stored on Parse.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/default.html b/packages/default.html
new file mode 100644
index 00000000..903dcf68
--- /dev/null
+++ b/packages/default.html
@@ -0,0 +1,130 @@
+
+
+
+
+ Parse PHP SDK API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ API Documentation
+
+
+ Packages
+
+
+
+
+ Default
+ Parse
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/phpcs.xml.dist b/phpcs.xml.dist
deleted file mode 100644
index 011268d7..00000000
--- a/phpcs.xml.dist
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- PHPCS Ignore Rule
-
-
- 0
-
-
- 0
-
-
- 0
-
-
\ No newline at end of file
diff --git a/phpunit.xml b/phpunit.xml
deleted file mode 100644
index 0ca6f6f3..00000000
--- a/phpunit.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- ./tests
-
-
-
-
-
- ./src/Parse
-
-
-
diff --git a/release.config.cjs b/release.config.cjs
deleted file mode 100644
index 18892134..00000000
--- a/release.config.cjs
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * Semantic Release Config
- */
-
-const fs = require('fs').promises;
-const path = require('path');
-
-// Get env vars
-const ref = process.env.GITHUB_REF;
-const serverUrl = process.env.GITHUB_SERVER_URL;
-const repository = process.env.GITHUB_REPOSITORY;
-const repositoryUrl = serverUrl + '/' + repository;
-
-// Declare params
-const resourcePath = './.releaserc/';
-const templates = {
- main: { file: 'template.hbs', text: undefined },
- header: { file: 'header.hbs', text: undefined },
- commit: { file: 'commit.hbs', text: undefined },
- footer: { file: 'footer.hbs', text: undefined },
-};
-
-// Declare semantic config
-async function config() {
-
- // Get branch
- const branch = ref.split('/').pop();
- console.log(`Running on branch: ${branch}`);
-
- // Set changelog file
- //const changelogFile = `./changelogs/CHANGELOG_${branch}.md`;
- const changelogFile = `./CHANGELOG.md`;
- console.log(`Changelog file output to: ${changelogFile}`);
-
- // Load template file contents
- await loadTemplates();
-
- const config = {
- branches: [
- 'master',
- // { name: 'alpha', prerelease: true },
- // { name: 'beta', prerelease: true },
- // 'next-major',
- // Long-Term-Support branches
- // { name: 'release-1', range: '1.x.x', channel: '1.x' },
- // { name: 'release-2', range: '2.x.x', channel: '2.x' },
- // { name: 'release-3', range: '3.x.x', channel: '3.x' },
- // { name: 'release-4', range: '4.x.x', channel: '4.x' },
- ],
- dryRun: false,
- debug: true,
- ci: true,
- tagFormat: '${version}',
- plugins: [
- ['@semantic-release/commit-analyzer', {
- preset: 'angular',
- releaseRules: [
- { type: 'docs', scope: 'README', release: 'patch' },
- { scope: 'no-release', release: false },
- ],
- parserOpts: {
- noteKeywords: [ 'BREAKING CHANGE' ],
- },
- }],
- ['@semantic-release/release-notes-generator', {
- preset: 'angular',
- parserOpts: {
- noteKeywords: ['BREAKING CHANGE']
- },
- writerOpts: {
- commitsSort: ['subject', 'scope'],
- mainTemplate: templates.main.text,
- headerPartial: templates.header.text,
- commitPartial: templates.commit.text,
- footerPartial: templates.footer.text,
- },
- }],
- ['@semantic-release/changelog', {
- 'changelogFile': changelogFile,
- }],
- ["@semantic-release/exec", {
- // Update Parse SDK version
- "prepareCmd": `sed -i'' -r "s/const VERSION_STRING = '.*'/const VERSION_STRING = '\${nextRelease.version}'/" ./src/Parse/ParseClient.php`
- }],
- ['@semantic-release/npm', {
- 'npmPublish': false,
- }],
- ['@semantic-release/git', {
- assets: [changelogFile, 'package.json', 'package-lock.json', ['src/Parse/ParseClient.php'] ],
- }],
- ['@semantic-release/github', {
- successComment: getReleaseComment(),
- labels: ['type:ci'],
- releasedLabels: ['state:released<%= nextRelease.channel ? `-\${nextRelease.channel}` : "" %>']
- }],
- ],
- };
-
- return config;
-}
-
-async function loadTemplates() {
- for (const template of Object.keys(templates)) {
- const text = await readFile(path.resolve(__dirname, resourcePath, templates[template].file));
- templates[template].text = text;
- }
-}
-
-async function readFile(filePath) {
- return await fs.readFile(filePath, 'utf-8');
-}
-
-function getReleaseComment() {
- const url = repositoryUrl + '/releases/tag/${nextRelease.gitTag}';
- let comment = '🎉 This change has been released in version [${nextRelease.version}](' + url + ')';
- return comment;
-}
-
-module.exports = config();
diff --git a/reports/deprecated.html b/reports/deprecated.html
new file mode 100644
index 00000000..a39608bb
--- /dev/null
+++ b/reports/deprecated.html
@@ -0,0 +1,119 @@
+
+
+
+
+ Parse PHP SDK API Reference » Deprecated elements
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Deprecated
+
+
+
+ No deprecated elements have been found in this project.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reports/errors.html b/reports/errors.html
new file mode 100644
index 00000000..fbfcef70
--- /dev/null
+++ b/reports/errors.html
@@ -0,0 +1,118 @@
+
+
+
+
+ Parse PHP SDK API Reference » Compilation errors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Errors
+
+
+
No errors have been found in this project.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reports/markers.html b/reports/markers.html
new file mode 100644
index 00000000..467c1985
--- /dev/null
+++ b/reports/markers.html
@@ -0,0 +1,119 @@
+
+
+
+
+ Parse PHP SDK API Reference » Markers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Markers
+
+
+ No markers have been found in this project.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Parse/HttpClients/ParseCurl.php b/src/Parse/HttpClients/ParseCurl.php
deleted file mode 100644
index 17cf2fbc..00000000
--- a/src/Parse/HttpClients/ParseCurl.php
+++ /dev/null
@@ -1,142 +0,0 @@
-
- * @package Parse\HttpClients
- */
-class ParseCurl
-{
- /**
- * Curl handle
- *
- * @var resource
- */
- private $curl;
-
- /**
- * Sets up a new curl instance internally if needed
- */
- public function init()
- {
- if ($this->curl === null) {
- $this->curl = curl_init();
- }
- }
-
- /**
- * Executes this curl request
- *
- * @return mixed
- * @throws ParseException
- */
- public function exec()
- {
- if (!isset($this->curl)) {
- throw new ParseException('You must call ParseCurl::init first');
- }
-
- return curl_exec($this->curl);
- }
-
- /**
- * Sets a curl option
- *
- * @param int $option Option to set
- * @param mixed $value Value to set for this option
- * @throws ParseException
- */
- public function setOption($option, $value)
- {
- if (!isset($this->curl)) {
- throw new ParseException('You must call ParseCurl::init first');
- }
-
- curl_setopt($this->curl, $option, $value);
- }
-
- /**
- * Sets multiple curl options
- *
- * @param array $options Array of options to set
- * @throws ParseException
- */
- public function setOptionsArray($options)
- {
- if (!isset($this->curl)) {
- throw new ParseException('You must call ParseCurl::init first');
- }
-
- curl_setopt_array($this->curl, $options);
- }
-
- /**
- * Gets info for this curl handle
- *
- * @param int $info Constant for info to get
- * @return mixed
- * @throws ParseException
- */
- public function getInfo($info)
- {
- if (!isset($this->curl)) {
- throw new ParseException('You must call ParseCurl::init first');
- }
-
- return curl_getinfo($this->curl, $info);
- }
-
- /**
- * Gets the curl error message
- *
- * @return string
- * @throws ParseException
- */
- public function getError()
- {
- if (!isset($this->curl)) {
- throw new ParseException('You must call ParseCurl::init first');
- }
-
- return curl_error($this->curl);
- }
-
- /**
- * Gets the curl error code
- *
- * @return int
- * @throws ParseException
- */
- public function getErrorCode()
- {
- if (!isset($this->curl)) {
- throw new ParseException('You must call ParseCurl::init first');
- }
-
- return curl_errno($this->curl);
- }
-
- /**
- * Closed our curl handle and disposes of it
- */
- public function close()
- {
- if (!isset($this->curl)) {
- throw new ParseException('You must call ParseCurl::init first');
- }
-
- // close our handle
- curl_close($this->curl);
-
- // unset our curl handle
- $this->curl = null;
- }
-}
diff --git a/src/Parse/HttpClients/ParseCurlHttpClient.php b/src/Parse/HttpClients/ParseCurlHttpClient.php
deleted file mode 100644
index e9337dad..00000000
--- a/src/Parse/HttpClients/ParseCurlHttpClient.php
+++ /dev/null
@@ -1,376 +0,0 @@
-
- * @package Parse\HttpClients
- */
-class ParseCurlHttpClient implements ParseHttpable
-{
- /**
- * Curl handle
- *
- * @var ParseCurl
- */
- private $parseCurl;
-
- /**
- * Request Headers
- *
- * @var array
- */
- private $headers = array();
-
- /**
- * Response headers
- *
- * @var array
- */
- private $responseHeaders = array();
-
- /**
- * Response code
- *
- * @var int
- */
- private $responseCode = 0;
-
- /**
- * Content type of our response
- *
- * @var string|null
- */
- private $responseContentType;
-
- /**
- * cURL error code
- *
- * @var int
- */
- private $curlErrorCode;
-
- /**
- * cURL error message
- *
- * @var string
- */
- private $curlErrorMessage;
-
- /**
- * @const Curl Version which is unaffected by the proxy header length error.
- */
- const CURL_PROXY_QUIRK_VER = 0x071E00;
-
- /**
- * @const "Connection Established" header text
- */
- const CONNECTION_ESTABLISHED = "HTTP/1.0 200 Connection established\r\n\r\n";
-
- /**
- * Response from our request
- *
- * @var string
- */
- private $response;
-
- /**
- * ParseCurlHttpClient constructor.
- */
- public function __construct()
- {
- if (!isset($this->parseCurl)) {
- $this->parseCurl = new ParseCurl();
- }
- }
-
- /**
- * Adds a header to this request
- *
- * @param string $key Header name
- * @param string $value Header value
- */
- public function addRequestHeader($key, $value)
- {
- $this->headers[$key] = $value;
- }
-
- /**
- * Builds and returns the coalesced request headers
- *
- * @return array
- */
- private function buildRequestHeaders()
- {
- // coalesce our header key/value pairs
- $headers = [];
- foreach ($this->headers as $key => $value) {
- $headers[] = $key.': '.$value;
- }
-
- return $headers;
- }
-
- /**
- * Gets headers in the response
- *
- * @return array
- */
- public function getResponseHeaders()
- {
- return $this->responseHeaders;
- }
-
- /**
- * Returns the status code of the response
- *
- * @return int
- */
- public function getResponseStatusCode()
- {
- return $this->responseCode;
- }
-
- /**
- * Returns the content type of the response
- *
- * @return null|string
- */
- public function getResponseContentType()
- {
- return $this->responseContentType;
- }
-
- /**
- * Sets up our cURL request in advance
- */
- public function setup() : void
- {
- // init parse curl
- $this->parseCurl->init();
-
- $this->parseCurl->setOptionsArray(array(
- CURLOPT_RETURNTRANSFER => 1,
- CURLOPT_HEADER => 1,
- CURLOPT_FOLLOWLOCATION => true,
- CURLOPT_SSL_VERIFYPEER => true,
- CURLOPT_SSL_VERIFYHOST => 2,
- ));
- }
-
- /**
- * Sends an HTTP request
- *
- * @param string $url Url to send this request to
- * @param string $method Method to send this request via
- * @param array $data Data to send in this request
- * @return string
- * @throws ParseException
- */
- public function send($url, $method = 'GET', $data = array())
- {
-
- if ($method == "GET" && !empty($data)) {
- // handle get
- $url .= '?'.http_build_query($data, '', '&');
- } elseif ($method == "POST") {
- // handle post
- $this->parseCurl->setOptionsArray(array(
- CURLOPT_POST => 1,
- CURLOPT_POSTFIELDS => $data
- ));
- } elseif ($method == "PUT") {
- // handle put
- $this->parseCurl->setOptionsArray(array(
- CURLOPT_CUSTOMREQUEST => $method,
- CURLOPT_POSTFIELDS => $data
- ));
- } elseif ($method == "DELETE") {
- // handle delete
- $this->parseCurl->setOption(CURLOPT_CUSTOMREQUEST, $method);
- }
-
- if (count($this->headers) > 0) {
- // set our custom request headers
- $this->parseCurl->setOption(CURLOPT_HTTPHEADER, $this->buildRequestHeaders());
- }
-
- // set url
- $this->parseCurl->setOption(CURLOPT_URL, $url);
-
- // perform our request and get our response
- $this->response = $this->parseCurl->exec();
-
- // get our response code
- $this->responseCode = $this->parseCurl->getInfo(CURLINFO_HTTP_CODE);
-
- // get our content type
- $this->responseContentType = $this->parseCurl->getInfo(CURLINFO_CONTENT_TYPE);
-
- // get any error code and message
- $this->curlErrorMessage = $this->parseCurl->getError();
- $this->curlErrorCode = $this->parseCurl->getErrorCode();
-
- // calculate size of our headers
- $headerSize = $this->getHeaderSize();
-
- // get and set response headers
- $headerContent = trim(substr($this->response, 0, $headerSize));
- $this->responseHeaders = $this->getHeadersArray($headerContent);
-
- // get our final response
- $response = trim(substr($this->response, $headerSize));
-
- // close our handle
- $this->parseCurl->close();
-
- // flush our existing headers
- $this->headers = array();
-
- return $response;
- }
-
- /**
- * Convert and return response headers as an array
- * @param string $headerContent Raw headers to parse
- *
- * @return array
- */
- private function getHeadersArray($headerContent)
- {
- $headers = [];
-
- // normalize our line breaks
- $headerContent = str_replace("\r\n", "\n", $headerContent);
-
- // Separate our header sets, particularly if we followed a 301 redirect
- $headersSet = explode("\n\n", $headerContent);
-
- // Get the last set of headers, ignoring all others
- $rawHeaders = array_pop($headersSet);
-
- // sepearate our header components
- $headerComponents = explode("\n", $rawHeaders);
-
- foreach ($headerComponents as $component) {
- if (strpos($component, ': ') === false) {
- // set our http_code
- $headers['http_code'] = $component;
- } else {
- // set this header key/value pair
- list($key, $value) = explode(': ', $component);
- $headers[$key] = $value;
- }
- }
-
- // return our completed headers
- return $headers;
- }
-
-
- /**
- * Sets the connection timeout
- *
- * @param int $timeout Timeout to set
- */
- public function setConnectionTimeout($timeout)
- {
- $this->parseCurl->setOption(CURLOPT_CONNECTTIMEOUT, $timeout);
- }
-
- /**
- * Sets the request timeout
- *
- * @param int $timeout Sets the timeout for the request
- */
- public function setTimeout($timeout)
- {
- $this->parseCurl->setOption(CURLOPT_TIMEOUT, $timeout);
- }
-
- /**
- * Sets the CA file to validate requests with
- *
- * @param string $caFile CA file to set
- */
- public function setCAFile($caFile)
- {
- // name of a file holding one or more certificates to verify the peer with
- $this->parseCurl->setOption(CURLOPT_CAINFO, $caFile);
- }
-
- /**
- * Sets multiple curl options
- * https://www.php.net/manual/en/function.curl-setopt.php
- *
- * @param array $options Array of options to set
- * @throws ParseException
- */
- public function setHttpOptions($options)
- {
- $this->parseCurl->setOptionsArray($options);
- }
-
- /**
- * Gets the error code
- *
- * @return int
- */
- public function getErrorCode()
- {
- return $this->curlErrorCode;
- }
-
- /**
- * Gets the error message
- *
- * @return string
- */
- public function getErrorMessage()
- {
- return $this->curlErrorMessage;
- }
-
- /**
- * Return proper header size
- *
- * @return integer
- */
- private function getHeaderSize()
- {
- $headerSize = $this->parseCurl->getInfo(CURLINFO_HEADER_SIZE);
-
- // This corrects a Curl bug where header size does not account
- // for additional Proxy headers.
- if ($this->needsCurlProxyFix()) {
- // Additional way to calculate the request body size.
- if (preg_match('/Content-Length: (\d+)/', $this->response, $match)) {
- $headerSize = mb_strlen($this->response) - $match[1];
- } elseif (stripos($this->response, self::CONNECTION_ESTABLISHED) !== false) {
- $headerSize += mb_strlen(self::CONNECTION_ESTABLISHED);
- }
- }
- return $headerSize;
- }
-
- /**
- * Detect versions of Curl which report incorrect header lengths when
- * using Proxies.
- *
- * @return boolean
- */
- private function needsCurlProxyFix()
- {
- $versionDat = curl_version();
- $version = $versionDat['version_number'];
-
- return $version < self::CURL_PROXY_QUIRK_VER;
- }
-}
diff --git a/src/Parse/HttpClients/ParseHttpable.php b/src/Parse/HttpClients/ParseHttpable.php
deleted file mode 100644
index 7025cf45..00000000
--- a/src/Parse/HttpClients/ParseHttpable.php
+++ /dev/null
@@ -1,101 +0,0 @@
-
- * @package Parse\HttpClients
- */
-interface ParseHttpable
-{
- /**
- * Adds a header to this request
- *
- * @param string $key Header name
- * @param string $value Header value
- */
- public function addRequestHeader($key, $value);
-
- /**
- * Gets headers in the response
- *
- * @return array
- */
- public function getResponseHeaders();
-
- /**
- * Returns the status code of the response
- *
- * @return int
- */
- public function getResponseStatusCode();
-
- /**
- * Returns the content type of the response
- *
- * @return null|string
- */
- public function getResponseContentType();
-
- /**
- * Sets the connection timeout
- *
- * @param int $timeout Timeout to set
- */
- public function setConnectionTimeout($timeout);
-
- /**
- * Sets the request timeout
- *
- * @param int $timeout Sets the timeout for the request
- */
- public function setTimeout($timeout);
-
- /**
- * Sets the CA file to validate requests with
- *
- * @param string $caFile CA file to set
- */
- public function setCAFile($caFile);
-
- /**
- * Sets http options to pass to the http client
- *
- * @param string $httpOptions Options to set
- */
- public function setHttpOptions($httpOptions);
-
- /**
- * Gets the error code
- *
- * @return int
- */
- public function getErrorCode();
-
- /**
- * Gets the error message
- *
- * @return string
- */
- public function getErrorMessage();
-
- /**
- * Sets up our client before we make a request
- */
- public function setup() : void;
-
- /**
- * Sends an HTTP request
- *
- * @param string $url Url to send this request to
- * @param string $method Method to send this request via
- * @param array $data Data to send in this request
- * @return string
- */
- public function send($url, $method = 'GET', $data = array());
-}
diff --git a/src/Parse/HttpClients/ParseStream.php b/src/Parse/HttpClients/ParseStream.php
deleted file mode 100644
index b6845f70..00000000
--- a/src/Parse/HttpClients/ParseStream.php
+++ /dev/null
@@ -1,116 +0,0 @@
-
- * @package Parse\HttpClients
- */
-class ParseStream
-{
- /**
- * Stream context
- *
- * @var resource
- */
- private $stream;
-
- /**
- * Response headers
- *
- * @var array|null
- */
- private $responseHeaders;
-
- /**
- * Error message
- *
- * @var string
- */
- private $errorMessage;
-
- /**
- * Error code
- *
- * @var int
- */
- private $errorCode;
-
- /**
- * Create a stream context
- *
- * @param array $options Options to pass to our context
- */
- public function createContext($options)
- {
- $this->stream = stream_context_create($options);
- }
-
- /**
- * Gets the contents from the given url
- *
- * @param string $url Url to get contents of
- * @return string
- */
- public function get($url)
- {
- try {
- // get our response
- $response = $this->getFileContents($url, false, $this->stream);
- $this->errorMessage = null;
- $this->errorCode = null;
- } catch (\Exception $e) {
- // set our error message/code and return false
- $this->errorMessage = $e->getMessage();
- $this->errorCode = $e->getCode();
- $this->responseHeaders = null;
- return false;
- }
- return $response;
- }
-
- /**
- * Returns the response headers for the last request
- *
- * @return array
- */
- public function getResponseHeaders()
- {
- return $this->responseHeaders;
- }
-
- /**
- * Gets the current error message
- *
- * @return string
- */
- public function getErrorMessage()
- {
- return $this->errorMessage;
- }
-
- /**
- * Get the current error code
- *
- * @return int
- */
- public function getErrorCode()
- {
- return $this->errorCode;
- }
-
- /**
- * Wrapper for file_get_contents, used for testing
- */
- public function getFileContents($filename, $use_include_path, $context)
- {
- $result = file_get_contents($filename, $use_include_path, $context);
- $this->responseHeaders = $http_response_header;
- return $result;
- }
-}
diff --git a/src/Parse/HttpClients/ParseStreamHttpClient.php b/src/Parse/HttpClients/ParseStreamHttpClient.php
deleted file mode 100644
index 62259904..00000000
--- a/src/Parse/HttpClients/ParseStreamHttpClient.php
+++ /dev/null
@@ -1,385 +0,0 @@
-
- * @package Parse\HttpClients
- */
-class ParseStreamHttpClient implements ParseHttpable
-{
- /**
- * Stream handle
- *
- * @var ParseStream
- */
- private $parseStream;
-
- /**
- * Request Headers
- *
- * @var array
- */
- private $headers = array();
-
- /**
- * Response headers
- *
- * @var array
- */
- private $responseHeaders = array();
-
- /**
- * Response code
- *
- * @var int
- */
- private $responseCode = 0;
-
- /**
- * Content type of our response
- *
- * @var string|null
- */
- private $responseContentType;
-
- /**
- * Stream error code
- *
- * @var int
- */
- private $streamErrorCode;
-
- /**
- * Stream error message
- *
- * @var string
- */
- private $streamErrorMessage;
-
- /**
- * Options to pass to our stream
- *
- * @var array
- */
- private $options = array();
-
- /**
- * Optional CA file to verify our peers with
- *
- * @var string
- */
- private $caFile;
-
- /**
- * Options to pass to the stream context.
- *
- * @var array
- */
- private $httpOptions;
-
- /**
- * Optional timeout for this request
- *
- * @var int
- */
- private $timeout;
-
- /**
- * ParseStreamHttpClient constructor.
- */
- public function __construct()
- {
- if (!isset($this->parseStream)) {
- $this->parseStream = new ParseStream();
- }
- }
-
-
-
- /**
- * Adds a header to this request
- *
- * @param string $key Header name
- * @param string $value Header value
- */
- public function addRequestHeader($key, $value)
- {
- $this->headers[$key] = $value;
- }
-
- /**
- * Gets headers in the response
- *
- * @return array
- */
- public function getResponseHeaders()
- {
- return $this->responseHeaders;
- }
-
- /**
- * Returns the status code of the response
- *
- * @return int
- */
- public function getResponseStatusCode()
- {
- return $this->responseCode;
- }
-
- /**
- * Returns the content type of the response
- *
- * @return null|string
- */
- public function getResponseContentType()
- {
- return $this->responseContentType;
- }
-
- /**
- * Builds and returns the coalesced request headers
- *
- * @return array
- */
- private function buildRequestHeaders()
- {
- // coalesce our header key/value pairs
- $headers = [];
- foreach ($this->headers as $key => $value) {
- if ($key == 'Expect' && $value == '') {
- // drop this pair
- continue;
- }
-
- // add this header key/value pair
- $headers[] = $key.': '.$value;
- }
-
- return implode("\r\n", $headers);
- }
-
- /**
- * Sets up ssl related options for the stream context
- */
- public function setup() : void
- {
- // setup ssl options
- $this->options['ssl'] = array(
- 'verify_peer' => true,
- 'verify_peer_name' => true,
- 'allow_self_signed' => true // All root certificates are self-signed
- );
- }
-
- /**
- * Sends an HTTP request
- *
- * @param string $url Url to send this request to
- * @param string $method Method to send this request via
- * @param array $data Data to send in this request
- * @return string
- * @throws ParseException
- */
- public function send($url, $method = 'GET', $data = array())
- {
-
- // verify this url
- if (preg_match('/\s/', trim($url))) {
- throw new ParseException('Url may not contain spaces for stream client: '.$url);
- }
-
- if (isset($this->caFile)) {
- // set CA file as well
- $this->options['ssl']['cafile'] = $this->caFile;
- }
-
- if (isset($this->httpOptions)) {
- foreach ($this->httpOptions as $key => $value) {
- $this->options[$key] = $value;
- }
- }
-
- // add additional options for this request
- $this->options['http'] = array(
- 'method' => $method,
- 'ignore_errors' => true
- );
-
- if (isset($this->timeout)) {
- $this->options['http']['timeout'] = $this->timeout;
- }
-
- if (isset($data) && $data != "{}") {
- if ($method == "GET") {
- // handle GET
- $url.='?'.http_build_query($data, '', '&');
- $this->addRequestHeader('Content-type', 'application/x-www-form-urlencoded');
- } elseif ($method == "POST") {
- // handle POST
- $this->options['http']['content'] = $data;
- } elseif ($method == "PUT") {
- // handle PUT
- $this->options['http']['content'] = $data;
- }
- }
-
- // set headers
- if (!defined('HHVM_VERSION')) {
- // default
- $this->options['http']['header'] = $this->buildRequestHeaders();
- } else {
- /**
- * HHVM bug bypass
- * Passing via 'header' ends up duplicating all custom headers submitted due to a bug in HHVM.
- * We can bypass this through the separate 'user_agent' field, as it is never sanitized,
- * so we can append our desired headers after the initial user-agent string.
- * Note that this works in php5 as well (probably 7 and up too),
- * but for now we use this only where we need it.
- * Source: https://github.com/facebook/hhvm/blob/master/hphp/runtime/base/http-stream-wrapper.cpp#L92
- */
- $this->options['http']['user_agent'] = "parse-php-sdk\r\n".$this->buildRequestHeaders();
- }
-
- // create a stream context
- $this->parseStream->createContext($this->options);
-
- // send our request
- $response = $this->parseStream->get($url);
-
- // get our response headers
- $rawHeaders = $this->parseStream->getResponseHeaders();
-
- // set any error and code
- $this->streamErrorMessage = $this->parseStream->getErrorMessage();
- $this->streamErrorCode = $this->parseStream->getErrorCode();
-
- if ($response !== false && $rawHeaders) {
- // set our response headers
- $this->responseHeaders = self::formatHeaders($rawHeaders);
-
- // get and set content type, if present
- if (isset($this->responseHeaders['Content-Type'])) {
- $this->responseContentType = $this->responseHeaders['Content-Type'];
- }
-
- // set our http status code
- $this->responseCode = self::getStatusCodeFromHeader($this->responseHeaders['http_code']);
- }
-
- // clear options
- $this->options = array();
- $this->httpOptions = array();
-
- // flush our existing headers
- $this->headers = array();
-
- return $response;
- }
-
- /**
- * Converts unformatted headers to an array of headers
- *
- * @param array $rawHeaders
- *
- * @return array
- */
- public static function formatHeaders(array $rawHeaders)
- {
- $headers = array();
-
- foreach ($rawHeaders as $line) {
- if (strpos($line, ':') === false) {
- // set our http status code
- $headers['http_code'] = $line;
- } else {
- // set this header entry
- list ($key, $value) = explode(': ', $line);
- $headers[$key] = $value;
- }
- }
-
- return $headers;
- }
- /**
- * Extracts the Http status code from the given header
- *
- * @param string $header
- *
- * @return int
- */
- public static function getStatusCodeFromHeader($header)
- {
- preg_match('{HTTP/\d\.\d\s+(\d+)\s+.*}', $header, $match);
- return (int) $match[1];
- }
-
- /**
- * Gets the error code
- *
- * @return int
- */
- public function getErrorCode()
- {
- return $this->streamErrorCode;
- }
-
- /**
- * Gets the error message
- *
- * @return string
- */
- public function getErrorMessage()
- {
- return $this->streamErrorMessage;
- }
-
- /**
- * Sets a connection timeout. UNUSED in the stream client.
- *
- * @param int $timeout Timeout to set
- */
- public function setConnectionTimeout($timeout)
- {
- // do nothing
- }
-
- /**
- * Sets the CA file to validate requests with
- *
- * @param string $caFile CA file to set
- */
- public function setCAFile($caFile)
- {
- $this->caFile = $caFile;
- }
-
- /**
- * Sets http options to pass to the stream context
- * https://www.php.net/manual/en/context.php
- *
- * @param array $httpOptions options to set
- */
- public function setHttpOptions($httpOptions)
- {
- $this->httpOptions = $httpOptions;
- }
-
- /**
- * Sets the request timeout
- *
- * @param int $timeout Sets the timeout for the request
- */
- public function setTimeout($timeout)
- {
- $this->timeout = $timeout;
- }
-}
diff --git a/src/Parse/Internal/AddOperation.php b/src/Parse/Internal/AddOperation.php
deleted file mode 100755
index 43787ca8..00000000
--- a/src/Parse/Internal/AddOperation.php
+++ /dev/null
@@ -1,115 +0,0 @@
-
- * @package Parse\Internal
- */
-class AddOperation implements FieldOperation
-{
- /**
- * Array with objects to add.
- *
- * @var array
- */
- private $objects;
-
- /**
- * Creates an AddOperation with the provided objects.
- *
- * @param array $objects Objects to add.
- *
- * @throws ParseException
- */
- public function __construct($objects)
- {
- if (!is_array($objects)) {
- throw new ParseException('AddOperation requires an array.');
- }
- $this->objects = $objects;
- }
-
- /**
- * Gets the objects for this operation.
- *
- * @return mixed
- */
- public function getValue()
- {
- return $this->objects;
- }
-
- /**
- * Returns associative array representing encoded operation.
- *
- * @return array
- */
- public function _encode()
- {
- return ['__op' => 'Add',
- 'objects' => ParseClient::_encode($this->objects, true), ];
- }
-
- /**
- * Takes a previous operation and returns a merged operation to replace it.
- *
- * @param FieldOperation $previous Previous operation.
- *
- * @throws ParseException
- *
- * @return FieldOperation Merged operation.
- */
- public function _mergeWithPrevious($previous)
- {
- if (!$previous) {
- return $this;
- }
- if ($previous instanceof DeleteOperation) {
- return new SetOperation($this->objects);
- }
- if ($previous instanceof SetOperation) {
- $oldList = $previous->getValue();
-
- return new SetOperation(
- array_merge((array) $oldList, (array) $this->objects)
- );
- }
- if ($previous instanceof self) {
- $oldList = $previous->getValue();
-
- return new SetOperation(
- array_merge((array) $oldList, (array) $this->objects)
- );
- }
- throw new ParseException(
- 'Operation is invalid after previous operation.'
- );
- }
-
- /**
- * Applies current operation, returns resulting value.
- *
- * @param mixed $oldValue Value prior to this operation.
- * @param mixed $obj Value being applied.
- * @param string $key Key this operation affects.
- *
- * @return array
- */
- public function _apply($oldValue, $obj, $key)
- {
- if (!$oldValue) {
- return $this->objects;
- }
-
- return array_merge((array) $oldValue, (array) $this->objects);
- }
-}
diff --git a/src/Parse/Internal/AddUniqueOperation.php b/src/Parse/Internal/AddUniqueOperation.php
deleted file mode 100755
index 4311f6e1..00000000
--- a/src/Parse/Internal/AddUniqueOperation.php
+++ /dev/null
@@ -1,152 +0,0 @@
-
- * @package Parse\Internal
- */
-class AddUniqueOperation implements FieldOperation
-{
- /**
- * Array containing objects to add.
- *
- * @var array
- */
- private $objects;
-
- /**
- * Creates an operation for adding unique values to an array key.
- *
- * @param array $objects Objects to add.
- *
- * @throws ParseException
- */
- public function __construct($objects)
- {
- if (!is_array($objects)) {
- throw new ParseException('AddUniqueOperation requires an array.');
- }
- $this->objects = $objects;
- }
-
- /**
- * Returns the values for this operation.
- *
- * @return mixed
- */
- public function getValue()
- {
- return $this->objects;
- }
-
- /**
- * Returns an associative array encoding of this operation.
- *
- * @return array
- */
- public function _encode()
- {
- return ['__op' => 'AddUnique',
- 'objects' => ParseClient::_encode($this->objects, true), ];
- }
-
- /**
- * Merge this operation with the previous operation and return the result.
- *
- * @param FieldOperation $previous Previous Operation.
- *
- * @throws ParseException
- *
- * @return FieldOperation Merged Operation.
- */
- public function _mergeWithPrevious($previous)
- {
- if (!$previous) {
- return $this;
- }
- if ($previous instanceof DeleteOperation) {
- return new SetOperation($this->objects);
- }
- if ($previous instanceof SetOperation) {
- $oldValue = $previous->getValue();
- $result = $this->_apply($oldValue, null, null);
-
- return new SetOperation($result);
- }
- if ($previous instanceof self) {
- $oldList = $previous->getValue();
- $result = $this->_apply($oldList, null, null);
-
- return new self($result);
- }
- throw new ParseException(
- 'Operation is invalid after previous operation.'
- );
- }
-
- /**
- * Apply the current operation and return the result.
- *
- * @param mixed $oldValue Value prior to this operation.
- * @param array $obj Value being applied.
- * @param string $key Key this operation affects.
- *
- * @return array
- */
- public function _apply($oldValue, $obj, $key)
- {
- if (!$oldValue) {
- return $this->objects;
- }
- if (!is_array($oldValue)) {
- $oldValue = (array) $oldValue;
- }
- foreach ($this->objects as $object) {
- if ($object instanceof ParseObject && $object->getObjectId()) {
- if (!$this->isParseObjectInArray($object, $oldValue)) {
- $oldValue[] = $object;
- }
- } elseif (is_object($object)) {
- if (!in_array($object, $oldValue, true)) {
- $oldValue[] = $object;
- }
- } else {
- if (!in_array($object, $oldValue, true)) {
- $oldValue[] = $object;
- }
- }
- }
-
- return $oldValue;
- }
-
- /**
- * Checks if a parse object is contained in a given array of values
- *
- * @param ParseObject $parseObject ParseObject to check for existence of
- * @param array $oldValue Array to check if ParseObject is present in
- * @return bool
- */
- private function isParseObjectInArray($parseObject, $oldValue)
- {
- foreach ($oldValue as $object) {
- if ($object instanceof ParseObject && $object->getObjectId() != null) {
- if ($object->getObjectId() == $parseObject->getObjectId()) {
- return true;
- }
- }
- }
-
- return false;
- }
-}
diff --git a/src/Parse/Internal/DeleteOperation.php b/src/Parse/Internal/DeleteOperation.php
deleted file mode 100755
index 670ac0b9..00000000
--- a/src/Parse/Internal/DeleteOperation.php
+++ /dev/null
@@ -1,51 +0,0 @@
-
- * @package Parse\Internal
- */
-class DeleteOperation implements FieldOperation
-{
- /**
- * Returns an associative array encoding of the current operation.
- *
- * @return array Associative array encoding the operation.
- */
- public function _encode()
- {
- return ['__op' => 'Delete'];
- }
-
- /**
- * Applies the current operation and returns the result.
- *
- * @param mixed $oldValue Value prior to this operation.
- * @param mixed $object Unused for this operation type.
- * @param string $key Key to remove from the target object.
- *
- * @return null
- */
- public function _apply($oldValue, $object, $key)
- {
- return;
- }
-
- /**
- * Merge this operation with a previous operation and return the result.
- *
- * @param FieldOperation $previous Previous operation.
- *
- * @return FieldOperation Always returns the current operation.
- */
- public function _mergeWithPrevious($previous)
- {
- return $this;
- }
-}
diff --git a/src/Parse/Internal/Encodable.php b/src/Parse/Internal/Encodable.php
deleted file mode 100644
index c3ccc0f5..00000000
--- a/src/Parse/Internal/Encodable.php
+++ /dev/null
@@ -1,23 +0,0 @@
-
- * @package Parse\Internal
- */
-interface Encodable
-{
- /**
- * Returns an associate array encoding of the implementing class.
- *
- * @return mixed
- */
- public function _encode();
-}
diff --git a/src/Parse/Internal/FieldOperation.php b/src/Parse/Internal/FieldOperation.php
deleted file mode 100755
index 9b396b46..00000000
--- a/src/Parse/Internal/FieldOperation.php
+++ /dev/null
@@ -1,36 +0,0 @@
-
- * @package Parse\Internal
- */
-interface FieldOperation extends Encodable
-{
- /**
- * Applies the current operation and returns the result.
- *
- * @param mixed $oldValue Value prior to this operation.
- * @param mixed $object Value for this operation.
- * @param string $key Key to perform this operation on.
- *
- * @return mixed Result of the operation.
- */
- public function _apply($oldValue, $object, $key);
-
- /**
- * Merge this operation with a previous operation and return the new
- * operation.
- *
- * @param FieldOperation $previous Previous operation.
- *
- * @return FieldOperation Merged operation result.
- */
- public function _mergeWithPrevious($previous);
-}
diff --git a/src/Parse/Internal/IncrementOperation.php b/src/Parse/Internal/IncrementOperation.php
deleted file mode 100755
index ab03d781..00000000
--- a/src/Parse/Internal/IncrementOperation.php
+++ /dev/null
@@ -1,105 +0,0 @@
-
- * @package Parse\Internal
- */
-class IncrementOperation implements FieldOperation
-{
- /**
- * Amount to increment by.
- *
- * @var int
- */
- private $value;
-
- /**
- * Creates an IncrementOperation object.
- *
- * @param int $value Amount to increment by.
- */
- public function __construct($value = 1)
- {
- $this->value = $value;
- }
-
- /**
- * Get the value for this operation.
- *
- * @return int
- */
- public function getValue()
- {
- return $this->value;
- }
-
- /**
- * Get an associative array encoding for this operation.
- *
- * @return array
- */
- public function _encode()
- {
- return ['__op' => 'Increment', 'amount' => $this->value];
- }
-
- /**
- * Apply the current operation and return the result.
- *
- * @param mixed $oldValue Value prior to this operation.
- * @param mixed $object Value for this operation.
- * @param string $key Key to set Value on.
- *
- * @throws ParseException
- *
- * @return int New value after application.
- */
- public function _apply($oldValue, $object, $key)
- {
- if ($oldValue && !is_numeric($oldValue)) {
- throw new ParseException('Cannot increment a non-number type.');
- }
-
- return $oldValue + $this->value;
- }
-
- /**
- * Merge this operation with a previous operation and return the
- * resulting operation.
- *
- * @param FieldOperation $previous Previous Operation.
- *
- * @throws ParseException
- *
- * @return FieldOperation
- */
- public function _mergeWithPrevious($previous)
- {
- if (!$previous) {
- return $this;
- }
- if ($previous instanceof DeleteOperation) {
- return new SetOperation($this->value);
- }
- if ($previous instanceof SetOperation) {
- return new SetOperation($previous->getValue() + $this->value);
- }
- if ($previous instanceof self) {
- return new self(
- $previous->getValue() + $this->value
- );
- }
- throw new ParseException(
- 'Operation is invalid after previous operation.'
- );
- }
-}
diff --git a/src/Parse/Internal/ParseRelationOperation.php b/src/Parse/Internal/ParseRelationOperation.php
deleted file mode 100644
index be264422..00000000
--- a/src/Parse/Internal/ParseRelationOperation.php
+++ /dev/null
@@ -1,328 +0,0 @@
-
- * @package Parse\Internal
- */
-class ParseRelationOperation implements FieldOperation
-{
- /**
- * The className of the target objects.
- *
- * @var string
- */
- private $targetClassName;
-
- /**
- * Array of objects to add to this relation.
- *
- * @var array
- */
- private $relationsToAdd = [];
-
- /**
- * Array of objects to remove from this relation.
- *
- * @var array
- */
- private $relationsToRemove = [];
-
- /**
- * ParseRelationOperation constructor.
- *
- * @param ParseObject|ParseObject[] $objectsToAdd ParseObjects to add
- * @param ParseObject|ParseObject[] $objectsToRemove ParseObjects to remove
- * @throws Exception
- */
- public function __construct($objectsToAdd, $objectsToRemove)
- {
- $this->targetClassName = null;
- $this->relationsToAdd['null'] = [];
- $this->relationsToRemove['null'] = [];
- if ($objectsToAdd !== null) {
- $this->checkAndAssignClassName($objectsToAdd);
- $this->addObjects($objectsToAdd, $this->relationsToAdd);
- }
- if ($objectsToRemove !== null) {
- $this->checkAndAssignClassName($objectsToRemove);
- $this->addObjects($objectsToRemove, $this->relationsToRemove);
- }
- if ($this->targetClassName === null) {
- throw new Exception('Cannot create a ParseRelationOperation with no objects.');
- }
- }
-
- /**
- * Helper function to check that all passed ParseObjects have same class name
- * and assign targetClassName variable.
- *
- * @param array $objects ParseObject array.
- *
- * @throws \Exception
- */
- private function checkAndAssignClassName($objects)
- {
- if (!is_array($objects)) {
- $objects = [$objects];
- }
-
- foreach ($objects as $object) {
- if ($this->targetClassName === null) {
- $this->targetClassName = $object->getClassName();
- }
- if ($this->targetClassName != $object->getClassName()) {
- throw new Exception('All objects in a relation must be of the same class.', 103);
- }
- }
- }
-
- /**
- * Adds an object or array of objects to the array, replacing any
- * existing instance of the same object.
- *
- * @param array $objects Array of ParseObjects to add.
- * @param array $container Array to contain new ParseObjects.
- */
- private function addObjects($objects, &$container)
- {
- if (!is_array($objects)) {
- $objects = [$objects];
- }
- foreach ($objects as $object) {
- if ($object->getObjectId() == null) {
- $container['null'][] = $object;
- } else {
- $container[$object->getObjectID()] = $object;
- }
- }
- }
-
- /**
- * Removes an object (and any duplicate instances of that object) from the array.
- *
- * @param array $objects Array of ParseObjects to remove.
- * @param array $container Array to remove from it ParseObjects.
- */
- private function removeObjects($objects, &$container)
- {
- $nullObjects = [];
- foreach ($objects as $object) {
- if ($object->getObjectId() == null) {
- $nullObjects[] = $object;
- } else {
- unset($container[$object->getObjectID()]);
- }
- }
- if (!empty($nullObjects)) {
- self::removeElementsFromArray($nullObjects, $container['null']);
- }
- }
-
- /**
- * Applies the current operation and returns the result.
- *
- * @param mixed $oldValue Value prior to this operation.
- * @param mixed $object Value for this operation.
- * @param string $key Key to perform this operation on.
- *
- * @throws \Exception
- *
- * @return mixed Result of the operation.
- */
- public function _apply($oldValue, $object, $key)
- {
- if ($oldValue == null) {
- return new ParseRelation($object, $key, $this->targetClassName);
- } elseif ($oldValue instanceof ParseRelation) {
- if ($this->targetClassName != null
- && $oldValue->getTargetClass() !== $this->targetClassName
- ) {
- throw new Exception(
- 'Related object object must be of class '
- .$this->targetClassName.', but '.$oldValue->getTargetClass()
- .' was passed in.',
- 103
- );
- }
-
- return $oldValue;
- } else {
- throw new Exception('Operation is invalid after previous operation.');
- }
- }
-
- /**
- * Merge this operation with a previous operation and return the new
- * operation.
- *
- * @param FieldOperation $previous Previous operation.
- *
- * @throws \Exception
- *
- * @return FieldOperation Merged operation result.
- */
- public function _mergeWithPrevious($previous)
- {
- if ($previous == null) {
- return $this;
- }
- if ($previous instanceof self) {
- if ($previous->targetClassName != null
- && $previous->targetClassName != $this->targetClassName
- ) {
- throw new Exception(
- 'Related object must be of class '
- .$this->targetClassName.', but '.$previous->targetClassName
- .' was passed in.',
- 103
- );
- }
- $newRelationToAdd = self::convertToOneDimensionalArray(
- $this->relationsToAdd
- );
- $newRelationToRemove = self::convertToOneDimensionalArray(
- $this->relationsToRemove
- );
-
- $previous->addObjects(
- $newRelationToAdd,
- $previous->relationsToAdd
- );
- $previous->removeObjects(
- $newRelationToAdd,
- $previous->relationsToRemove
- );
-
- $previous->removeObjects(
- $newRelationToRemove,
- $previous->relationsToAdd
- );
- $previous->addObjects(
- $newRelationToRemove,
- $previous->relationsToRemove
- );
-
- $newRelationToAdd = self::convertToOneDimensionalArray(
- $previous->relationsToAdd
- );
- $newRelationToRemove = self::convertToOneDimensionalArray(
- $previous->relationsToRemove
- );
-
- return new self(
- $newRelationToAdd,
- $newRelationToRemove
- );
- }
- throw new Exception('Operation is invalid after previous operation.');
- }
-
- /**
- * Returns an associative array encoding of the current operation.
- *
- * @throws \Exception
- *
- * @return mixed
- */
- public function _encode()
- {
- $addRelation = [];
- $removeRelation = [];
- if (!empty($this->relationsToAdd)) {
- $addRelation = [
- '__op' => 'AddRelation',
- 'objects' => ParseClient::_encode(
- self::convertToOneDimensionalArray($this->relationsToAdd),
- true
- ),
- ];
- }
- if (!empty($this->relationsToRemove)) {
- $removeRelation = [
- '__op' => 'RemoveRelation',
- 'objects' => ParseClient::_encode(
- self::convertToOneDimensionalArray($this->relationsToRemove),
- true
- ),
- ];
- }
- if (!empty($addRelation['objects']) && !empty($removeRelation['objects'])) {
- return [
- '__op' => 'Batch',
- 'ops' => [$addRelation, $removeRelation],
- ];
- }
-
- return empty($addRelation['objects']) ? $removeRelation : $addRelation;
- }
-
- /**
- * Gets the className of the target objects.
- *
- * @return null|string
- */
- public function _getTargetClass()
- {
- return $this->targetClassName;
- }
-
- /**
- * Remove element or array of elements from one dimensional array.
- *
- * @param mixed $elements
- * @param array $array
- */
- public static function removeElementsFromArray($elements, &$array)
- {
- if (!is_array($elements)) {
- $elements = [$elements];
- }
- $length = count($array);
- for ($i = 0; $i < $length; $i++) {
- $exist = false;
- foreach ($elements as $element) {
- if ($array[$i] == $element) {
- $exist = true;
- break;
- }
- }
- if ($exist) {
- unset($array[$i]);
- }
- }
- $array = array_values($array);
- }
-
- /**
- * Convert any array to one dimensional array.
- *
- * @param array $array
- *
- * @return array
- */
- public static function convertToOneDimensionalArray($array)
- {
- $newArray = [];
- if (is_array($array)) {
- foreach ($array as $value) {
- $newArray = array_merge($newArray, self::convertToOneDimensionalArray($value));
- }
- } else {
- $newArray[] = $array;
- }
-
- return $newArray;
- }
-}
diff --git a/src/Parse/Internal/RemoveOperation.php b/src/Parse/Internal/RemoveOperation.php
deleted file mode 100644
index bee46f58..00000000
--- a/src/Parse/Internal/RemoveOperation.php
+++ /dev/null
@@ -1,139 +0,0 @@
-
- * @package Parse\Internal
- */
-class RemoveOperation implements FieldOperation
-{
- /**
- * Array with objects to remove.
- *
- * @var array
- */
- private $objects;
-
- /**
- * Creates an RemoveOperation with the provided objects.
- *
- * @param array $objects Objects to remove.
- *
- * @throws ParseException
- */
- public function __construct($objects)
- {
- if (!is_array($objects)) {
- throw new ParseException('RemoveOperation requires an array.');
- }
- $this->objects = $objects;
- }
-
- /**
- * Gets the objects for this operation.
- *
- * @return mixed
- */
- public function getValue()
- {
- return $this->objects;
- }
-
- /**
- * Returns associative array representing encoded operation.
- *
- * @return array
- */
- public function _encode()
- {
- return ['__op' => 'Remove',
- 'objects' => ParseClient::_encode($this->objects, true), ];
- }
-
- /**
- * Takes a previous operation and returns a merged operation to replace it.
- *
- * @param FieldOperation $previous Previous operation.
- *
- * @throws ParseException
- *
- * @return FieldOperation Merged operation.
- */
- public function _mergeWithPrevious($previous)
- {
- if (!$previous) {
- return $this;
- }
- if ($previous instanceof DeleteOperation) {
- return $previous;
- }
- if ($previous instanceof SetOperation) {
- return new SetOperation(
- $this->_apply($previous->getValue(), $this->objects, null)
- );
- }
- if ($previous instanceof self) {
- $oldList = $previous->getValue();
-
- return new self(
- array_merge((array) $oldList, (array) $this->objects)
- );
- }
- throw new ParseException(
- 'Operation is invalid after previous operation.'
- );
- }
-
- /**
- * Applies current operation, returns resulting value.
- *
- * @param mixed $oldValue Value prior to this operation.
- * @param mixed $obj Value being applied.
- * @param string $key Key this operation affects.
- *
- * @return array
- */
- public function _apply($oldValue, $obj, $key)
- {
- if (empty($oldValue)) {
- return [];
- }
-
- if (!is_array($oldValue)) {
- $oldValue = [$oldValue];
- }
-
- $newValue = [];
- foreach ($oldValue as $oldObject) {
- foreach ($this->objects as $newObject) {
- if ($oldObject instanceof ParseObject) {
- if ($newObject instanceof ParseObject
- && !$oldObject->isDirty()
- && $oldObject->getObjectId() == $newObject->getObjectId()
- ) {
- // found the object, won't add it.
- } else {
- $newValue[] = $oldObject;
- }
- } else {
- if ($oldObject !== $newObject) {
- $newValue[] = $oldObject;
- }
- }
- }
- }
-
- return $newValue;
- }
-}
diff --git a/src/Parse/Internal/SetOperation.php b/src/Parse/Internal/SetOperation.php
deleted file mode 100755
index 27caae48..00000000
--- a/src/Parse/Internal/SetOperation.php
+++ /dev/null
@@ -1,99 +0,0 @@
-
- * @package Parse\Internal
- */
-class SetOperation implements FieldOperation
-{
- /**
- * Value to set for this operation.
- *
- * @var mixed
- */
- private $value;
-
- /**
- * If the value should be forced as object.
- *
- * @var bool
- */
- private $isAssociativeArray;
-
- /**
- * Create a SetOperation with a value.
- *
- * @param mixed $value Value to set for this operation.
- * @param bool $isAssociativeArray If the value should be forced as object.
- */
- public function __construct($value, $isAssociativeArray = false)
- {
- $this->value = $value;
- $this->isAssociativeArray = $isAssociativeArray;
- }
-
- /**
- * Get the value for this operation.
- *
- * @return mixed Value.
- */
- public function getValue()
- {
- return $this->value;
- }
-
- /**
- * Returns an associative array encoding of the current operation.
- *
- * @return mixed
- */
- public function _encode()
- {
- if ($this->isAssociativeArray) {
- $object = new \stdClass();
- foreach ($this->value as $key => $value) {
- $object->$key = ParseClient::_encode($value, true);
- }
-
- return ParseClient::_encode($object, true);
- }
-
- return ParseClient::_encode($this->value, true);
- }
-
- /**
- * Apply the current operation and return the result.
- *
- * @param mixed $oldValue Value prior to this operation.
- * @param mixed $object Value for this operation.
- * @param string $key Key to set this value on.
- *
- * @return mixed
- */
- public function _apply($oldValue, $object, $key)
- {
- return $this->value;
- }
-
- /**
- * Merge this operation with a previous operation and return the
- * resulting operation.
- *
- * @param FieldOperation $previous Previous operation.
- *
- * @return FieldOperation
- */
- public function _mergeWithPrevious($previous)
- {
- return $this;
- }
-}
diff --git a/src/Parse/ParseACL.php b/src/Parse/ParseACL.php
deleted file mode 100644
index c2103120..00000000
--- a/src/Parse/ParseACL.php
+++ /dev/null
@@ -1,585 +0,0 @@
-
- * @package Parse
- */
-class ParseACL implements Encodable
-{
- const PUBLIC_KEY = '*';
-
- /**
- * Array of permissions by id
- *
- * @var array
- */
- private $permissionsById = [];
-
- /**
- * Whether this ACL is shared
- *
- * @var bool
- */
- private $shared = false;
-
- /**
- * The last known current user
- *
- * @var ParseUser
- */
- private static $lastCurrentUser = null;
-
- /**
- * An ACL with defaults set with the current user
- *
- * @var ParseACL
- */
- private static $defaultACLWithCurrentUser = null;
-
- /**
- * An ACL with defaults set
- *
- * @var ParseACL
- */
- private static $defaultACL = null;
-
- /**
- * Whether the default acl uses the current user or not
- *
- * @var bool
- */
- private static $defaultACLUsesCurrentUser = false;
-
- /**
- * Create new ParseACL with read and write access for the given user.
- *
- * @param ParseUser $user
- *
- * @return ParseACL
- */
- public static function createACLWithUser($user)
- {
- $acl = new self();
- $acl->setUserReadAccess($user, true);
- $acl->setUserWriteAccess($user, true);
-
- return $acl;
- }
-
- /**
- * Create new ParseACL from existing permissions.
- *
- * @param array $data represents permissions.
- *
- * @throws \Exception
- *
- * @return ParseACL
- */
- public static function _createACLFromJSON($data)
- {
- $acl = new self();
- foreach ($data as $id => $permissions) {
- if (!is_string($id)) {
- throw new Exception('Tried to create an ACL with an invalid userId.', 104);
- }
- foreach ($permissions as $accessType => $value) {
- if ($accessType !== 'read' && $accessType !== 'write') {
- throw new Exception(
- 'Tried to create an ACL with an invalid permission type.'
- );
- }
- if (!is_bool($value)) {
- throw new Exception(
- 'Tried to create an ACL with an invalid permission value.'
- );
- }
- $acl->setAccess($accessType, $id, $value);
- }
- }
-
- return $acl;
- }
-
- /**
- * Return if ParseACL shared or not.
- *
- * @return bool
- */
- public function _isShared()
- {
- return $this->shared;
- }
-
- /**
- * Set shared for ParseACL.
- *
- * @param bool $shared
- */
- public function _setShared($shared)
- {
- $this->shared = $shared;
- }
-
- /**
- * Returns an associate array encoding of this ParseACL instance.
- *
- * @return mixed
- */
- public function _encode()
- {
- if (empty($this->permissionsById)) {
- return new \stdClass();
- }
-
- return $this->permissionsById;
- }
-
- /**
- * Set access permission with access name, user id and if
- * the user has permission for accessing or not.
- *
- * @param string $accessType Access name.
- * @param string $userId User id.
- * @param bool $allowed If user allowed to access or not.
- *
- * @throws ParseException
- */
- private function setAccess($accessType, $userId, $allowed)
- {
- if ($userId instanceof ParseUser) {
- $userId = $userId->getObjectId();
- }
- if ($userId instanceof ParseRole) {
- $userId = 'role:'.$userId->getName();
- }
- if (!is_string($userId)) {
- throw new ParseException(
- 'Invalid target for access control.',
- 104
- );
- }
- if (!isset($this->permissionsById[$userId])) {
- if (!$allowed) {
- return;
- }
- $this->permissionsById[$userId] = [];
- }
- if ($allowed) {
- $this->permissionsById[$userId][$accessType] = true;
- } else {
- unset($this->permissionsById[$userId][$accessType]);
- if (empty($this->permissionsById[$userId])) {
- unset($this->permissionsById[$userId]);
- }
- }
- }
-
- /**
- * Get if the given userId has a permission for the given access type or not.
- *
- * @param string $accessType Access name.
- * @param string $userId User id.
- *
- * @return bool
- */
- private function getAccess($accessType, $userId)
- {
- if (!isset($this->permissionsById[$userId])) {
- return false;
- }
- if (!isset($this->permissionsById[$userId][$accessType])) {
- return false;
- }
-
- return $this->permissionsById[$userId][$accessType];
- }
-
- /**
- * Set whether the given user id is allowed to read this object.
- *
- * @param string $userId User id.
- * @param bool $allowed If user allowed to read or not.
- *
- * @throws \Exception
- */
- public function setReadAccess($userId, $allowed)
- {
- if (!$userId) {
- throw new Exception('cannot setReadAccess for null userId', 104);
- }
- $this->setAccess('read', $userId, $allowed);
- }
-
- /**
- * Get whether the given user id is *explicitly* allowed to read this
- * object. Even if this returns false, the user may still be able to
- * access it if getPublicReadAccess returns true or a role that the
- * user belongs to has read access.
- *
- * @param string $userId User id.
- *
- * @throws \Exception
- *
- * @return bool
- */
- public function getReadAccess($userId)
- {
- if (!$userId || !is_string($userId)) {
- throw new Exception('cannot getReadAccess for null userId', 104);
- }
-
- return $this->getAccess('read', $userId);
- }
-
- /**
- * Set whether the given user id is allowed to write this object.
- *
- * @param string $userId User id.
- * @param bool $allowed If user allowed to write or not.
- *
- * @throws \Exception
- */
- public function setWriteAccess($userId, $allowed)
- {
- if (!$userId) {
- throw new Exception('cannot setWriteAccess for null userId', 104);
- }
- $this->setAccess('write', $userId, $allowed);
- }
-
- /**
- * Get whether the given user id is *explicitly* allowed to write this
- * object. Even if this returns false, the user may still be able to
- * access it if getPublicWriteAccess returns true or a role that the
- * user belongs to has write access.
- *
- * @param string $userId User id.
- *
- * @throws \Exception
- *
- * @return bool
- */
- public function getWriteAccess($userId)
- {
- if (!$userId || !is_string($userId)) {
- throw new Exception('cannot getWriteAccess for null userId', 104);
- }
- return $this->getAccess('write', $userId);
- }
-
- /**
- * Set whether the public is allowed to read this object.
- *
- * @param bool $allowed
- */
- public function setPublicReadAccess($allowed)
- {
- $this->setReadAccess(self::PUBLIC_KEY, $allowed);
- }
-
- /**
- * Get whether the public is allowed to read this object.
- *
- * @return bool
- */
- public function getPublicReadAccess()
- {
- return $this->getReadAccess(self::PUBLIC_KEY);
- }
-
- /**
- * Set whether the public is allowed to write this object.
- *
- * @param bool $allowed
- */
- public function setPublicWriteAccess($allowed)
- {
- $this->setWriteAccess(self::PUBLIC_KEY, $allowed);
- }
-
- /**
- * Get whether the public is allowed to write this object.
- *
- * @return bool
- */
- public function getPublicWriteAccess()
- {
- return $this->getWriteAccess(self::PUBLIC_KEY);
- }
-
- /**
- * Set whether the given user is allowed to read this object.
- *
- * @param ParseUser $user
- * @param bool $allowed
- *
- * @throws \Exception
- */
- public function setUserReadAccess($user, $allowed)
- {
- if (!$user->getObjectId()) {
- throw new Exception('cannot setReadAccess for a user with null id', 104);
- }
- $this->setReadAccess($user->getObjectId(), $allowed);
- }
-
- /**
- * Get whether the given user is *explicitly* allowed to read this object.
- * Even if this returns false, the user may still be able to access it if
- * getPublicReadAccess returns true or a role that the user belongs to has
- * read access.
- *
- * @param ParseUser $user
- *
- * @throws \Exception
- *
- * @return bool
- */
- public function getUserReadAccess($user)
- {
- if (!$user->getObjectId()) {
- throw new Exception('cannot getReadAccess for a user with null id', 104);
- }
-
- return $this->getReadAccess($user->getObjectId());
- }
-
- /**
- * Set whether the given user is allowed to write this object.
- *
- * @param ParseUser $user
- * @param bool $allowed
- *
- * @throws \Exception
- */
- public function setUserWriteAccess($user, $allowed)
- {
- if (!$user->getObjectId()) {
- throw new Exception('cannot setWriteAccess for a user with null id', 104);
- }
- $this->setWriteAccess($user->getObjectId(), $allowed);
- }
-
- /**
- * Get whether the given user is *explicitly* allowed to write this object.
- * Even if this returns false, the user may still be able to access it if
- * getPublicWriteAccess returns true or a role that the user belongs to has
- * write access.
- *
- * @param ParseUser $user
- *
- * @throws \Exception
- *
- * @return bool
- */
- public function getUserWriteAccess($user)
- {
- if (!$user->getObjectId()) {
- throw new Exception('cannot getWriteAccess for a user with null id', 104);
- }
-
- return $this->getWriteAccess($user->getObjectId());
- }
-
- /**
- * Get whether users belonging to the role with the given roleName are
- * allowed to read this object. Even if this returns false, the role may
- * still be able to read it if a parent role has read access.
- *
- * @param string $roleName The name of the role.
- *
- * @return bool
- */
- public function getRoleReadAccessWithName($roleName)
- {
- return $this->getReadAccess('role:'.$roleName);
- }
-
- /**
- * Set whether users belonging to the role with the given roleName
- * are allowed to read this object.
- *
- * @param string $roleName The name of the role.
- * @param bool $allowed Whether the given role can read this object.
- */
- public function setRoleReadAccessWithName($roleName, $allowed)
- {
- $this->setReadAccess('role:'.$roleName, $allowed);
- }
-
- /**
- * Get whether users belonging to the role with the given roleName are
- * allowed to write this object. Even if this returns false, the role may
- * still be able to write it if a parent role has write access.
- *
- * @param string $roleName The name of the role.
- *
- * @return bool
- */
- public function getRoleWriteAccessWithName($roleName)
- {
- return $this->getWriteAccess('role:'.$roleName);
- }
-
- /**
- * Set whether users belonging to the role with the given roleName
- * are allowed to write this object.
- *
- * @param string $roleName The name of the role.
- * @param bool $allowed Whether the given role can write this object.
- */
- public function setRoleWriteAccessWithName($roleName, $allowed)
- {
- $this->setWriteAccess('role:'.$roleName, $allowed);
- }
-
- /**
- * Check whether the role is valid or not.
- *
- * @param ParseRole $role
- *
- * @throws \Exception
- */
- private static function validateRoleState($role)
- {
- if (!$role->getObjectId()) {
- throw new Exception(
- 'Roles must be saved to the server before they can be used in an ACL.',
- 104
- );
- }
- }
-
- /**
- * Get whether users belonging to the given role are allowed to read this
- * object. Even if this returns false, the role may still be able to read
- * it if a parent role has read access. The role must already be saved on
- * the server and its data must have been fetched in order to use this method.
- *
- * @param ParseRole $role The role to check for access.
- *
- * @return bool
- */
- public function getRoleReadAccess($role)
- {
- $this->validateRoleState($role);
-
- return $this->getRoleReadAccessWithName($role->getName());
- }
-
- /**
- * Set whether users belonging to the given role are allowed to read this
- * object. The role must already be saved on the server and its data must
- * have been fetched in order to use this method.
- *
- * @param ParseRole $role The role to assign access.
- * @param bool $allowed Whether the given role can read this object.
- */
- public function setRoleReadAccess($role, $allowed)
- {
- $this->validateRoleState($role);
- $this->setRoleReadAccessWithName($role->getName(), $allowed);
- }
-
- /**
- * Get whether users belonging to the given role are allowed to write this
- * object. Even if this returns false, the role may still be able to write
- * it if a parent role has write access. The role must already be saved on
- * the server and its data must have been fetched in order to use this method.
- *
- * @param ParseRole $role The role to check for access.
- *
- * @return bool
- */
- public function getRoleWriteAccess($role)
- {
- $this->validateRoleState($role);
-
- return $this->getRoleWriteAccessWithName($role->getName());
- }
-
- /**
- * Set whether users belonging to the given role are allowed to write this
- * object. The role must already be saved on the server and its data must
- * have been fetched in order to use this method.
- *
- * @param ParseRole $role The role to assign access.
- * @param bool $allowed Whether the given role can read this object.
- */
- public function setRoleWriteAccess($role, $allowed)
- {
- $this->validateRoleState($role);
- $this->setRoleWriteAccessWithName($role->getName(), $allowed);
- }
-
- /**
- * Sets a default ACL that will be applied to all ParseObjects when they
- * are created.
- *
- * @param ParseACL $acl The ACL to use as a template for all ParseObjects
- * created after setDefaultACL has been called. This
- * value will be copied and used as a template for the
- * creation of new ACLs, so changes to the instance
- * after setDefaultACL() has been called will not be
- * reflected in new ParseObjects.
- * @param bool $withAccessForCurrentUser If true, the ParseACL that is applied to
- * newly-created ParseObjects will provide read
- * and write access to the ParseUser#getCurrentUser()
- * at the time of creation. If false, the provided
- * ACL will be used without modification. If acl is
- * null, this value is ignored.
- */
- public static function setDefaultACL($acl, $withAccessForCurrentUser)
- {
- self::$defaultACLWithCurrentUser = null;
- self::$lastCurrentUser = null;
- if ($acl) {
- self::$defaultACL = clone $acl;
- self::$defaultACL->_setShared(true);
- self::$defaultACLUsesCurrentUser = $withAccessForCurrentUser;
- } else {
- self::$defaultACL = null;
- }
- }
-
- /**
- * Get the defaultACL.
- *
- * @return ParseACL
- */
- public static function _getDefaultACL()
- {
- if (self::$defaultACLUsesCurrentUser && self::$defaultACL) {
- $last = self::$lastCurrentUser ? clone self::$lastCurrentUser : null;
- if (!ParseUser::getCurrentUser()) {
- return self::$defaultACL;
- }
- if ($last !== ParseUser::getCurrentUser()) {
- self::$defaultACLWithCurrentUser = clone self::$defaultACL;
- self::$defaultACLWithCurrentUser->_setShared(true);
- self::$defaultACLWithCurrentUser->setUserReadAccess(ParseUser::getCurrentUser(), true);
- self::$defaultACLWithCurrentUser->setUserWriteAccess(ParseUser::getCurrentUser(), true);
- self::$lastCurrentUser = clone ParseUser::getCurrentUser();
- }
-
- return self::$defaultACLWithCurrentUser;
- }
-
- return self::$defaultACL;
- }
-}
diff --git a/src/Parse/ParseAggregateException.php b/src/Parse/ParseAggregateException.php
deleted file mode 100644
index 3b3e235a..00000000
--- a/src/Parse/ParseAggregateException.php
+++ /dev/null
@@ -1,45 +0,0 @@
-
- * @package Parse
- */
-class ParseAggregateException extends ParseException
-{
- /**
- * Collection of error values
- *
- * @var array
- */
- private $errors;
-
- /**
- * Constructs a Parse\ParseAggregateException.
- *
- * @param string $message Message for the Exception.
- * @param array $errors Collection of error values.
- * @param \Exception $previous Previous exception.
- */
- public function __construct($message, $errors = [], $previous = null)
- {
- parent::__construct($message, 600, $previous);
- $this->errors = $errors;
- }
-
- /**
- * Return the aggregated errors that were thrown.
- *
- * @return array
- */
- public function getErrors()
- {
- return $this->errors;
- }
-}
diff --git a/src/Parse/ParseAnalytics.php b/src/Parse/ParseAnalytics.php
deleted file mode 100644
index 72c19a1c..00000000
--- a/src/Parse/ParseAnalytics.php
+++ /dev/null
@@ -1,84 +0,0 @@
-
- * @package Parse
- */
-class ParseAnalytics
-{
- /**
- * Tracks the occurrence of a custom event with additional dimensions.
- * Parse will store a data point at the time of invocation with the given
- * event name.
- *
- * Dimensions will allow segmentation of the occurrences of this custom
- * event. Keys and values should be strings, and will throw
- * otherwise.
- *
- * To track a user signup along with additional metadata, consider the
- * following:
- *
- * $dimensions = array(
- * 'gender' => 'm',
- * 'source' => 'web',
- * 'dayType' => 'weekend'
- * );
- * ParseAnalytics::track('signup', $dimensions);
- *
- *
- * There is a default limit of 4 dimensions per event tracked.
- *
- * @param string $name The name of the custom event
- * @param array $dimensions The dictionary of segment information
- *
- * @throws \Exception
- *
- * @return mixed
- */
- public static function track($name, $dimensions = [])
- {
- $name = trim($name);
-
- if (strlen($name) === 0) {
- throw new Exception('A name for the custom event must be provided.');
- }
-
- foreach ($dimensions as $key => $value) {
- if (!is_string($key) || !is_string($value)) {
- throw new Exception('Dimensions expected string keys and values.');
- }
- }
-
- return ParseClient::_request(
- 'POST',
- 'events/'.$name,
- null,
- static::_toSaveJSON($dimensions)
- );
- }
-
- /**
- * Encodes and returns the given data as a json object
- *
- * @param array $data Data to encode
- * @return string
- */
- public static function _toSaveJSON($data)
- {
- return json_encode(
- [
- 'dimensions' => $data,
- ],
- JSON_FORCE_OBJECT
- );
- }
-}
diff --git a/src/Parse/ParseAudience.php b/src/Parse/ParseAudience.php
deleted file mode 100644
index 27a79da8..00000000
--- a/src/Parse/ParseAudience.php
+++ /dev/null
@@ -1,99 +0,0 @@
-
- * @package Parse
- */
-class ParseAudience extends ParseObject
-{
- /**
- * Parse Class name
- *
- * @var string
- */
- public static $parseClassName = '_Audience';
-
- /**
- * Create a new audience with name & query
- *
- * @param string $name Name of the audience to create
- * @param ParseQuery $query Query to create audience with
- * @return ParseAudience
- */
- public static function createAudience($name, $query)
- {
- $audience = new ParseAudience();
- $audience->setName($name);
- $audience->setQuery($query);
- return $audience;
- }
-
- /**
- * Sets the name of this audience
- *
- * @param string $name Name to set
- */
- public function setName($name)
- {
- $this->set('name', $name);
- }
-
- /**
- * Gets the name for this audience
- *
- * @return string
- */
- public function getName()
- {
- return $this->get('name');
- }
-
- /**
- * Sets the query for this Audience
- *
- * @param ParseQuery $query Query for this Audience
- */
- public function setQuery($query)
- {
- $this->set('query', json_encode($query->_getOptions()));
- }
-
- /**
- * Gets the query for this Audience
- *
- * @return ParseQuery
- */
- public function getQuery()
- {
- $query = new ParseQuery('_Installation');
- $query->_setConditions(json_decode($this->get('query'), true));
- return $query;
- }
-
- /**
- * Gets when this Audience was last used
- *
- * @return \DateTime|null
- */
- public function getLastUsed()
- {
- return $this->get('lastUsed');
- }
-
- /**
- * Gets the times this Audience has been used
- *
- * @return int
- */
- public function getTimesUsed()
- {
- return $this->get('timesUsed');
- }
-}
diff --git a/src/Parse/ParseBytes.php b/src/Parse/ParseBytes.php
deleted file mode 100644
index d3f18be0..00000000
--- a/src/Parse/ParseBytes.php
+++ /dev/null
@@ -1,93 +0,0 @@
-
- * @package Parse
- */
-class ParseBytes implements Encodable
-{
- /**
- * Byte array.
- *
- * @var array
- */
- private $byteArray;
-
- /**
- * Create a ParseBytes object with a given byte array.
- *
- * @param array $byteArray
- *
- * @return ParseBytes
- */
- public static function createFromByteArray(array $byteArray)
- {
- $bytes = new self();
- $bytes->setByteArray($byteArray);
-
- return $bytes;
- }
-
- /**
- * Create a ParseBytes object with a given base 64 encoded data string.
- *
- * @param string $base64Data
- *
- * @return ParseBytes
- */
- public static function createFromBase64Data($base64Data)
- {
- $bytes = new self();
- $bytes->setBase64Data($base64Data);
-
- return $bytes;
- }
-
- /**
- * Decodes and unpacks a given base64 encoded array of data
- *
- * @param string $base64Data
- */
- private function setBase64Data($base64Data)
- {
- $byteArray = unpack('C*', base64_decode($base64Data));
- $this->setByteArray($byteArray);
- }
-
- /**
- * Sets a new byte array
- *
- * @param array $byteArray Byte array to set
- */
- private function setByteArray(array $byteArray)
- {
- $this->byteArray = $byteArray;
- }
-
- /**
- * Encode to associative array representation.
- *
- * @return array
- */
- public function _encode()
- {
- $data = '';
- foreach ($this->byteArray as $byte) {
- $data .= chr($byte);
- }
-
- return [
- '__type' => 'Bytes',
- 'base64' => base64_encode($data),
- ];
- }
-}
diff --git a/src/Parse/ParseClient.php b/src/Parse/ParseClient.php
deleted file mode 100755
index e5a80f9b..00000000
--- a/src/Parse/ParseClient.php
+++ /dev/null
@@ -1,813 +0,0 @@
-
- * @package Parse
- */
-final class ParseClient
-{
- /**
- * The remote Parse Server to communicate with
- *
- * @var string
- */
- private static $serverURL = null;
-
- /**
- * The mount path for the current parse server
- *
- * @var string
- */
- private static $mountPath = null;
-
- /**
- * The application id.
- *
- * @var string
- */
- private static $applicationId;
-
- /**
- * The REST API Key.
- *
- * @var string|null
- */
- private static $restKey;
-
- /**
- * The Master Key.
- *
- * @var string
- */
- private static $masterKey;
-
- /**
- * Enable/Disable curl exceptions.
- *
- * @var bool
- */
- private static $enableCurlExceptions;
-
- /**
- * The object for managing persistence.
- *
- * @var ParseStorageInterface
- */
- private static $storage;
-
- /**
- * Are revocable sessions enabled?
- *
- * @var bool
- */
- private static $forceRevocableSession = false;
-
- /**
- * Number of seconds to wait while trying to connect. Use 0 to wait indefinitely.
- *
- * @var int
- */
- private static $connectionTimeout;
-
- /**
- * Maximum number of seconds of request/response operation.
- *
- * @var int
- */
- private static $timeout;
-
- /**
- * Http client for requests
- *
- * @var ParseHttpable
- */
- private static $httpClient;
-
- /**
- * CA file holding one or more certificates to verify a peer
- *
- * @var string
- */
- private static $caFile;
-
- /**
- * Options to pass to the http client.
- *
- * @var array
- */
- private static $httpOptions;
-
- /**
- * Constant for version string to include with requests.
- *
- * @var string
- */
- const VERSION_STRING = '2.4.0';
-
- /**
- * Parse\Client::initialize, must be called before using Parse features.
- *
- * @param string $app_id Parse Application ID
- * @param string $rest_key Parse REST API Key
- * @param string $master_key Parse Master Key
- * @param bool $enableCurlExceptions Enable or disable Parse curl exceptions
- * @param string $account_key An account key from Parse.com can enable creating apps via API.
- *
- * @throws Exception
- */
- public static function initialize(
- $app_id,
- $rest_key,
- $master_key,
- $enableCurlExceptions = true
- ) {
- if (!ParseObject::hasRegisteredSubclass('_User')) {
- ParseUser::registerSubclass();
- }
-
- if (!ParseObject::hasRegisteredSubclass('_Role')) {
- ParseRole::registerSubclass();
- }
-
- if (!ParseObject::hasRegisteredSubclass('_Installation')) {
- ParseInstallation::registerSubclass();
- }
-
- if (!ParseObject::hasRegisteredSubclass('_PushStatus')) {
- ParsePushStatus::registerSubclass();
- }
-
- if (!ParseObject::hasRegisteredSubclass('_Audience')) {
- ParseAudience::registerSubclass();
- }
-
- ParseSession::registerSubclass();
- self::$applicationId = $app_id;
- self::$restKey = $rest_key;
- self::$masterKey = $master_key;
- self::$enableCurlExceptions = $enableCurlExceptions;
- if (!static::$storage) {
- if (session_status() === PHP_SESSION_ACTIVE) {
- self::setStorage(new ParseSessionStorage());
- } else {
- self::setStorage(new ParseMemoryStorage());
- }
- }
- }
-
- /**
- * ParseClient::setServerURL, to change the Parse Server address & mount path for this app
- * @param string $serverURL The remote server url
- * @param string $mountPath The mount path for this server
- *
- * @throws \Exception
- *
- */
- public static function setServerURL($serverURL, $mountPath)
- {
- if (!$serverURL) {
- throw new Exception('Invalid Server URL.');
- }
- if (!$mountPath) {
- throw new Exception('Invalid Mount Path.');
- }
-
- self::$serverURL = rtrim($serverURL, '/');
- self::$mountPath = trim($mountPath, '/') . '/';
-
- // check if mount path is root
- if (self::$mountPath == "/") {
- // root path should have no mount path
- self::$mountPath = "";
- }
- }
-
- /**
- * Clears the existing server url.
- * Used primarily for testing purposes.
- */
- public static function _clearServerURL()
- {
- self::$serverURL = null;
- }
-
- /**
- * Clears the existing mount path.
- * Used primarily for testing purposes.
- */
- public static function _clearMountPath()
- {
- self::$mountPath = null;
- }
-
- /**
- * Sets the Http client to use for requests
- *
- * @param ParseHttpable $httpClient Http client to use
- */
- public static function setHttpClient(ParseHttpable $httpClient)
- {
- self::$httpClient = $httpClient;
- }
-
- /**
- * Returns an array of information regarding the current server's health
- *
- * @return array
- */
- public static function getServerHealth()
- {
- self::assertServerInitialized();
-
- // get our prepared http client
- $httpClient = self::getPreparedHttpClient();
-
- // try to get a response from the server
- $url = self::createRequestUrl('health');
- $response = $httpClient->send($url);
-
- $errorCode = $httpClient->getErrorCode();
-
- if ($errorCode) {
- return [
- 'status' => $httpClient->getResponseStatusCode(),
- 'error' => $errorCode,
- 'error_message' => $httpClient->getErrorMessage()
- ];
- }
-
- $status = [
- 'status' => $httpClient->getResponseStatusCode(),
- ];
-
- // attempt to decode this response
- $decoded = json_decode($response, true);
-
- if (isset($decoded)) {
- // add decoded response
- $status['response'] = $decoded;
- } else {
- if ($response === 'OK') {
- // implied status: ok!
- $status['response'] = [
- 'status' => 'ok'
- ];
- } else {
- // add plain response
- $status['response'] = $response;
- }
- }
-
- return $status;
- }
-
- /**
- * Gets the current Http client, or creates one to suite the need
- *
- * @return ParseHttpable
- */
- public static function getHttpClient()
- {
- if (static::$httpClient) {
- // use existing client
- return static::$httpClient;
- } else {
- // default to cURL/stream
- return function_exists('curl_init') ? new ParseCurlHttpClient() : new ParseStreamHttpClient();
- }
- }
-
- /**
- * Clears the currently set http client
- */
- public static function clearHttpClient()
- {
- self::$httpClient = null;
- }
-
- /**
- * Sets a CA file to validate peers of our requests with
- *
- * @param string $caFile CA file to set
- */
- public static function setCAFile($caFile)
- {
- self::$caFile = $caFile;
- }
-
- /**
- * Sets http options to pass to the http client
- * For curl
- * https://www.php.net/manual/en/function.curl-setopt.php
- *
- * For stream context
- * https://www.php.net/manual/en/context.php
- *
- * @param array $httpOptions options to set
- */
- public static function setHttpOptions($httpOptions)
- {
- self::$httpOptions = $httpOptions;
- }
-
- /**
- * ParseClient::_encode, internal method for encoding object values.
- *
- * @param mixed $value Value to encode
- * @param bool $allowParseObjects Allow nested objects
- *
- * @throws \Exception
- *
- * @return mixed Encoded results.
- */
- public static function _encode($value, $allowParseObjects)
- {
- if ($value instanceof \DateTime || $value instanceof \DateTimeImmutable) {
- return [
- '__type' => 'Date', 'iso' => self::getProperDateFormat($value),
- ];
- }
-
- if ($value instanceof \stdClass) {
- return $value;
- }
-
- if ($value instanceof ParseObject) {
- if (!$allowParseObjects) {
- throw new Exception('ParseObjects not allowed here.');
- }
-
- return $value->_toPointer();
- }
-
- if ($value instanceof Encodable) {
- return $value->_encode();
- }
-
- if (is_array($value)) {
- return self::_encodeArray($value, $allowParseObjects);
- }
-
- if (!is_scalar($value) && $value !== null) {
- throw new Exception('Invalid type encountered.');
- }
-
- return $value;
- }
-
- /**
- * ParseClient::_decode, internal method for decoding server responses.
- *
- * @param mixed $data The value to decode
- *
- * @return mixed
- */
- public static function _decode($data)
- {
- // The json decoded response from Parse will make JSONObjects into stdClass
- // objects. We'll change it to an associative array here.
- if ($data instanceof \stdClass) {
- $tmp = (array) $data;
- if (!empty($tmp)) {
- return self::_decode(get_object_vars($data));
- }
- }
-
- if (!isset($data) && !is_array($data)) {
- return null;
- }
-
- if (is_array($data)) {
- $typeString = (isset($data['__type']) ? $data['__type'] : null);
-
- if ($typeString === 'Date') {
- return new \DateTime($data['iso']);
- }
-
- if ($typeString === 'Bytes') {
- return base64_decode($data['base64']);
- }
-
- if ($typeString === 'Pointer') {
- return ParseObject::create($data['className'], $data['objectId']);
- }
-
- if ($typeString === 'File') {
- return ParseFile::_createFromServer($data['name'], $data['url']);
- }
-
- if ($typeString === 'GeoPoint') {
- return new ParseGeoPoint($data['latitude'], $data['longitude']);
- }
-
- if ($typeString === 'Polygon') {
- return new ParsePolygon($data['coordinates']);
- }
-
- if ($typeString === 'Object') {
- $output = ParseObject::create($data['className']);
- $output->_mergeAfterFetch($data);
-
- return $output;
- }
-
- if ($typeString === 'Relation') {
- return $data;
- }
-
- $newDict = [];
- foreach ($data as $key => $value) {
- $newDict[$key] = static::_decode($value);
- }
-
- return $newDict;
- }
-
- return $data;
- }
-
- /**
- * ParseClient::_encodeArray, internal method for encoding arrays.
- *
- * @param array $value Array to encode.
- * @param bool $allowParseObjects Allow nested objects.
- *
- * @return array Encoded results.
- */
- public static function _encodeArray($value, $allowParseObjects)
- {
- $output = [];
- foreach ($value as $key => $item) {
- $output[$key] = self::_encode($item, $allowParseObjects);
- }
-
- return $output;
- }
-
- /**
- * Returns an httpClient prepared for use
- *
- * @return ParseHttpable
- */
- private static function getPreparedHttpClient()
- {
- // get our http client
- $httpClient = self::getHttpClient();
-
- // setup
- $httpClient->setup();
-
- if (isset(self::$caFile)) {
- // set CA file
- $httpClient->setCAFile(self::$caFile);
- }
- if (isset(self::$httpOptions)) {
- $httpClient->setHttpOptions(self::$httpOptions);
- }
-
- return $httpClient;
- }
-
- /**
- * Creates an absolute request url from a relative one
- *
- * @param string $relativeUrl Relative url to create full request url from
- * @return string
- */
- private static function createRequestUrl($relativeUrl)
- {
- return self::$serverURL . '/' . self::$mountPath.ltrim($relativeUrl, '/');
- }
-
- /**
- * Parse\Client::_request, internal method for communicating with Parse.
- *
- * @param string $method HTTP Method for this request.
- * @param string $relativeUrl REST API Path.
- * @param null $sessionToken Session Token.
- * @param null $data Data to provide with the request.
- * @param bool $useMasterKey Whether to use the Master Key.
- * @param string $contentType The content type for this request, default is application/json
- * @param bool $returnHeaders Allow to return response headers
- *
- * @throws \Exception
- *
- * @return mixed Result from Parse API Call.
- */
- public static function _request(
- $method,
- $relativeUrl,
- $sessionToken = null,
- $data = null,
- $useMasterKey = false,
- $contentType = 'application/json',
- $returnHeaders = false
- ) {
- if ($data === '[]') {
- $data = '{}';
- }
-
- // get our prepared http client
- $httpClient = self::getPreparedHttpClient();
-
- // verify the server url and mount path have been set
- self::assertServerInitialized();
- self::assertParseInitialized();
-
- // add appId & client version
- $httpClient->addRequestHeader('X-Parse-Application-Id', self::$applicationId);
- $httpClient->addRequestHeader('X-Parse-Client-Version', 'php' . self::VERSION_STRING);
-
-
- if ($sessionToken) {
- // add our current session token
- $httpClient->addRequestHeader('X-Parse-Session-Token', $sessionToken);
- }
-
- if ($useMasterKey) {
- // pass master key
- $httpClient->addRequestHeader('X-Parse-Master-Key', self::$masterKey);
- } elseif (isset(self::$restKey)) {
- // pass REST key
- $httpClient->addRequestHeader('X-Parse-REST-API-Key', self::$restKey);
- }
-
- if (self::$forceRevocableSession) {
- // indicate we are using revocable sessions
- $httpClient->addRequestHeader('X-Parse-Revocable-Session', '1');
- }
-
- /*
- * Set an empty Expect header to stop the 100-continue behavior for post
- * data greater than 1024 bytes.
- * http://pilif.github.io/2007/02/the-return-of-except-100-continue/
- */
- $httpClient->addRequestHeader('Expect', '');
-
- // create request url
- $url = self::createRequestUrl($relativeUrl);
-
- if ($method === 'POST' || $method === 'PUT') {
- // add content type to the request
- $httpClient->addRequestHeader('Content-type', $contentType);
- }
-
- if (!is_null(self::$connectionTimeout)) {
- // set connection timeout
- $httpClient->setConnectionTimeout(self::$connectionTimeout);
- }
-
- if (!is_null(self::$timeout)) {
- // set request/response timeout
- $httpClient->setTimeout(self::$timeout);
- }
-
- // send our request
- $response = $httpClient->send($url, $method, $data);
-
- // check content type of our response
- $contentType = $httpClient->getResponseContentType() || '';
-
- if (strpos($contentType, 'text/html') !== false) {
- throw new ParseException('Bad Request', -1);
- }
-
- if ($httpClient->getErrorCode()) {
- if (self::$enableCurlExceptions) {
- throw new ParseException($httpClient->getErrorMessage(), $httpClient->getErrorCode());
- } else {
- return false;
- }
- }
-
- $decoded = json_decode($response, true);
-
- if (!isset($decoded) && $response !== '') {
- throw new ParseException(
- 'Bad Request. Could not decode Response: '.
- '('.json_last_error().') '.self::getLastJSONErrorMsg(),
- -1
- );
- }
-
- if (isset($decoded['error'])) {
- // check to convert error to a string, if an array
- // used to handle an Array 'error' from back4app.com
- $errorMessage = is_array($decoded['error']) ? json_encode($decoded['error']) : $decoded['error'];
- throw new ParseException(
- $errorMessage,
- isset($decoded['code']) ? $decoded['code'] : 0
- );
- }
-
- if ($returnHeaders) {
- $decoded['_headers'] = $httpClient->getResponseHeaders();
- }
-
- return $decoded;
- }
-
- /**
- * Returns the last error message from a failed json_decode call
- *
- * @return string
- */
- private static function getLastJSONErrorMsg()
- {
- // check if json_last_error_msg is defined (>= 5.5.0)
- if (!function_exists('json_last_error_msg')) {
- // return custom error messages for each code
- $error_strings = array(
- JSON_ERROR_NONE => 'No error',
- JSON_ERROR_DEPTH => 'Maximum stack depth exceeded',
- JSON_ERROR_STATE_MISMATCH => 'State mismatch (invalid or malformed JSON)',
- JSON_ERROR_CTRL_CHAR => 'Control character error, potentially incorrectly encoded',
- JSON_ERROR_SYNTAX => 'Syntax error',
- JSON_ERROR_UTF8 => 'Malformed UTF-8 characters, potentially incorrectly encoded'
- );
-
- $error = json_last_error();
- return isset($error_strings[$error]) ? $error_strings[$error] : 'Unknown error';
- }
-
- // use existing function
- return json_last_error_msg();
- }
-
- /**
- * ParseClient::setStorage, will update the storage object used for
- * persistence.
- *
- * @param ParseStorageInterface $storageObject
- */
- public static function setStorage(ParseStorageInterface $storageObject)
- {
- self::$storage = $storageObject;
- }
-
- /**
- * ParseClient::getStorage, will return the storage object used for
- * persistence.
- *
- * @return ParseStorageInterface
- */
- public static function getStorage()
- {
- return self::$storage;
- }
-
- /**
- * ParseClient::_unsetStorage, will null the storage object.
- *
- * Without some ability to clear the storage objects, all test cases would
- * use the first assigned storage object.
- */
- public static function _unsetStorage()
- {
- self::$storage = null;
- }
-
- /**
- * Asserts that the server and mount path have been initialized
- *
- * @throws Exception
- */
- private static function assertServerInitialized()
- {
- if (self::$serverURL === null) {
- throw new Exception(
- 'Missing a valid server url. '.
- 'You must call ParseClient::setServerURL(\'https://your.parse-server.com\', \'/parse\') '.
- ' before making any requests.'
- );
- }
-
- if (self::$mountPath === null) {
- throw new Exception(
- 'Missing a valid mount path. '.
- 'You must call ParseClient::setServerURL(\'https://your.parse-server.com\', \'/parse\') '.
- ' before making any requests.'
- );
- }
- }
-
- /**
- * Asserts that the sdk has been initialized with a valid application id
- *
- * @throws Exception
- */
- private static function assertParseInitialized()
- {
- if (self::$applicationId === null) {
- throw new Exception(
- 'You must call ParseClient::initialize() before making any requests.',
- 109
- );
- }
- }
-
- /**
- * Get remote Parse API url.
- *
- * @return string
- */
- public static function getAPIUrl()
- {
- return self::$serverURL.'/'.self::$mountPath;
- }
-
- /**
- * Get remote Parse API mount path
- *
- * @return string
- */
- public static function getMountPath()
- {
- return self::$mountPath;
- }
-
- /**
- * Get a date value in the format stored on Parse.
- *
- * All the SDKs do some slightly different date handling.
- * PHP provides 6 digits for the microseconds (u) so we have to chop 3 off.
- *
- * @param \DateTime $value DateTime value to format.
- *
- * @return string
- */
- public static function getProperDateFormat($value)
- {
- $dateFormatString = 'Y-m-d\TH:i:s.u';
- $date = date_format($value, $dateFormatString);
- $date = substr($date, 0, -3).'Z';
-
- return $date;
- }
-
- /**
- * Get a date value in the format to use in Local Push Scheduling on Parse.
- *
- * All the SDKs do some slightly different date handling.
- * Format from Parse doc: an ISO 8601 date without a time zone, i.e. 2014-10-16T12:00:00 .
- *
- * @param \DateTime $value DateTime value to format.
- * @param bool $local Whether to return the local push time
- *
- * @return string
- */
- public static function getPushDateFormat($value, $local = false)
- {
- $dateFormatString = 'Y-m-d\TH:i:s';
- if (!$local) {
- $dateFormatString .= '\Z';
- }
- $date = date_format($value, $dateFormatString);
-
- return $date;
- }
-
- /**
- * Allows an existing application to start using revocable sessions, without forcing
- * all requests for the app to use them. After calling this method, login & signup requests
- * will be returned a unique and revocable session token.
- */
- public static function enableRevocableSessions()
- {
- self::$forceRevocableSession = true;
- }
-
- /**
- * Sets number of seconds to wait while trying to connect. Use 0 to wait indefinitely, null to default behaviour.
- *
- * @param int|null $connectionTimeout
- */
- public static function setConnectionTimeout($connectionTimeout)
- {
- self::$connectionTimeout = $connectionTimeout;
- }
-
- /**
- * Sets maximum number of seconds of request/response operation.
- * Use 0 to wait indefinitely, null to default behaviour.
- *
- * @param int|null $timeout
- */
- public static function setTimeout($timeout)
- {
- self::$timeout = $timeout;
- }
-}
diff --git a/src/Parse/ParseCloud.php b/src/Parse/ParseCloud.php
deleted file mode 100644
index 7984fedd..00000000
--- a/src/Parse/ParseCloud.php
+++ /dev/null
@@ -1,93 +0,0 @@
-
- * @package Parse
- */
-class ParseCloud
-{
- /**
- * Makes a call to a Cloud function.
- *
- * @param string $name Cloud function name
- * @param array $data Parameters to pass
- * @param bool $useMasterKey Whether to use the Master Key
- *
- * @return mixed
- */
- public static function run($name, $data = [], $useMasterKey = false)
- {
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
- $response = ParseClient::_request(
- 'POST',
- 'functions/'.$name,
- $sessionToken,
- json_encode(ParseClient::_encode($data, false)),
- $useMasterKey
- );
-
- return ParseClient::_decode($response['result']);
- }
-
- /**
- * Gets data for the current set of cloud jobs
- *
- * @return array
- */
- public static function getJobsData()
- {
- $response = ParseClient::_request(
- 'GET',
- 'cloud_code/jobs/data',
- null,
- null,
- true
- );
-
- return ParseClient::_decode($response);
- }
-
- /**
- * Starts a given cloud job, which will process asynchronously
- *
- * @param string $jobName Name of job to run
- * @param array $data Parameters to pass
- * @return string Id for tracking job status
- */
- public static function startJob($jobName, $data = [])
- {
- $response = ParseClient::_request(
- 'POST',
- 'jobs/'.$jobName,
- null,
- json_encode(ParseClient::_encode($data, false)),
- true,
- 'application/json',
- true
- );
-
- return ParseClient::_decode($response)['_headers']['X-Parse-Job-Status-Id'];
- }
-
- /**
- * Gets job status by id
- *
- * @param string $jobStatusId Id of the job status to return
- * @return array|ParseObject
- */
- public static function getJobStatus($jobStatusId)
- {
- $query = new ParseQuery('_JobStatus');
- return $query->get($jobStatusId, true);
- }
-}
diff --git a/src/Parse/ParseConfig.php b/src/Parse/ParseConfig.php
deleted file mode 100644
index 0d9160db..00000000
--- a/src/Parse/ParseConfig.php
+++ /dev/null
@@ -1,109 +0,0 @@
-
- * @package Parse
- */
-class ParseConfig
-{
- /**
- * Current configuration data
- *
- * @var array
- */
- private $currentConfig;
-
- /**
- * ParseConfig constructor.
- */
- public function __construct()
- {
- $result = ParseClient::_request('GET', 'config');
- $this->setConfig($result['params']);
- }
-
- /**
- * Gets a config value
- *
- * @param string $key Key of value to get
- * @return mixed
- */
- public function get($key)
- {
- if (isset($this->currentConfig[$key])) {
- return $this->currentConfig[$key];
- }
- return null;
- }
-
- /**
- * Sets a config value
- *
- * @param string $key Key to set value on
- * @param mixed $value Value to set
- */
- public function set($key, $value)
- {
- $this->currentConfig[$key] = $value;
- }
-
- /**
- * Gets a config value with html characters encoded
- *
- * @param string $key Key of value to get
- * @return string|null
- */
- public function escape($key)
- {
- if (isset($this->currentConfig[$key])) {
- return htmlentities($this->currentConfig[$key]);
- }
- return null;
- }
-
- /**
- * Sets the config
- *
- * @param array $config Config to set
- */
- protected function setConfig($config)
- {
- $this->currentConfig = $config;
- }
-
- /**
- * Gets the current config
- *
- * @return array
- */
- public function getConfig()
- {
- return $this->currentConfig;
- }
-
- /**
- * Saves the current config
- *
- * @return bool
- */
- public function save()
- {
- $response = ParseClient::_request(
- 'PUT',
- 'config',
- null,
- json_encode([
- 'params' => $this->currentConfig
- ]),
- true
- );
- return $response['result'];
- }
-}
diff --git a/src/Parse/ParseException.php b/src/Parse/ParseException.php
deleted file mode 100644
index 2f46c886..00000000
--- a/src/Parse/ParseException.php
+++ /dev/null
@@ -1,29 +0,0 @@
-
- * @package Parse
- */
-class ParseException extends Exception
-{
- /**
- * Constructs a Parse\Exception.
- *
- * @param string $message Message for the Exception.
- * @param int $code Error code.
- * @param \Exception $previous Previous Exception.
- */
- public function __construct($message, $code = 0, Exception $previous = null)
- {
- parent::__construct($message, $code, $previous);
- }
-}
diff --git a/src/Parse/ParseFile.php b/src/Parse/ParseFile.php
deleted file mode 100644
index 6d385817..00000000
--- a/src/Parse/ParseFile.php
+++ /dev/null
@@ -1,469 +0,0 @@
-
- * @package Parse
- */
-class ParseFile implements Encodable
-{
- /**
- * The filename.
- *
- * @var string
- */
- private $name;
-
- /**
- * The URL of file data stored on Parse.
- *
- * @var string
- */
- private $url;
-
- /**
- * The data.
- *
- * @var string
- */
- private $data;
-
- /**
- * The mime type.
- *
- * @var string
- */
- private $mimeType;
-
- /**
- * Return the data for the file, downloading it if not already present.
- *
- * @throws ParseException
- *
- * @return mixed
- */
- public function getData()
- {
- if ($this->data) {
- return $this->data;
- }
- if (!$this->url) {
- throw new ParseException('Cannot retrieve data for unsaved ParseFile.', 151);
- }
- $this->data = $this->download();
-
- return $this->data;
- }
-
- /**
- * Return the URL for the file, if saved.
- *
- * @return string|null
- */
- public function getURL()
- {
- return $this->url;
- }
-
- /**
- * Return the name for the file
- * Upon saving to Parse, the name will change to a unique identifier.
- *
- * @return string
- */
- public function getName()
- {
- return $this->name;
- }
-
- /**
- * Send a REST request to delete the ParseFile.
- *
- * @param bool $useMasterKey Whether to use the Master Key.
- * @throws ParseException
- */
- public function delete($useMasterKey = true)
- {
- if (!$this->url) {
- throw new ParseException('Cannot delete file that has not been saved.', 151);
- }
-
- ParseClient::_request(
- 'DELETE',
- 'files/'.$this->getName(),
- null,
- null,
- $useMasterKey
- );
- }
-
- /**
- * Return the mimeType for the file, if set.
- *
- * @return string|null
- */
- public function getMimeType()
- {
- if (isset($this->mimeType)) {
- // return the mime type
- return $this->mimeType;
- } else {
- // return an inferred mime type instead
- $fileParts = explode('.', $this->getName());
- $extension = array_pop($fileParts);
- return $this->getMimeTypeForExtension($extension);
- }
- }
-
- /**
- * Create a Parse File from data
- * i.e. $file = ParseFile::createFromData('hello world!', 'hi.txt');.
- *
- * @param mixed $contents The file contents
- * @param string $name The file name on Parse, can be used to detect mimeType
- * @param string $mimeType Optional, The mime-type to use when saving the file
- *
- * @return ParseFile
- */
- public static function createFromData($contents, $name, $mimeType = null)
- {
- $file = new self();
- $file->name = $name;
- $file->mimeType = $mimeType;
- $file->data = $contents;
-
- return $file;
- }
-
- /**
- * Create a Parse File from the contents of a local file
- * i.e. $file = ParseFile::createFromFile('/tmp/foo.bar',
- * 'foo.bar');.
- *
- * @param string $path Path to local file
- * @param string $name Filename to use on Parse, can be used to detect mimeType
- * @param string $mimeType Optional, The mime-type to use when saving the file
- *
- * @return ParseFile
- */
- public static function createFromFile($path, $name, $mimeType = null)
- {
- $contents = file_get_contents($path, 'rb');
-
- return static::createFromData($contents, $name, $mimeType);
- }
-
- /**
- * Internal method used when constructing a Parse File from Parse.
- *
- * @param string $name
- * @param string $url
- *
- * @return ParseFile
- */
- public static function _createFromServer($name, $url)
- {
- $file = new self();
- $file->name = $name;
- $file->url = $url;
-
- return $file;
- }
-
- /**
- * Encode to associative array representation.
- *
- * @return array
- */
- public function _encode()
- {
- return [
- '__type' => 'File',
- 'url' => $this->url,
- 'name' => $this->name,
- ];
- }
-
- /**
- * Uploads the file contents to Parse, if not saved.
- *
- * @param bool $useMasterKey Whether to use the Master Key.
- * @return bool
- */
- public function save($useMasterKey = false)
- {
- if (!$this->url) {
- $response = $this->upload($useMasterKey);
- $this->url = $response['url'];
- $this->name = $response['name'];
- }
-
- return true;
- }
-
- /**
- * Internally uploads the contents of the file to a Parse Server
- *
- * @param bool $useMasterKey Whether to use the Master Key.
- * @return mixed Result from Parse API Call.
- * @throws ParseException
- */
- private function upload($useMasterKey = false)
- {
- // get the MIME type of this file
- $fileParts = explode('.', $this->getName());
- $extension = array_pop($fileParts);
- $mimeType = $this->mimeType ?: $this->getMimeTypeForExtension($extension);
-
- return ParseClient::_request(
- 'POST',
- 'files/'.$this->getName(),
- null,
- $this->getData(),
- $useMasterKey,
- $mimeType
- );
- }
-
- /**
- * Attempts to download and return the contents of a ParseFile's url
- *
- * @return mixed
- * @throws ParseException
- */
- private function download()
- {
- $httpClient = ParseClient::getHttpClient();
- $httpClient->setup();
- $response = $httpClient->send($this->url);
- if ($httpClient->getErrorCode()) {
- throw new ParseException($httpClient->getErrorMessage(), $httpClient->getErrorCode());
- }
- $httpStatus = $httpClient->getResponseStatusCode();
- if ($httpStatus > 399) {
- throw new ParseException('Download failed, file may have been deleted.', $httpStatus);
- }
- $mimeType = $httpClient->getResponseContentType();
- if (isset($mimeType) && $mimeType !== 'null') {
- $this->mimeType = $mimeType;
- }
- $this->data = $response;
-
- return $response;
- }
-
- /**
- * Returns the mimetype for a given extension
- *
- * @param string $extension Extension to return type for
- * @return string
- */
- private function getMimeTypeForExtension($extension)
- {
- $extension = strtolower($extension);
- $knownTypes = [
- 'ai' => 'application/postscript',
- 'aif' => 'audio/x-aiff',
- 'aifc' => 'audio/x-aiff',
- 'aiff' => 'audio/x-aiff',
- 'asc' => 'text/plain',
- 'atom' => 'application/atom+xml',
- 'au' => 'audio/basic',
- 'avi' => 'video/x-msvideo',
- 'bcpio' => 'application/x-bcpio',
- 'bin' => 'application/octet-stream',
- 'bmp' => 'image/bmp',
- 'cdf' => 'application/x-netcdf',
- 'cgm' => 'image/cgm',
- 'class' => 'application/octet-stream',
- 'cpio' => 'application/x-cpio',
- 'cpt' => 'application/mac-compactpro',
- 'csh' => 'application/x-csh',
- 'css' => 'text/css',
- 'dcr' => 'application/x-director',
- 'dif' => 'video/x-dv',
- 'dir' => 'application/x-director',
- 'djv' => 'image/vnd.djvu',
- 'djvu' => 'image/vnd.djvu',
- 'dll' => 'application/octet-stream',
- 'dmg' => 'application/octet-stream',
- 'dms' => 'application/octet-stream',
- 'doc' => 'application/msword',
- 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
- 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
- 'docm' => 'application/vnd.ms-word.document.macroEnabled.12',
- 'dotm' => 'application/vnd.ms-word.template.macroEnabled.12',
- 'dtd' => 'application/xml-dtd',
- 'dv' => 'video/x-dv',
- 'dvi' => 'application/x-dvi',
- 'dxr' => 'application/x-director',
- 'eps' => 'application/postscript',
- 'etx' => 'text/x-setext',
- 'exe' => 'application/octet-stream',
- 'ez' => 'application/andrew-inset',
- 'gif' => 'image/gif',
- 'gram' => 'application/srgs',
- 'grxml' => 'application/srgs+xml',
- 'gtar' => 'application/x-gtar',
- 'hdf' => 'application/x-hdf',
- 'hqx' => 'application/mac-binhex40',
- 'htm' => 'text/html',
- 'html' => 'text/html',
- 'ice' => 'x-conference/x-cooltalk',
- 'ico' => 'image/x-icon',
- 'ics' => 'text/calendar',
- 'ief' => 'image/ief',
- 'ifb' => 'text/calendar',
- 'iges' => 'model/iges',
- 'igs' => 'model/iges',
- 'jnlp' => 'application/x-java-jnlp-file',
- 'jp2' => 'image/jp2',
- 'jpe' => 'image/jpeg',
- 'jpeg' => 'image/jpeg',
- 'jpg' => 'image/jpeg',
- 'js' => 'application/x-javascript',
- 'kar' => 'audio/midi',
- 'latex' => 'application/x-latex',
- 'lha' => 'application/octet-stream',
- 'lzh' => 'application/octet-stream',
- 'm3u' => 'audio/x-mpegurl',
- 'm4a' => 'audio/mp4a-latm',
- 'm4b' => 'audio/mp4a-latm',
- 'm4p' => 'audio/mp4a-latm',
- 'm4u' => 'video/vnd.mpegurl',
- 'm4v' => 'video/x-m4v',
- 'mac' => 'image/x-macpaint',
- 'man' => 'application/x-troff-man',
- 'mathml' => 'application/mathml+xml',
- 'me' => 'application/x-troff-me',
- 'mesh' => 'model/mesh',
- 'mid' => 'audio/midi',
- 'midi' => 'audio/midi',
- 'mif' => 'application/vnd.mif',
- 'mov' => 'video/quicktime',
- 'movie' => 'video/x-sgi-movie',
- 'mp2' => 'audio/mpeg',
- 'mp3' => 'audio/mpeg',
- 'mp4' => 'video/mp4',
- 'mpe' => 'video/mpeg',
- 'mpeg' => 'video/mpeg',
- 'mpg' => 'video/mpeg',
- 'mpga' => 'audio/mpeg',
- 'ms' => 'application/x-troff-ms',
- 'msh' => 'model/mesh',
- 'mxu' => 'video/vnd.mpegurl',
- 'nc' => 'application/x-netcdf',
- 'oda' => 'application/oda',
- 'ogg' => 'application/ogg',
- 'pbm' => 'image/x-portable-bitmap',
- 'pct' => 'image/pict',
- 'pdb' => 'chemical/x-pdb',
- 'pdf' => 'application/pdf',
- 'pgm' => 'image/x-portable-graymap',
- 'pgn' => 'application/x-chess-pgn',
- 'pic' => 'image/pict',
- 'pict' => 'image/pict',
- 'png' => 'image/png',
- 'pnm' => 'image/x-portable-anymap',
- 'pnt' => 'image/x-macpaint',
- 'pntg' => 'image/x-macpaint',
- 'ppm' => 'image/x-portable-pixmap',
- 'ppt' => 'application/vnd.ms-powerpoint',
- 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
- 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
- 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
- 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
- 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
- 'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
- 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
- 'ps' => 'application/postscript',
- 'qt' => 'video/quicktime',
- 'qti' => 'image/x-quicktime',
- 'qtif' => 'image/x-quicktime',
- 'ra' => 'audio/x-pn-realaudio',
- 'ram' => 'audio/x-pn-realaudio',
- 'ras' => 'image/x-cmu-raster',
- 'rdf' => 'application/rdf+xml',
- 'rgb' => 'image/x-rgb',
- 'rm' => 'application/vnd.rn-realmedia',
- 'roff' => 'application/x-troff',
- 'rtf' => 'text/rtf',
- 'rtx' => 'text/richtext',
- 'sgm' => 'text/sgml',
- 'sgml' => 'text/sgml',
- 'sh' => 'application/x-sh',
- 'shar' => 'application/x-shar',
- 'silo' => 'model/mesh',
- 'sit' => 'application/x-stuffit',
- 'skd' => 'application/x-koan',
- 'skm' => 'application/x-koan',
- 'skp' => 'application/x-koan',
- 'skt' => 'application/x-koan',
- 'smi' => 'application/smil',
- 'smil' => 'application/smil',
- 'snd' => 'audio/basic',
- 'so' => 'application/octet-stream',
- 'spl' => 'application/x-futuresplash',
- 'src' => 'application/x-wais-source',
- 'sv4cpio' => 'application/x-sv4cpio',
- 'sv4crc' => 'application/x-sv4crc',
- 'svg' => 'image/svg+xml',
- 'swf' => 'application/x-shockwave-flash',
- 't' => 'application/x-troff',
- 'tar' => 'application/x-tar',
- 'tcl' => 'application/x-tcl',
- 'tex' => 'application/x-tex',
- 'texi' => 'application/x-texinfo',
- 'texinfo' => 'application/x-texinfo',
- 'tif' => 'image/tiff',
- 'tiff' => 'image/tiff',
- 'tr' => 'application/x-troff',
- 'tsv' => 'text/tab-separated-values',
- 'txt' => 'text/plain',
- 'ustar' => 'application/x-ustar',
- 'vcd' => 'application/x-cdlink',
- 'vrml' => 'model/vrml',
- 'vxml' => 'application/voicexml+xml',
- 'wav' => 'audio/x-wav',
- 'wbmp' => 'image/vnd.wap.wbmp',
- 'wbmxl' => 'application/vnd.wap.wbxml',
- 'wml' => 'text/vnd.wap.wml',
- 'wmlc' => 'application/vnd.wap.wmlc',
- 'wmls' => 'text/vnd.wap.wmlscript',
- 'wmlsc' => 'application/vnd.wap.wmlscriptc',
- 'wrl' => 'model/vrml',
- 'xbm' => 'image/x-xbitmap',
- 'xht' => 'application/xhtml+xml',
- 'xhtml' => 'application/xhtml+xml',
- 'xls' => 'application/vnd.ms-excel',
- 'xml' => 'application/xml',
- 'xpm' => 'image/x-xpixmap',
- 'xsl' => 'application/xml',
- 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
- 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
- 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12',
- 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12',
- 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12',
- 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
- 'xslt' => 'application/xslt+xml',
- 'xul' => 'application/vnd.mozilla.xul+xml',
- 'xwd' => 'image/x-xwindowdump',
- 'xyz' => 'chemical/x-xyz',
- 'zip' => 'application/zip',
- ];
-
- if (isset($knownTypes[$extension])) {
- return $knownTypes[$extension];
- }
-
- return 'unknown/unknown';
- }
-}
diff --git a/src/Parse/ParseGeoPoint.php b/src/Parse/ParseGeoPoint.php
deleted file mode 100755
index 2ddc8cce..00000000
--- a/src/Parse/ParseGeoPoint.php
+++ /dev/null
@@ -1,115 +0,0 @@
-
- * @package Parse
- */
-class ParseGeoPoint implements Encodable
-{
- /**
- * The latitude.
- *
- * @var float
- */
- private $latitude;
-
- /**
- * The longitude.
- *
- * @var float
- */
- private $longitude;
-
- /**
- * Create a Parse GeoPoint object.
- *
- * @param float $lat Latitude.
- * @param float $lon Longitude.
- */
- public function __construct($lat, $lon)
- {
- $this->setLatitude($lat);
- $this->setLongitude($lon);
- }
-
- /**
- * Returns the Latitude value for this GeoPoint.
- *
- * @return float
- */
- public function getLatitude()
- {
- return $this->latitude;
- }
-
- /**
- * Set the Latitude value for this GeoPoint.
- *
- * @param float $lat
- *
- * @throws ParseException
- */
- public function setLatitude($lat)
- {
- if (is_numeric($lat) && !is_float($lat)) {
- $lat = (float)$lat;
- }
- if ($lat > 90.0 || $lat < -90.0) {
- throw new ParseException('Latitude must be within range [-90.0, 90.0]');
- }
- $this->latitude = $lat;
- }
-
- /**
- * Returns the Longitude value for this GeoPoint.
- *
- * @return float
- */
- public function getLongitude()
- {
- return $this->longitude;
- }
-
- /**
- * Set the Longitude value for this GeoPoint.
- *
- * @param float $lon
- *
- * @throws ParseException
- */
- public function setLongitude($lon)
- {
- if (is_numeric($lon) && !is_float($lon)) {
- $lon = (float)$lon;
- }
- if ($lon > 180.0 || $lon < -180.0) {
- throw new ParseException(
- 'Longitude must be within range [-180.0, 180.0]'
- );
- }
- $this->longitude = $lon;
- }
-
- /**
- * Encode to associative array representation.
- *
- * @return array
- */
- public function _encode()
- {
- return [
- '__type' => 'GeoPoint',
- 'latitude' => $this->latitude,
- 'longitude' => $this->longitude,
- ];
- }
-}
diff --git a/src/Parse/ParseHooks.php b/src/Parse/ParseHooks.php
deleted file mode 100644
index a15b5265..00000000
--- a/src/Parse/ParseHooks.php
+++ /dev/null
@@ -1,248 +0,0 @@
-
- * @package Parse
- */
-class ParseHooks
-{
- /**
- * Fetch the list of all cloud functions.
- *
- * @throws ParseException
- *
- * @return array
- */
- public function fetchFunctions()
- {
- $result = ParseClient::_request(
- 'GET',
- 'hooks/functions',
- null,
- null,
- true
- );
-
- return $result;
- }
-
- /**
- * Fetch a single cloud function with a given name.
- *
- * @param string $functionName
- *
- * @throws ParseException
- *
- * @return array
- */
- public function fetchFunction($functionName)
- {
- $result = ParseClient::_request(
- 'GET',
- 'hooks/functions/'.$functionName,
- null,
- null,
- true
- );
-
- return $result;
- }
-
- /**
- * Fetch the list of all cloud triggers.
- *
- * @throws ParseException
- *
- * @return array
- */
- public function fetchTriggers()
- {
- $result = ParseClient::_request(
- 'GET',
- 'hooks/triggers',
- null,
- null,
- true
- );
-
- return $result;
- }
-
- /**
- * Fetch a single cloud trigger.
- *
- * @param string $className
- * @param string $triggerName
- *
- * @throws ParseException
- *
- * @return array
- */
- public function fetchTrigger($className, $triggerName)
- {
- $result = ParseClient::_request(
- 'GET',
- 'hooks/triggers/'.$className.'/'.$triggerName,
- null,
- null,
- true
- );
-
- return $result;
- }
-
- /**
- * Create a new function webhook.
- *
- * @param string $functionName
- * @param string $url
- *
- * @throws ParseException
- *
- * @return array
- */
- public function createFunction($functionName, $url)
- {
- $result = ParseClient::_request(
- 'POST',
- 'hooks/functions',
- null,
- json_encode([
- 'functionName' => $functionName,
- 'url' => $url,
- ]),
- true
- );
-
- return $result;
- }
-
- /**
- * Create a new trigger webhook.
- *
- * @param string $className
- * @param string $triggerName
- * @param string $url
- *
- * @return array
- */
- public function createTrigger($className, $triggerName, $url)
- {
- $result = ParseClient::_request(
- 'POST',
- 'hooks/triggers',
- null,
- json_encode([
- 'className' => $className,
- 'triggerName' => $triggerName,
- 'url' => $url,
- ]),
- true
- );
-
- return $result;
- }
-
- /**
- * Edit the url of a function webhook that was already created.
- *
- * @param string $functionName
- * @param string $url
- *
- * @throws ParseException
- *
- * @return array
- */
- public function editFunction($functionName, $url)
- {
- $result = ParseClient::_request(
- 'PUT',
- 'hooks/functions/'.$functionName,
- null,
- json_encode([
- 'url' => $url,
- ]),
- true
- );
-
- return $result;
- }
-
- /**
- * Edit the url of a trigger webhook that was already crated.
- *
- * @param string $className
- * @param string $triggerName
- * @param string $url
- *
- * @return array
- */
- public function editTrigger($className, $triggerName, $url)
- {
- $result = ParseClient::_request(
- 'PUT',
- 'hooks/triggers/'.$className.'/'.$triggerName,
- null,
- json_encode([
- 'url' => $url,
- ]),
- true
- );
-
- return $result;
- }
-
- /**
- * Delete a function webhook.
- *
- * @param string $functionName
- *
- * @throws ParseException
- *
- * @return array
- */
- public function deleteFunction($functionName)
- {
- $result = ParseClient::_request(
- 'PUT',
- 'hooks/functions/'.$functionName,
- null,
- json_encode([
- '__op' => 'Delete',
- ]),
- true
- );
-
- return $result;
- }
-
- /**
- * Delete a trigger webhook.
- *
- * @param string $className
- * @param string $triggerName
- *
- * @return array
- */
- public function deleteTrigger($className, $triggerName)
- {
- $result = ParseClient::_request(
- 'PUT',
- 'hooks/triggers/'.$className.'/'.$triggerName,
- null,
- json_encode([
- '__op' => 'Delete',
- ]),
- true
- );
-
- return $result;
- }
-}
diff --git a/src/Parse/ParseInstallation.php b/src/Parse/ParseInstallation.php
deleted file mode 100644
index 82705795..00000000
--- a/src/Parse/ParseInstallation.php
+++ /dev/null
@@ -1,152 +0,0 @@
-
- * @package Parse
- */
-class ParseInstallation extends ParseObject
-{
- /**
- * Parse Class name
- *
- * @var string
- */
- public static $parseClassName = '_Installation';
-
- /**
- * Gets the installation id for this installation
- *
- * @return string
- */
- public function getInstallationId()
- {
- return $this->get('installationId');
- }
-
- /**
- * Gets the device token for this installation
- *
- * @return string
- */
- public function getDeviceToken()
- {
- return $this->get('deviceToken');
- }
-
- /**
- * Get channels for this installation
- *
- * @return array
- */
- public function getChannels()
- {
- return $this->get('channels');
- }
-
- /**
- * Gets the device type of this installation
- *
- * @return string
- */
- public function getDeviceType()
- {
- return $this->get('deviceType');
- }
-
- /**
- * Gets the push type of this installation
- *
- * @return string
- */
- public function getPushType()
- {
- return $this->get('pushType');
- }
-
- /**
- * Gets the GCM sender id of this installation
- *
- * @return string
- */
- public function getGCMSenderId()
- {
- return $this->get('GCMSenderId');
- }
-
- /**
- * Gets the time zone of this installation
- *
- * @return string
- */
- public function getTimeZone()
- {
- return $this->get('timeZone');
- }
-
- /**
- * Gets the locale id for this installation
- *
- * @return string
- */
- public function getLocaleIdentifier()
- {
- return $this->get('localeIdentifier');
- }
-
- /**
- * Gets the badge number of this installation
- *
- * @return int
- */
- public function getBadge()
- {
- return $this->get('badge');
- }
-
- /**
- * Gets the app version of this installation
- *
- * @return string
- */
- public function getAppVersion()
- {
- return $this->get('appVersion');
- }
-
- /**
- * Get the app name for this installation
- *
- * @return string
- */
- public function getAppName()
- {
- return $this->get('appName');
- }
-
- /**
- * Gets the app identifier for this installation
- *
- * @return string
- */
- public function getAppIdentifier()
- {
- return $this->get('appIdentifier');
- }
-
- /**
- * Gets the parse version for this installation
- *
- * @return string
- */
- public function getParseVersion()
- {
- return $this->get('parseVersion');
- }
-}
diff --git a/src/Parse/ParseLogs.php b/src/Parse/ParseLogs.php
deleted file mode 100644
index 99ae6bcb..00000000
--- a/src/Parse/ParseLogs.php
+++ /dev/null
@@ -1,89 +0,0 @@
-
- * @package Parse
- */
-class ParseLogs
-{
-
- /**
- * Requests script logs from the server
- *
- * @param string $level Level of logs to return (info/error), default is info
- * @param int $size Number of rows to return, default is 100
- * @param null $from Earliest logs to return from, defaults to 1 week ago
- * @param null $until Latest logs to return from, defaults to current time
- * @param null $order Order to sort logs by (asc/desc), defaults to descending
- * @return array
- */
- public static function getScriptLogs(
- $level = 'info',
- $size = 100,
- $from = null,
- $until = null,
- $order = null
- ) {
- $data = [
- 'level' => $level,
- 'size' => $size,
- ];
-
- if (isset($from) && $from instanceof \DateTime) {
- $data['from'] = ParseClient::getProperDateFormat($from);
- }
-
- if (isset($until) && $until instanceof \DateTime) {
- $data['until'] = ParseClient::getProperDateFormat($until);
- }
-
- if (isset($order)) {
- $data['order'] = $order;
- }
-
- $response = ParseClient::_request(
- 'GET',
- 'scriptlog',
- null,
- $data,
- true
- );
-
- return $response;
- }
-
- /**
- * Returns info logs
- *
- * @param int $size Lines to return, 100 by default
- * @param null $from Earliest logs to return from, default is 1 week ago
- * @param null $until Latest logs to return from, defaults to current time
- * @param null $order Order to sort logs by (asc/desc), defaults to descending
- * @return array
- */
- public static function getInfoLogs($size = 100, $from = null, $until = null, $order = null)
- {
- return self::getScriptLogs('info', $size, $from, $until, $order);
- }
-
- /**
- * Returns error logs
- *
- * @param int $size Lines to return, 100 by default
- * @param null $from Earliest logs to return from, default is 1 week ago
- * @param null $until Latest logs to return from, defaults to current time
- * @param null $order Order to sort logs by (asc/desc), defaults to descending
- * @return array
- */
- public static function getErrorLogs($size = 100, $from = null, $until = null, $order = null)
- {
- return self::getScriptLogs('error', $size, $from, $until, $order);
- }
-}
diff --git a/src/Parse/ParseMemoryStorage.php b/src/Parse/ParseMemoryStorage.php
deleted file mode 100644
index dff7901d..00000000
--- a/src/Parse/ParseMemoryStorage.php
+++ /dev/null
@@ -1,100 +0,0 @@
-
- * @package Parse
- */
-class ParseMemoryStorage implements ParseStorageInterface
-{
- /**
- * Memory storage
- *
- * @var array
- */
- private $storage = [];
-
- /**
- * Sets a key-value pair in storage.
- *
- * @param string $key The key to set
- * @param mixed $value The value to set
- *
- * @return void
- */
- public function set($key, $value)
- {
- $this->storage[$key] = $value;
- }
-
- /**
- * Remove a key from storage.
- *
- * @param string $key The key to remove.
- *
- * @return void
- */
- public function remove($key)
- {
- unset($this->storage[$key]);
- }
-
- /**
- * Gets the value for a key from storage.
- *
- * @param string $key The key to get the value for
- *
- * @return mixed
- */
- public function get($key)
- {
- if (isset($this->storage[$key])) {
- return $this->storage[$key];
- }
- return null;
- }
-
- /**
- * Clear all the values in storage.
- */
- public function clear()
- {
- $this->storage = [];
- }
-
- /**
- * Save the data, if necessary. Not implemented.
- */
- public function save()
- {
- // No action required.
- return;
- }
-
- /**
- * Get all keys in storage.
- *
- * @return array
- */
- public function getKeys()
- {
- return array_keys($this->storage);
- }
-
- /**
- * Get all key-value pairs from storage.
- *
- * @return array
- */
- public function getAll()
- {
- return $this->storage;
- }
-}
diff --git a/src/Parse/ParseObject.php b/src/Parse/ParseObject.php
deleted file mode 100644
index 26ce7e11..00000000
--- a/src/Parse/ParseObject.php
+++ /dev/null
@@ -1,1648 +0,0 @@
-
- * @package Parse
- */
-class ParseObject implements Encodable
-{
- /**
- * Data as it exists on the server.
- *
- * @var array
- */
- protected $serverData;
-
- /**
- * Set of unsaved operations.
- *
- * @var array
- */
- protected $operationSet;
-
- /**
- * Estimated value of applying operationSet to serverData.
- *
- * @var array
- */
- private $estimatedData;
-
- /**
- * Determine if data available for a given key or not.
- *
- * @var array
- */
- private $dataAvailability;
-
- /**
- * Class name for data on Parse.
- *
- * @var string
- */
- private $className;
-
- /**
- * Unique identifier on Parse.
- *
- * @var string
- */
- private $objectId;
-
- /**
- * Timestamp when object was created.
- *
- * @var \DateTime
- */
- private $createdAt;
-
- /**
- * Timestamp when object was last updated.
- *
- * @var \DateTime
- */
- private $updatedAt;
-
- /**
- * Whether the object has been fully fetched from Parse.
- *
- * @var bool
- */
- private $hasBeenFetched;
-
- /**
- * Holds the registered subclasses and Parse class names.
- *
- * @var array
- */
- private static $registeredSubclasses = [];
-
- /**
- * Parse Class name, overridden by classes subclassing ParseObject
- *
- * @var string
- */
- public static $parseClassName;
-
- /**
- * Create a Parse Object.
- *
- * Creates a pointer object if an objectId is provided,
- * otherwise creates a new object.
- *
- * @param string $className Class Name for data on Parse.
- * @param mixed $objectId Object Id for Existing object.
- * @param bool $isPointer
- *
- * @throws Exception
- */
- public function __construct($className = null, $objectId = null, $isPointer = false)
- {
- if (empty(self::$registeredSubclasses)) {
- throw new Exception(
- 'You must initialize the ParseClient using ParseClient::initialize '.
- 'and your Parse API keys before you can begin working with Objects.',
- 109
- );
- }
- $subclass = static::getSubclass();
- $class = get_called_class();
- if (!$className && $subclass !== false) {
- $className = $subclass;
- }
- if ($class !== __CLASS__ && $className !== $subclass) {
- throw new Exception(
- 'You must specify a Parse class name or register the appropriate '.
- 'subclass when creating a new Object. Use ParseObject::create to '.
- 'create a subclass object.'
- );
- }
-
- $this->className = $className;
- $this->serverData = [];
- $this->operationSet = [];
- $this->estimatedData = [];
- $this->dataAvailability = [];
- $this->objectId = $objectId;
- $this->hasBeenFetched = false;
- if (!$objectId || $isPointer) {
- $this->hasBeenFetched = true;
- }
- }
-
- /**
- * Gets the Subclass className if exists, otherwise false.
- */
- private static function getSubclass()
- {
- return array_search(get_called_class(), self::$registeredSubclasses);
- }
-
- /**
- * Setter to catch property calls and protect certain fields.
- *
- * @param string $key Key to set a value on.
- * @param mixed $value Value to assign.
- *
- * @throws Exception
- */
- public function __set($key, $value)
- {
- if ($key != 'objectId'
- && $key != 'createdAt'
- && $key != 'updatedAt'
- && $key != 'className'
- ) {
- $this->set($key, $value);
- } else {
- throw new Exception('Protected field could not be set.', 139);
- }
- }
-
- /**
- * Getter to catch direct property calls and pass them to the get function.
- *
- * @param string $key Key to retrieve from the Object.
- *
- * @return mixed
- */
- public function __get($key)
- {
- return $this->get($key);
- }
-
- /**
- * Magic handler to catch isset calls to object properties.
- *
- * @param string $key Key to check on the object.
- *
- * @return bool
- */
- public function __isset($key)
- {
- return $this->has($key);
- }
-
- /**
- * Get current value for an object property.
- *
- * @param string $key Key to retrieve from the estimatedData array.
- *
- * @throws Exception
- *
- * @return mixed
- */
- public function get($key)
- {
- if (!$this->_isDataAvailable($key)) {
- throw new Exception(
- 'ParseObject has no data for this key. Call fetch() to get the data.'
- );
- }
- if (isset($this->estimatedData[$key])) {
- return $this->estimatedData[$key];
- }
-
- return null;
- }
-
- /**
- * Get values for all keys of an object.
- *
- * @return array
- */
- public function getAllKeys()
- {
- return $this->estimatedData;
- }
-
- /**
- * Check if the object has a given key.
- *
- * @param string $key Key to check
- *
- * @return bool
- */
- public function has($key)
- {
- return isset($this->estimatedData[$key]);
- }
-
- /**
- * Check if the a value associated with a key has been
- * added/updated/removed and not saved yet.
- *
- * @param string $key
- *
- * @return bool
- */
- public function isKeyDirty($key)
- {
- return isset($this->operationSet[$key]);
- }
-
- /**
- * Check if the object or any of its child objects have unsaved operations.
- *
- * @return bool
- */
- public function isDirty()
- {
- return $this->_isDirty(true);
- }
-
- /**
- * Detects if the object (and optionally the child objects) has unsaved
- * changes.
- *
- * @param bool $considerChildren Whether to consider children when checking for dirty state
- *
- * @return bool
- */
- protected function _isDirty($considerChildren)
- {
- return
- (count($this->operationSet) || $this->objectId === null) ||
- ($considerChildren && $this->hasDirtyChildren());
- }
-
- /**
- * Determines whether this object has child objects that are dirty
- *
- * @return bool
- */
- private function hasDirtyChildren()
- {
- $result = false;
- self::traverse(
- true,
- $this->estimatedData,
- function ($object) use (&$result) {
- if ($object instanceof ParseObject) {
- if ($object->_isDirty(false)) {
- $result = true;
- }
- }
- }
- );
-
- return $result;
- }
-
- /**
- * Returns true if this object exists on the Server
- *
- * @param bool $useMasterKey Whether to use the Master Key.
- *
- * @return bool
- */
- public function exists($useMasterKey = false)
- {
- if (!$this->objectId) {
- return false;
- }
- try {
- $query = new ParseQuery($this->className);
- $query->get($this->objectId, $useMasterKey);
- return true;
- } catch (Exception $e) {
- if ($e->getCode() === 101) {
- return false;
- }
- throw $e;
- }
- }
-
- /**
- * Validate and set a value for an object key.
- *
- * @param string $key Key to set a value for on the object.
- * @param mixed $value Value to set on the key.
- *
- * @throws Exception
- */
- public function set($key, $value)
- {
- if (!$key) {
- throw new Exception('key may not be null.');
- }
- if (is_array($value)) {
- throw new Exception(
- 'Must use setArray() or setAssociativeArray() for this value.'
- );
- }
- $this->_performOperation($key, new SetOperation($value));
- }
-
- /**
- * Set an array value for an object key.
- *
- * @param string $key Key to set the value for on the object.
- * @param array $value Value to set on the key.
- *
- * @throws Exception
- */
- public function setArray($key, $value)
- {
- if (!$key) {
- throw new Exception('key may not be null.');
- }
- if (!is_array($value)) {
- throw new Exception(
- 'Must use set() for non-array values.'
- );
- }
- $this->_performOperation($key, new SetOperation(array_values($value)));
- }
-
- /**
- * Set an associative array value for an object key.
- *
- * @param string $key Key to set the value for on the object.
- * @param array $value Value to set on the key.
- *
- * @throws Exception
- */
- public function setAssociativeArray($key, $value)
- {
- if (!$key) {
- throw new Exception('key may not be null.');
- }
- if (!is_array($value)) {
- throw new Exception(
- 'Must use set() for non-array values.'
- );
- }
- $this->_performOperation($key, new SetOperation($value, true));
- }
-
- /**
- * Remove a value from an array for an object key.
- *
- * @param string $key Key to remove the value from on the object.
- * @param mixed $value Value to remove from the array.
- *
- * @throws Exception
- */
- public function remove($key, $value)
- {
- if (!$key) {
- throw new Exception('key may not be null.');
- }
- if (!is_array($value)) {
- $value = [$value];
- }
- $this->_performOperation($key, new RemoveOperation($value));
- }
-
- /**
- * Revert all unsaved operations.
- */
- public function revert()
- {
- $this->operationSet = [];
- $this->rebuildEstimatedData();
- }
-
- /**
- * Clear all keys on this object by creating delete operations
- * for each key.
- */
- public function clear()
- {
- foreach ($this->estimatedData as $key => $value) {
- $this->delete($key);
- }
- }
-
- /**
- * Perform an operation on an object property.
- *
- * @param string $key Key to perform an operation upon.
- * @param FieldOperation $operation Operation to perform.
- */
- public function _performOperation($key, FieldOperation $operation)
- {
- $oldValue = null;
- if (isset($this->estimatedData[$key])) {
- $oldValue = $this->estimatedData[$key];
- }
- $newValue = $operation->_apply($oldValue, $this, $key);
- if ($newValue !== null) {
- $this->estimatedData[$key] = $newValue;
- } elseif (isset($this->estimatedData[$key])) {
- unset($this->estimatedData[$key]);
- }
-
- if (isset($this->operationSet[$key])) {
- $oldOperations = $this->operationSet[$key];
- $newOperations = $operation->_mergeWithPrevious($oldOperations);
- $this->operationSet[$key] = $newOperations;
- } else {
- $this->operationSet[$key] = $operation;
- }
- $this->dataAvailability[$key] = true;
- }
-
- /**
- * Get the Parse Class Name for the object.
- *
- * @return string
- */
- public function getClassName()
- {
- return $this->className;
- }
-
- /**
- * Get the objectId for the object, or null if unsaved.
- *
- * @return string|null
- */
- public function getObjectId()
- {
- return $this->objectId;
- }
-
- /**
- * Get the createdAt for the object, or null if unsaved.
- *
- * @return \DateTime|null
- */
- public function getCreatedAt()
- {
- return $this->createdAt;
- }
-
- /**
- * Returns true if the object has been fetched.
- *
- * @return bool
- */
- public function isDataAvailable()
- {
- return $this->hasBeenFetched;
- }
-
- /**
- * Returns whether or not data is available for a given key
- *
- * @param string $key Key to check availability of
- * @return bool
- */
- private function _isDataAvailable($key)
- {
- return $this->isDataAvailable() || isset($this->dataAvailability[$key]);
- }
-
- /**
- * Get the updatedAt for the object, or null if unsaved.
- *
- * @return \DateTime|null
- */
- public function getUpdatedAt()
- {
- return $this->updatedAt;
- }
-
- /**
- * Static method which returns a new Parse Object for a given class
- * Optionally creates a pointer object if the objectId is provided.
- *
- * @param string $className Class Name for data on Parse.
- * @param string $objectId Unique identifier for existing object.
- * @param bool $isPointer If the object is a pointer.
- *
- * @return ParseObject
- */
- public static function create($className, $objectId = null, $isPointer = false)
- {
- if (isset(self::$registeredSubclasses[$className])) {
- return new self::$registeredSubclasses[$className](
- $className,
- $objectId,
- $isPointer
- );
- } else {
- return new self($className, $objectId, $isPointer);
- }
- }
-
- /**
- * Fetch the whole object from the server and update the local object.
- *
- * @param bool $useMasterKey Whether to use the master key and override ACLs
- *
- * @return ParseObject Returns self, so you can chain this call.
- */
- public function fetch($useMasterKey = false)
- {
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
- $response = ParseClient::_request(
- 'GET',
- 'classes/'.$this->className.'/'.$this->objectId,
- $sessionToken,
- null,
- $useMasterKey
- );
- $this->_mergeAfterFetch($response);
-
- return $this;
- }
-
- /**
- * Fetch an array of Parse objects from the server.
- *
- * @param array $objects The ParseObjects to fetch
- * @param array $includeKeys The nested ParseObjects to fetch
- * @param bool $useMasterKey Whether to override ACLs
- *
- * @return ParseObject Returns self, so you can chain this call.
- */
- public function fetchWithInclude(array $includeKeys, $useMasterKey = false)
- {
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
- $response = ParseClient::_request(
- 'GET',
- 'classes/'.$this->className.'/'.$this->objectId.'?include='.implode(',', $includeKeys),
- $sessionToken,
- null,
- $useMasterKey
- );
- $this->_mergeAfterFetch($response);
-
- return $this;
- }
-
- /**
- * Fetch an array of Parse objects from the server.
- *
- * @param array $objects The ParseObjects to fetch
- * @param bool $useMasterKey Whether to override ACLs
- *
- * @return array
- */
- public static function fetchAll(array $objects, $useMasterKey = false)
- {
- $objectIds = static::toObjectIdArray($objects);
- if (!count($objectIds)) {
- return $objects;
- }
- $className = $objects[0]->getClassName();
- $query = new ParseQuery($className);
- $query->containedIn('objectId', $objectIds);
- $query->limit(count($objectIds));
- $results = $query->find($useMasterKey);
-
- return static::updateWithFetchedResults($objects, $results);
- }
-
- /**
- * Fetch an array of Parse Objects from the server with nested Parse Objects.
- *
- * @param array $objects The ParseObjects to fetch
- * @param mixed $includeKeys The nested ParseObjects to fetch
- * @param bool $useMasterKey Whether to override ACLs
- *
- * @return array
- */
- public static function fetchAllWithInclude(array $objects, $includeKeys, $useMasterKey = false)
- {
- $objectIds = static::toObjectIdArray($objects);
- if (!count($objectIds)) {
- return $objects;
- }
- $className = $objects[0]->getClassName();
- $query = new ParseQuery($className);
- $query->containedIn('objectId', $objectIds);
- $query->limit(count($objectIds));
- $query->includeKey($includeKeys);
- $results = $query->find($useMasterKey);
-
- return static::updateWithFetchedResults($objects, $results);
- }
-
- /**
- * Creates an array of object ids from a given array of ParseObjects
- *
- * @param array $objects Objects to create id array from
- * @return array
- * @throws ParseException
- */
- private static function toObjectIdArray(array $objects)
- {
- $objectIds = [];
- $count = count($objects);
- if (!$count) {
- return $objectIds;
- }
- $className = $objects[0]->getClassName();
- for ($i = 0; $i < $count; ++$i) {
- $obj = $objects[$i];
- if ($obj->getClassName() !== $className) {
- throw new ParseException('All objects should be of the same class.', 103);
- } elseif (!$obj->getObjectId()) {
- throw new ParseException('All objects must have an ID.', 104);
- }
- array_push($objectIds, $obj->getObjectId());
- }
-
- return $objectIds;
- }
-
- /**
- * Merges an existing array of objects with their fetched counterparts
- *
- * @param array $objects Original objects to update
- * @param array $fetched Fetched object data to update with
- * @return array
- * @throws ParseException
- */
- private static function updateWithFetchedResults(array $objects, array $fetched)
- {
- $fetchedObjectsById = [];
- foreach ($fetched as $object) {
- $fetchedObjectsById[$object->getObjectId()] = $object;
- }
- $count = count($objects);
- for ($i = 0; $i < $count; ++$i) {
- $obj = $objects[$i];
- if (!isset($fetchedObjectsById[$obj->getObjectId()])) {
- throw new ParseException('All objects must exist on the server.', 101);
- }
- $obj->mergeFromObject($fetchedObjectsById[$obj->getObjectId()]);
- }
-
- return $objects;
- }
-
- /**
- * Merges data received from the server.
- *
- * @param array $result Data retrieved from the server.
- * @param bool $completeData Fetch all data or not.
- */
- public function _mergeAfterFetch($result, $completeData = true)
- {
- // This loop will clear operations for keys provided by the server
- // It will not clear operations for new keys the server doesn't have.
- foreach ($result as $key => $value) {
- if (isset($this->operationSet[$key])) {
- unset($this->operationSet[$key]);
- }
- }
- $this->serverData = [];
- $this->dataAvailability = [];
- $this->mergeFromServer($result, $completeData);
- $this->rebuildEstimatedData();
- }
-
- /**
- * Merges data received from the server with a given selected keys.
- *
- * @param array $result Data retrieved from the server.
- * @param array $selectedKeys Keys to be fetched. Null or empty means all
- * data will be fetched.
- */
- public function _mergeAfterFetchWithSelectedKeys($result, $selectedKeys)
- {
- $this->_mergeAfterFetch($result, $selectedKeys ? empty($selectedKeys) : true);
- foreach ($selectedKeys as $key) {
- $this->dataAvailability[$key] = true;
- }
- }
-
- /**
- * Merges data received from the server.
- *
- * @param array $data Data retrieved from server.
- * @param bool $completeData Fetch all data or not.
- */
- private function mergeFromServer($data, $completeData = true)
- {
- $this->hasBeenFetched = ($this->hasBeenFetched || $completeData) ? true : false;
- $this->_mergeMagicFields($data);
- foreach ($data as $key => $value) {
- if ($key === '__type' && $value === 'className') {
- continue;
- }
-
- $decodedValue = ParseClient::_decode($value);
-
- if (is_array($decodedValue)) {
- if (isset($decodedValue['__type'])) {
- if ($decodedValue['__type'] === 'Relation') {
- $className = $decodedValue['className'];
- $decodedValue = new ParseRelation($this, $key, $className);
- }
- }
- }
- $this->serverData[$key] = $decodedValue;
- $this->dataAvailability[$key] = true;
- }
- if (!$this->updatedAt && $this->createdAt) {
- $this->updatedAt = $this->createdAt;
- }
- }
-
- /**
- * Merge data from other object.
- *
- * @param ParseObject $other Other object to merge data from
- */
- private function mergeFromObject($other)
- {
- $this->objectId = $other->getObjectId();
- $this->createdAt = $other->getCreatedAt();
- $this->updatedAt = $other->getUpdatedAt();
- $this->serverData = $other->serverData;
- $this->operationSet = [];
- $this->hasBeenFetched = true;
- $this->rebuildEstimatedData();
- }
-
- /**
- * Handle merging of special fields for the object.
- *
- * @param array &$data Data received from server.
- */
- public function _mergeMagicFields(&$data)
- {
- if (isset($data['objectId'])) {
- $this->objectId = $data['objectId'];
- unset($data['objectId']);
- }
- if (isset($data['createdAt'])) {
- $this->createdAt = new \DateTime($data['createdAt']);
- unset($data['createdAt']);
- }
- if (isset($data['updatedAt'])) {
- $this->updatedAt = new \DateTime($data['updatedAt']);
- unset($data['updatedAt']);
- }
- if (isset($data['ACL'])) {
- $acl = ParseACL::_createACLFromJSON($data['ACL']);
- $this->serverData['ACL'] = $acl;
- $this->dataAvailability['ACL'] = true;
- unset($data['ACL']);
- }
- }
-
- /**
- * Start from serverData and process operations to generate the current
- * value set for an object.
- */
- protected function rebuildEstimatedData()
- {
- $this->estimatedData = [];
- foreach ($this->serverData as $key => $value) {
- $this->estimatedData[$key] = $value;
- }
- $this->applyOperations($this->operationSet, $this->estimatedData);
- }
-
- /**
- * Apply operations to a target object.
- *
- * @param array $operations Operations set to apply.
- * @param array &$target Target data to affect.
- */
- private function applyOperations($operations, &$target)
- {
- foreach ($operations as $key => $operation) {
- $oldValue = (isset($target[$key]) ? $target[$key] : null);
- $newValue = $operation->_apply($oldValue, $this, $key);
- if (empty($newValue) && !is_array($newValue)
- && $newValue !== null && !is_scalar($newValue)
- ) {
- unset($target[$key]);
- unset($this->dataAvailability[$key]);
- } else {
- $target[$key] = $newValue;
- $this->dataAvailability[$key] = true;
- }
- }
- }
-
- /**
- * Delete the object from Parse.
- *
- * @param bool $useMasterKey Whether to use the master key.
- */
- public function destroy($useMasterKey = false)
- {
- if (!$this->objectId) {
- return;
- }
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
- ParseClient::_request(
- 'DELETE',
- 'classes/'.$this->className.'/'.$this->objectId,
- $sessionToken,
- null,
- $useMasterKey
- );
- }
-
- /**
- * Delete an array of objects.
- *
- * @param array $objects Objects to destroy.
- * @param bool $useMasterKey Whether to use the master key or not.
- * @param int $batchSize Number of objects to process per request
- *
- * @throws ParseAggregateException
- */
- public static function destroyAll(array $objects, $useMasterKey = false, $batchSize = 40)
- {
- $errors = [];
- $objects = array_values($objects); // To support non-ordered arrays
- $count = count($objects);
- if ($count) {
- $processed = 0;
- $currentBatch = [];
- $currentcount = 0;
- while ($processed < $count) {
- ++$currentcount;
- $currentBatch[] = $objects[$processed++];
- if ($currentcount == $batchSize || $processed == $count) {
- $results = static::destroyBatch($currentBatch, $useMasterKey);
- $errors = array_merge($errors, $results);
- $currentBatch = [];
- $currentcount = 0;
- }
- }
- if (count($errors)) {
- throw new ParseAggregateException('Errors during batch destroy.', $errors);
- }
- }
-
- return;
- }
-
- /**
- * Destroy batch of objects.
- *
- * @param ParseObject[] $objects
- * @param bool $useMasterKey
- *
- * @throws ParseException
- *
- * @return array
- */
- private static function destroyBatch(array $objects, $useMasterKey = false)
- {
- $data = [];
- $errors = [];
- foreach ($objects as $object) {
- $data[] = [
- 'method' => 'DELETE',
- 'path' => '/'.ParseClient::getMountPath().
- 'classes/'.$object->getClassName().
- '/'.$object->getObjectId(),
- ];
- }
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
- $result = ParseClient::_request(
- 'POST',
- 'batch',
- $sessionToken,
- json_encode(['requests' => $data]),
- $useMasterKey
- );
- foreach ($objects as $key => $object) {
- if (isset($result[$key]['error'])) {
- $error = $result[$key]['error']['error'];
- $code = isset($result[$key]['error']['code']) ?
- $result[$key]['error']['code'] : -1;
- $errors[] = [
- 'error' => $error,
- 'code' => $code,
- ];
- }
- }
-
- return $errors;
- }
-
- /**
- * Increment a numeric key by a certain value.
- *
- * @param string $key Key for numeric value on object to increment.
- * @param int $value Value to increment by.
- */
- public function increment($key, $value = 1)
- {
- $this->_performOperation($key, new IncrementOperation($value));
- }
-
- /**
- * Add a value to an array property.
- *
- * @param string $key Key for array value on object to add a value to.
- * @param mixed $value Value to add.
- */
- public function add($key, $value)
- {
- $this->_performOperation($key, new AddOperation($value));
- }
-
- /**
- * Add unique values to an array property.
- *
- * @param string $key Key for array value on object.
- * @param mixed $value Value list to add uniquely.
- */
- public function addUnique($key, $value)
- {
- $this->_performOperation($key, new AddUniqueOperation($value));
- }
-
- /**
- * Delete a key from an object.
- *
- * @param string $key Key to remove from object.
- */
- public function delete($key)
- {
- $this->_performOperation($key, new DeleteOperation());
- }
-
- /**
- * Return a JSON encoded value of the object.
- *
- * @return string
- */
- public function _encode()
- {
- $out = [];
- if ($this->objectId) {
- $out['objectId'] = $this->objectId;
- }
- if ($this->createdAt) {
- $out['createdAt'] = $this->createdAt;
- }
- if ($this->updatedAt) {
- $out['updatedAt'] = $this->updatedAt;
- }
- foreach ($this->serverData as $key => $value) {
- $out[$key] = $value;
- }
- foreach ($this->estimatedData as $key => $value) {
- if (is_object($value) && $value instanceof Encodable) {
- $out[$key] = $value->_encode();
- } elseif (is_array($value)) {
- $out[$key] = [];
- foreach ($value as $itemKey => $item) {
- if (is_object($item) && $item instanceof Encodable) {
- $out[$key][$itemKey] = $item->_encode();
- } else {
- $out[$key][$itemKey] = $item;
- }
- }
- } else {
- $out[$key] = $value;
- }
- }
- return json_encode($out);
- }
-
- /**
- * Returns a JSON encoded array of a ParseObject
- *
- * @return string
- */
- public function encode()
- {
- $encoded = [
- 'className' => $this->className,
- 'serverData' => [],
- 'operationSet' => []
- ];
-
- // add special fields
- if (isset($this->objectId)) {
- $encoded['objectId'] = $this->objectId;
- }
- if (isset($this->createdAt)) {
- $encoded['serverData']['createdAt'] = ParseClient::_encode(
- $this->createdAt,
- false
- );
- }
- if (isset($this->updatedAt)) {
- $encoded['serverData']['updatedAt'] = ParseClient::_encode(
- $this->updatedAt,
- false
- );
- }
-
- // add server data
- foreach ($this->serverData as $key => $value) {
- $encoded['serverData'][$key] = ParseClient::_encode($value, true);
- }
-
- // add pending ops
- foreach ($this->operationSet as $key => $op) {
- $encoded['operationSet'][$key] = $op->_encode();
- }
-
- return json_encode($encoded);
- }
-
- /**
- * Decodes and returns a ParseObject from an encoded object
- *
- * @param string|array $encoded Encoded ParseObject to decode
- * @return ParseObject
- * @throws ParseException
- */
- public static function decode($encoded)
- {
- if (!is_array($encoded)) {
- // decode this string
- $encoded = json_decode($encoded, true);
- }
-
- // pull out objectId, if set
- $objectId = isset($encoded['objectId']) ? $encoded['objectId'] : null;
-
- // recreate this object
- $obj = ParseObject::create($encoded['className'], $objectId, !isset($objectId));
-
- if (isset($encoded['serverData']['createdAt'])) {
- $encoded['serverData']['createdAt'] = ParseClient::getProperDateFormat(
- ParseClient::_decode($encoded['serverData']['createdAt'])
- );
- }
- if (isset($encoded['serverData']['updatedAt'])) {
- $encoded['serverData']['updatedAt'] = ParseClient::getProperDateFormat(
- ParseClient::_decode($encoded['serverData']['updatedAt'])
- );
- }
-
- // unset className
- unset($encoded['className']);
-
- // set server data
- $obj->_mergeAfterFetch($encoded['serverData']);
-
- // reinstate op set
- foreach ($encoded['operationSet'] as $key => $value) {
- if (is_array($value)) {
- if (isset($value['__op'])) {
- $op = $value['__op'];
-
- if ($op === 'Add') {
- $obj->_performOperation(
- $key,
- new AddOperation(ParseClient::_decode($value['objects']))
- );
- } elseif ($op === 'AddUnique') {
- $obj->_performOperation(
- $key,
- new AddUniqueOperation(ParseClient::_decode($value['objects']))
- );
- } elseif ($op === 'Delete') {
- $obj->_performOperation($key, new DeleteOperation());
- } elseif ($op === 'Increment') {
- $obj->_performOperation(
- $key,
- new IncrementOperation($value['amount'])
- );
- } elseif ($op === 'AddRelation') {
- $obj->_performOperation(
- $key,
- new ParseRelationOperation(ParseClient::_decode($value['objects']), null)
- );
- } elseif ($op === 'RemoveRelation') {
- $obj->_performOperation(
- $key,
- new ParseRelationOperation(null, ParseClient::_decode($value['objects']))
- );
- } elseif ($op === 'Batch') {
- $ops = $value['ops'];
- $obj->_performOperation(
- $key,
- new ParseRelationOperation(
- ParseClient::_decode($ops[0]['objects']),
- ParseClient::_decode($ops[1]['objects'])
- )
- );
- } elseif ($op === 'Remove') {
- $obj->_performOperation(
- $key,
- new RemoveOperation(ParseClient::_decode($value['objects']))
- );
- } else {
- throw new ParseException("Unrecognized op '{$op}' found during decode.");
- }
- } else {
- if (isset($value['__type'])) {
- // encoded object
- $obj->_performOperation($key, new SetOperation(ParseClient::_decode($value)));
- } elseif ($key === 'ACL') {
- // encoded ACL
- $obj->_performOperation($key, new SetOperation(ParseACL::_createACLFromJSON($value)));
- } else {
- // array
- if (count(array_filter(array_keys($value), 'is_string')) > 0) {
- // associative
- $obj->_performOperation($key, new SetOperation($value, true));
- } else {
- // sequential
- $obj->_performOperation($key, new SetOperation($value));
- }
- }
- }
- } else {
- // set op (not an associative array)
- $obj->_performOperation($key, new SetOperation($value));
- }
- }
-
- return $obj;
- }
-
- /**
- * Returns JSON object of the unsaved operations.
- *
- * @return array
- */
- private function getSaveJSON()
- {
- $this->beforeSave();
- return ParseClient::_encode($this->operationSet, true);
- }
-
- /**
- * Before save stub
- *
- * @return void
- */
- public function beforeSave()
- {
- }
-
- /**
- * Save Object to Parse.
- *
- * @param bool $useMasterKey Whether to use the Master Key.
- */
- public function save($useMasterKey = false)
- {
- if (!$this->isDirty()) {
- return;
- }
- static::deepSave($this, $useMasterKey);
- }
-
- /**
- * Save all the objects in the provided array.
- *
- * @param array $list
- * @param bool $useMasterKey Whether to use the Master Key.
- * @param int $batchSize Number of objects to process per request
- */
- public static function saveAll($list, $useMasterKey = false, $batchSize = 40)
- {
- static::deepSave($list, $useMasterKey, $batchSize);
- }
-
- /**
- * Save object and unsaved children within.
- *
- * @param ParseObject|array $target
- * @param bool $useMasterKey Whether to use the Master Key.
- * @param int $batchSize Number of objects to process per request
- *
- * @throws Exception
- * @throws ParseAggregateException
- * @throws ParseException
- */
- private static function deepSave($target, $useMasterKey = false, $batchSize = 40)
- {
- $unsavedChildren = [];
- $unsavedFiles = [];
- static::findUnsavedChildren($target, $unsavedChildren, $unsavedFiles);
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
-
- foreach ($unsavedFiles as &$file) {
- $file->save($useMasterKey);
- }
-
- $objects = [];
- // Get the set of unique objects among the children.
- foreach ($unsavedChildren as &$obj) {
- if (!in_array($obj, $objects, true)) {
- $objects[] = $obj;
- }
- }
- $remaining = $objects;
-
- while (count($remaining) > 0) {
- $batch = [];
- $newRemaining = [];
-
- foreach ($remaining as $key => &$object) {
- if (count($batch) > $batchSize) {
- $newRemaining[] = $object;
- continue;
- }
- if ($object->canBeSerialized()) {
- $batch[] = $object;
- } else {
- $newRemaining[] = $object;
- }
- }
- $remaining = $newRemaining;
-
- if (count($batch) === 0) {
- throw new Exception('Tried to save a batch with a cycle.');
- }
-
- $requests = [];
- foreach ($batch as $obj) {
- $json = $obj->getSaveJSON();
- $method = 'POST';
- $path = 'classes/'.$obj->getClassName();
- if ($obj->getObjectId()) {
- $path .= '/'.$obj->getObjectId();
- $method = 'PUT';
- }
- $requests[] = ['method' => $method,
- 'path' => $path,
- 'body' => $json,
- ];
- }
-
- if (count($requests) === 1) {
- $req = $requests[0];
- $result = ParseClient::_request(
- $req['method'],
- $req['path'],
- $sessionToken,
- json_encode($req['body']),
- $useMasterKey
- );
- $batch[0]->mergeAfterSave($result);
- } else {
- foreach ($requests as &$r) {
- $r['path'] = '/' . ParseClient::getMountPath() . $r['path'];
- }
- $result = ParseClient::_request(
- 'POST',
- 'batch',
- $sessionToken,
- json_encode(['requests' => $requests]),
- $useMasterKey
- );
-
- $errorCollection = [];
-
- foreach ($batch as $key => &$obj) {
- if (isset($result[$key]['success'])) {
- $obj->mergeAfterSave($result[$key]['success']);
- } elseif (isset($result[$key]['error'])) {
- $response = $result[$key];
- $error = $response['error']['error'];
- $code = isset($response['error']['code']) ?
- $response['error']['code'] : -1;
- $errorCollection[] = [
- 'error' => $error,
- 'code' => $code,
- 'object' => $obj,
- ];
- } else {
- $errorCollection[] = [
- 'error' => 'Unknown error in batch save.',
- 'code' => -1,
- 'object' => $obj,
- ];
- }
- }
- if (count($errorCollection)) {
- throw new ParseAggregateException('Errors during batch save.', $errorCollection);
- }
- }
- }
- }
-
- /**
- * Find unsaved children inside an object.
- *
- * @param ParseObject $object Object to search.
- * @param array &$unsavedChildren Array to populate with children.
- * @param array &$unsavedFiles Array to populate with files.
- */
- private static function findUnsavedChildren($object, &$unsavedChildren, &$unsavedFiles)
- {
- static::traverse(
- true,
- $object,
- function ($obj) use (
- &$unsavedChildren,
- &$unsavedFiles
- ) {
- if ($obj instanceof ParseObject) {
- if ($obj->_isDirty(false)) {
- $unsavedChildren[] = $obj;
- }
- } elseif ($obj instanceof ParseFile) {
- if (!$obj->getURL()) {
- $unsavedFiles[] = $obj;
- }
- }
- }
- );
- }
-
- /**
- * Traverse object to find children.
- *
- * @param bool $deep Should this call traverse deeply
- * @param ParseObject|array &$object Object to traverse.
- * @param callable $mapFunction Function to call for every item.
- * @param array $seen Objects already seen.
- *
- * @return mixed The result of calling mapFunction on the root object.
- */
- private static function traverse($deep, &$object, $mapFunction, $seen = [])
- {
- if ($object instanceof self) {
- if (in_array($object, $seen, true)) {
- return null;
- }
- $seen[] = $object;
- if ($deep) {
- self::traverse(
- $deep,
- $object->estimatedData,
- $mapFunction,
- $seen
- );
- }
-
- return $mapFunction($object);
- }
- if ($object instanceof ParseRelation || $object instanceof ParseFile) {
- return $mapFunction($object);
- }
- if (is_array($object)) {
- foreach ($object as $key => $value) {
- self::traverse($deep, $value, $mapFunction, $seen);
- }
-
- return $mapFunction($object);
- }
-
- return $mapFunction($object);
- }
-
- /**
- * Determine if the current object can be serialized for saving.
- *
- * @return bool
- */
- private function canBeSerialized()
- {
- return self::canBeSerializedAsValue($this->estimatedData);
- }
-
- /**
- * Checks the given object and any children to see if the whole object
- * can be serialized for saving.
- *
- * @param mixed $object The value to check.
- *
- * @return bool
- */
- private static function canBeSerializedAsValue($object)
- {
- $result = true;
- self::traverse(
- false,
- $object,
- function ($obj) use (&$result) {
- // short circuit as soon as possible.
- if ($result === false) {
- return;
- }
- // cannot make a pointer to an unsaved object.
- if ($obj instanceof ParseObject) {
- if (!$obj->getObjectId()) {
- $result = false;
-
- return;
- }
- }
- }
- );
-
- return $result;
- }
-
- /**
- * Merge server data after a save completes.
- *
- * @param array $result Data retrieved from server.
- */
- private function mergeAfterSave($result)
- {
- $this->applyOperations($this->operationSet, $this->serverData);
- $this->mergeFromServer($result);
- $this->operationSet = [];
- $this->rebuildEstimatedData();
- }
-
- /**
- * Access or create a Relation value for a key.
- *
- * @param string $key The key to access the relation for.
- * @param string $className The target class name.
- *
- * @return ParseRelation The ParseRelation object if the relation already
- * exists for the key or can be created for this key.
- */
- public function getRelation($key, $className = null)
- {
- $relation = new ParseRelation($this, $key, $className);
- if (!$className && isset($this->estimatedData[$key])) {
- $object = $this->estimatedData[$key];
- if ($object instanceof ParseRelation) {
- $relation->setTargetClass($object->getTargetClass());
- }
- }
-
- return $relation;
- }
-
- /**
- * Gets a Pointer referencing this Object.
- *
- * @throws \Exception
- *
- * @return array
- */
- public function _toPointer()
- {
- if (!$this->objectId) {
- throw new Exception("Can't serialize an unsaved ParseObject", 104);
- }
-
- return [
- '__type' => 'Pointer',
- 'className' => $this->className,
- 'objectId' => $this->objectId, ];
- }
-
- /**
- * Set ACL for this object.
- *
- * @param ParseACL $acl
- */
- public function setACL($acl)
- {
- $this->_performOperation('ACL', new SetOperation($acl));
- }
-
- /**
- * Get the ACL assigned to the object.
- *
- * @return ParseACL
- */
- public function getACL()
- {
- return $this->getACLWithCopy(true);
- }
-
- /**
- * Internally retrieves the ACL assigned to this object, conditionally returning a copy of the existing one
- *
- * @param bool $mayCopy Whether to return a copy of this acl or not
- * @return ParseACL|null
- */
- private function getACLWithCopy($mayCopy)
- {
- if (!isset($this->estimatedData['ACL'])) {
- return null;
- }
- $acl = $this->estimatedData['ACL'];
- if ($mayCopy && $acl->_isShared()) {
- return clone $acl;
- }
-
- return $acl;
- }
-
- /**
- * Register a subclass. Should be called before any other Parse functions.
- * Cannot be called on the base class ParseObject.
- *
- * @throws \Exception
- */
- public static function registerSubclass()
- {
- if (isset(static::$parseClassName)) {
- if (!in_array(static::$parseClassName, self::$registeredSubclasses)) {
- self::$registeredSubclasses[static::$parseClassName] =
- get_called_class();
- }
- } else {
- throw new Exception(
- 'Cannot register a subclass that does not have a parseClassName'
- );
- }
- }
-
- /**
- * Un-register a subclass.
- * Cannot be called on the base class ParseObject.
- */
- public static function _unregisterSubclass()
- {
- $subclass = static::getSubclass();
- unset(self::$registeredSubclasses[$subclass]);
- }
-
- /**
- * Check whether there is a subclass registered for a given parse class.
- *
- * @param string $parseClassName
- *
- * @return bool
- */
- public static function hasRegisteredSubclass($parseClassName)
- {
- return array_key_exists($parseClassName, self::$registeredSubclasses);
- }
-
- /**
- * Get the registered subclass for a Parse class, or a generic ParseObject
- * if no subclass is registered.
- *
- * @param string $parseClassName
- *
- * @return ParseObject
- */
- public static function getRegisteredSubclass($parseClassName)
- {
- if (self::hasRegisteredSubclass($parseClassName)) {
- return self::$registeredSubclasses[$parseClassName];
- }
-
- return new static($parseClassName);
- }
-
- /**
- * Creates a ParseQuery for the subclass of ParseObject.
- * Cannot be called on the base class ParseObject.
- *
- * @throws \Exception
- *
- * @return ParseQuery
- */
- public static function query()
- {
- $subclass = static::getSubclass();
- if ($subclass === false) {
- throw new Exception(
- 'Cannot create a query for an unregistered subclass.'
- );
- } else {
- return new ParseQuery($subclass);
- }
- }
-}
diff --git a/src/Parse/ParsePolygon.php b/src/Parse/ParsePolygon.php
deleted file mode 100755
index b197fba0..00000000
--- a/src/Parse/ParsePolygon.php
+++ /dev/null
@@ -1,87 +0,0 @@
-
- * @package Parse
- */
-class ParsePolygon implements Encodable
-{
- /**
- * The coordinates.
- *
- * @var array
- */
- private $coordinates;
-
- /**
- * Create a Parse Polygon object.
- *
- * @param array $coords GeoPoints or Coordinates.
- */
- public function __construct($coords)
- {
- $this->setCoordinates($coords);
- }
-
- /**
- * Set the Coordinates value for this Polygon.
- *
- * @param array $coords GeoPoints or Coordinates.
- *
- * @throws ParseException
- */
- public function setCoordinates($coords)
- {
- if (!is_array($coords)) {
- throw new ParseException('Coordinates must be an Array');
- }
- if (count($coords) < 3) {
- throw new ParseException('Polygon must have at least 3 GeoPoints or Points');
- }
- $points = [];
- foreach ($coords as $coord) {
- $geoPoint = null;
- if ($coord instanceof ParseGeoPoint) {
- $geoPoint = $coord;
- } elseif (is_array($coord) && count($coord) === 2) {
- $geoPoint = new ParseGeoPoint($coord[0], $coord[1]);
- } else {
- throw new ParseException('Coordinates must be an Array of GeoPoints or Points');
- }
- $points[] = [$geoPoint->getLatitude(), $geoPoint->getLongitude()];
- }
- $this->coordinates = $points;
- }
-
- /**
- * Returns the Coordinates value for this Polygon.
- *
- * @return array
- */
- public function getCoordinates()
- {
- return $this->coordinates;
- }
-
- /**
- * Encode to associative array representation.
- *
- * @return array
- */
- public function _encode()
- {
- return [
- '__type' => 'Polygon',
- 'coordinates' => $this->coordinates,
- ];
- }
-}
diff --git a/src/Parse/ParsePush.php b/src/Parse/ParsePush.php
deleted file mode 100644
index 4b952bc0..00000000
--- a/src/Parse/ParsePush.php
+++ /dev/null
@@ -1,127 +0,0 @@
-
- * @package Parse
- */
-class ParsePush
-{
- /**
- * Sends a push notification.
- *
- * @param array $data The data of the push notification. Valid fields
- * are:
- * channels - An Array of channels to push to.
- * push_time - A Date object for when to send the push.
- * expiration_time - A Date object for when to expire
- * the push.
- * expiration_interval - The seconds from now to expire the push.
- * where - A ParseQuery over ParseInstallation that is used to match
- * a set of installations to push to.
- * data - The data to send as part of the push
- * @param bool $useMasterKey Whether to use the Master Key for the request
- *
- * @throws \Exception, ParseException
- *
- * @return mixed
- */
- public static function send($data, $useMasterKey = false)
- {
- if (isset($data['expiration_time'])
- && isset($data['expiration_interval'])
- ) {
- throw new Exception(
- 'Both expiration_time and expiration_interval can\'t be set.',
- 138
- );
- }
- if (isset($data['where'])) {
- if ($data['where'] instanceof ParseQuery) {
- $where_options = $data['where']->_getOptions();
-
- if (!isset($where_options['where'])) {
- $data['where'] = '{}';
- } else {
- $data['where'] = $data['where']->_getOptions()['where'];
- }
- } else {
- throw new Exception(
- 'Where parameter for Parse Push must be of type ParseQuery',
- 111
- );
- }
- }
- if (isset($data['push_time'])) {
- //Local push date format is different from iso format generally used in Parse
- //Schedule does not work if date format not correct
- $data['push_time'] = ParseClient::getPushDateFormat($data['push_time'], isset($data['local_time']));
- }
- if (isset($data['expiration_time'])) {
- $data['expiration_time'] = ParseClient::_encode(
- $data['expiration_time'],
- false
- )['iso'];
- }
-
- return ParseClient::_request(
- 'POST',
- 'push',
- null,
- json_encode(ParseClient::_encode($data, true)),
- $useMasterKey,
- 'application/json',
- true
- );
- }
-
- /**
- * Returns whether or not the given response has a push status
- * Checks to see if X-Push-Status-Id is present in $response
- *
- * @param array $response Response from ParsePush::send
- * @return bool
- */
- public static function hasStatus($response)
- {
- return(
- isset($response['_headers']) &&
- isset($response['_headers']['X-Parse-Push-Status-Id'])
- );
- }
-
- /**
- * Returns the PushStatus for a response from ParsePush::send
- *
- * @param array $response Response from ParsePush::send
- * @return null|ParsePushStatus
- */
- public static function getStatus($response)
- {
- if (!isset($response['_headers'])) {
- // missing headers
- return null;
- }
-
- $headers = $response['_headers'];
-
- if (!isset($headers['X-Parse-Push-Status-Id'])) {
- // missing push status id
- return null;
- }
-
- // get our push status id
- $pushStatusId = $response['_headers']['X-Parse-Push-Status-Id'];
-
- // return our push status if it exists
- return ParsePushStatus::getFromId($pushStatusId);
- }
-}
diff --git a/src/Parse/ParsePushStatus.php b/src/Parse/ParsePushStatus.php
deleted file mode 100644
index b382ad69..00000000
--- a/src/Parse/ParsePushStatus.php
+++ /dev/null
@@ -1,194 +0,0 @@
-
- * @package Parse
- */
-class ParsePushStatus extends ParseObject
-{
- /**
- * Parse Class name
- *
- * @var string
- */
- public static $parseClassName = '_PushStatus';
-
- // possible push status values from parse server
- const STATUS_SCHEDULED = 'scheduled';
- const STATUS_PENDING = 'pending';
- const STATUS_RUNNING = 'running';
- const STATUS_SUCCEEDED = 'succeeded';
- const STATUS_FAILED = 'failed';
-
- /**
- * 'scheduled', 'pending', etc. Add constants and 'isPending' and such for better status checking
- */
-
- /**
- * Returns a push status object or null from an id
- *
- * @param string $id Id to get this push status by
- * @return ParsePushStatus|null
- */
- public static function getFromId($id)
- {
- try {
- // return the associated PushStatus object
- $query = new ParseQuery(self::$parseClassName);
- return $query->get($id, true);
- } catch (ParseException $pe) {
- // no push found
- return null;
- }
- }
-
- /**
- * Gets the time this push was sent at
- *
- * @return \DateTime
- */
- public function getPushTime()
- {
- return new \DateTime($this->get("pushTime"));
- }
-
- /**
- * Gets the query used to send this push
- *
- * @return ParseQuery
- */
- public function getPushQuery()
- {
- $query = $this->get("query");
-
- // get the conditions
- $queryConditions = json_decode($query, true);
-
- // setup a query
- $query = new ParseQuery(self::$parseClassName);
-
- // set the conditions
- $query->_setConditions([
- 'where' => $queryConditions
- ]);
-
- return $query;
- }
-
- /**
- * Gets the payload
- *
- * @return array
- */
- public function getPushPayload()
- {
- return json_decode($this->get("payload"), true);
- }
-
- /**
- * Gets the source of this push
- *
- * @return string
- */
- public function getPushSource()
- {
- return $this->get("source");
- }
-
- /**
- * Gets the status of this push
- *
- * @return string
- */
- public function getPushStatus()
- {
- return $this->get("status");
- }
-
- /**
- * Indicates whether this push is scheduled
- *
- * @return bool
- */
- public function isScheduled()
- {
- return $this->getPushStatus() === self::STATUS_SCHEDULED;
- }
-
- /**
- * Indicates whether this push is pending
- *
- * @return bool
- */
- public function isPending()
- {
- return $this->getPushStatus() === self::STATUS_PENDING;
- }
-
- /**
- * Indicates whether this push is running
- *
- * @return bool
- */
- public function isRunning()
- {
- return $this->getPushStatus() === self::STATUS_RUNNING;
- }
-
- /**
- * Indicates whether this push has succeeded
- *
- * @return bool
- */
- public function hasSucceeded()
- {
- return $this->getPushStatus() === self::STATUS_SUCCEEDED;
- }
-
- /**
- * Indicates whether this push has failed
- *
- * @return bool
- */
- public function hasFailed()
- {
- return $this->getPushStatus() === self::STATUS_FAILED;
- }
-
- /**
- * Gets the number of pushes sent
- *
- * @return int
- */
- public function getPushesSent()
- {
- return $this->get("numSent");
- }
-
- /**
- * Gets the hash for this push
- *
- * @return string
- */
- public function getPushHash()
- {
- return $this->get("pushHash");
- }
-
- /**
- * Gets the number of pushes failed
- *
- * @return int
- */
- public function getPushesFailed()
- {
- return $this->get("numFailed");
- }
-}
diff --git a/src/Parse/ParseQuery.php b/src/Parse/ParseQuery.php
deleted file mode 100644
index be7826b8..00000000
--- a/src/Parse/ParseQuery.php
+++ /dev/null
@@ -1,1479 +0,0 @@
-
- * @package Parse
- */
-class ParseQuery
-{
- /**
- * Class name for data stored on Parse.
- *
- * @var string
- */
- private $className;
-
- /**
- * Where constraints.
- *
- * @var array
- */
- private $where = [];
-
- /**
- * Order By keys.
- *
- * @var array
- */
- private $orderBy = [];
-
- /**
- * Include nested objects.
- *
- * @var array
- */
- private $includes = [];
-
- /**
- * Exclude keys.
- *
- * @var array
- */
- private $excludes = [];
-
- /**
- * Include certain keys only.
- *
- * @var array
- */
- private $selectedKeys = [];
-
- /**
- * Skip from the beginning of the search results.
- *
- * @var int
- */
- private $skip = 0;
-
- /**
- * Determines if the query is a count query or a results query.
- *
- * @var int
- */
- private $count;
-
- /**
- * Limit of results, defaults to 100 when not explicitly set.
- *
- * @var int
- */
- private $limit = -1;
-
- /**
- * The read preference for the main query.
- *
- * @var string
- */
- private $readPreference;
-
- /**
- * The read preference for the queries to include pointers.
- *
- * @var string
- */
- private $includeReadPreference;
-
- /**
- * The read preference for the sub queries.
- *
- * @var string
- */
- private $subqueryReadPreference;
-
- /**
- * Create a Parse Query for a given Parse Class.
- *
- * @param mixed $className Class Name of data on Parse.
- */
- public function __construct($className)
- {
- $this->className = $className;
- }
-
- /**
- * Execute a query to retrieve a specific object.
- *
- * @param string $objectId Unique object id to retrieve.
- * @param bool $useMasterKey If the query should use the master key
- *
- * @throws ParseException
- *
- * @return array|ParseObject Returns the selected object or an empty array
- */
- public function get($objectId, $useMasterKey = false)
- {
- $this->equalTo('objectId', $objectId);
- $result = $this->first($useMasterKey);
- if (empty($result)) {
- throw new ParseException('Object not found.', 101);
- }
-
- return $result;
- }
-
- /**
- * Set a constraint for a field matching a given value.
- *
- * @param string $key Key to set up an equals constraint.
- * @param mixed $value Value the key must equal.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function equalTo($key, $value)
- {
- $this->addCondition($key, '$eq', $value);
-
- return $this;
- }
-
- /**
- * Helper for condition queries.
- *
- * @param string $key The key to where constraints
- * @param string $condition The condition name
- * @param mixed $value The condition value, can be a string or an array of strings
- *
- * @throws Exception
- */
- private function addCondition($key, $condition, $value)
- {
- if (!isset($this->where[$key])) {
- $this->where[$key] = [];
- }
- $this->where[$key][$condition] = ParseClient::_encode($value, true);
- }
-
- /**
- * Sets the conditions of this parse query from an array
- *
- * @param array $conditions Array of Conditions to set
- * @throws ParseException
- */
- public function _setConditions($conditions)
- {
- if (!is_array($conditions)) {
- throw new ParseException("Conditions must be in an array");
- }
-
- // iterate over and add each condition
- foreach ($conditions as $key => $entry) {
- switch ($key) {
- case 'where':
- $this->where = $entry;
- break;
-
- case 'include':
- $this->includes = explode(',', $entry);
- break;
-
- case 'excludeKeys':
- $this->excludes = explode(',', $entry);
- break;
-
- case 'keys':
- $this->selectedKeys = explode(',', $entry);
- break;
-
- case 'limit':
- $this->limit = $entry;
- break;
-
- case 'readPreference':
- $this->readPreference = $entry;
- break;
-
- case 'includeReadPreference':
- $this->includeReadPreference = $entry;
- break;
-
- case 'subqueryReadPreference':
- $this->subqueryReadPreference = $entry;
- break;
-
- // skip
- case 'skip':
- $this->skip = $entry;
- break;
-
- // orderBy
- case 'order':
- $this->orderBy = explode(',', $entry);
- break;
-
- // whether this query is for count or not
- case 'count':
- $this->count = $entry;
- break;
-
- default:
- throw new ParseException("Unknown condition to set '{$key}''");
- }
- }
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * be not equal to the provided value.
- *
- * @param string $key The key to check.
- * @param mixed $value The value that must not be equalled.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function notEqualTo($key, $value)
- {
- $this->addCondition($key, '$ne', $value);
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * be less than the provided value.
- *
- * @param string $key The key to check.
- * @param mixed $value The value that provides an Upper bound.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function lessThan($key, $value)
- {
- $this->addCondition($key, '$lt', $value);
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * be less than the provided relative time string.
- *
- * @param string $key The key to check
- * @param string $relativeTime The relative time that provides an upper bound
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function lessThanRelativeTime($key, $relativeTime)
- {
- $this->lessThan($key, [
- '$relativeTime' => $relativeTime
- ]);
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * be greater than the provided value.
- *
- * @param string $key The key to check.
- * @param mixed $value The value that provides an Lower bound.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function greaterThan($key, $value)
- {
- $this->addCondition($key, '$gt', $value);
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * be greater than the provided relative time string.
- *
- * @param string $key The key to check
- * @param string $relativeTime The relative time that provides a lower bound
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function greaterThanRelativeTime($key, $relativeTime)
- {
- $this->greaterThan($key, [
- '$relativeTime' => $relativeTime
- ]);
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * be greater than or equal to the provided value.
- *
- * @param string $key The key to check.
- * @param mixed $value The value that provides a lower bound.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function greaterThanOrEqualTo($key, $value)
- {
- $this->addCondition($key, '$gte', $value);
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * be greater than or equal to the provided relative time string.
- *
- * @param string $key The key to check.
- * @param string $relativeTime The relative time that provides a lower bound
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function greaterThanOrEqualToRelativeTime($key, $relativeTime)
- {
- $this->greaterThanOrEqualTo($key, [
- '$relativeTime' => $relativeTime
- ]);
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * be less than or equal to the provided value.
- *
- * @param string $key The key to check.
- * @param mixed $value The value that provides an upper bound.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function lessThanOrEqualTo($key, $value)
- {
- $this->addCondition($key, '$lte', $value);
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * be less than or equal to the provided date string.
- *
- * @param string $key The key to check.
- * @param string $relativeTime The relative time that provides an upper bound
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function lessThanOrEqualToRelativeTime($key, $relativeTime)
- {
- $this->lessThanOrEqualTo($key, [
- '$relativeTime' => $relativeTime
- ]);
-
- return $this;
- }
-
- /**
- * Converts a string into a regex that matches it.
- * Surrounding with \Q .. \E does this, we just need to escape \E's in
- * the text separately.
- *
- * @param mixed $s The string or array being replaced.
- *
- * @return string Returns the string converted.
- */
- private function quote($s)
- {
- return '\\Q'.str_replace('\\E', '\\E\\\\E\\Q', $s).'\\E';
- }
-
- /**
- * Converts a string into a regex that matches it at the beginning
- *
- * @param mixed $s The string or array being replaced.
- *
- * @return string Returns the string converted.
- */
- private function regexStartWith($s)
- {
- return '^' . $this->quote($s);
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * start with the provided value.
- *
- * @param string $key The key to check.
- * @param mixed $value The substring that the value must start with.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function startsWith($key, $value)
- {
- $this->addCondition($key, '$regex', $this->regexStartWith($value));
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * end with the provided value.
- *
- * @param string $key The key to check.
- * @param mixed $value The substring that the value must end with.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function endsWith($key, $value)
- {
- $this->addCondition($key, '$regex', $this->quote($value).'$');
-
- return $this;
- }
-
- /**
- * Adds a constraint for finding string values that contain a provided
- * string. This may be slow for large datasets.
- *
- * @param string $key The key to check.
- * @param mixed $value The substring that the value must contain.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function contains($key, $value)
- {
- $this->addCondition($key, '$regex', $this->quote($value));
-
- return $this;
- }
-
- /**
- * Adds a constraint to the query that requires a particular key's value to
- * be contained by the provided list of values. Get objects where all array elements match.
- *
- * @param string $key The key to check.
- * @param mixed $value The values that will match.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function containedBy($key, $value)
- {
- $this->addCondition($key, '$containedBy', $value);
-
- return $this;
- }
-
- /**
- * Adds a constraint for finding string values that contain a provided
- * string using Full Text Search
- *
- * @param string $key The key to check.
- * @param mixed $value The substring that the value must contain.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function fullText($key, $value)
- {
- $this->addCondition(
- $key,
- '$text',
- ['$search' => ['$term' => $value]]
- );
-
- return $this;
- }
-
- /**
- * Returns an associative array of the query constraints.
- *
- * @return array
- */
- public function _getOptions()
- {
- $opts = [];
- if (!empty($this->where)) {
- $opts['where'] = $this->where;
- }
- if (count($this->includes)) {
- $opts['include'] = implode(',', $this->includes);
- }
- if (count($this->excludes)) {
- $opts['excludeKeys'] = implode(',', $this->excludes);
- }
- if (count($this->selectedKeys)) {
- $opts['keys'] = implode(',', $this->selectedKeys);
- }
- if ($this->limit >= 0) {
- $opts['limit'] = $this->limit;
- }
- if ($this->skip > 0) {
- $opts['skip'] = $this->skip;
- }
- if ($this->orderBy) {
- $opts['order'] = implode(',', $this->orderBy);
- }
- if ($this->count) {
- $opts['count'] = $this->count;
- }
- if ($this->readPreference) {
- $opts['readPreference'] = $this->readPreference;
- }
- if ($this->includeReadPreference) {
- $opts['includeReadPreference'] = $this->includeReadPreference;
- }
- if ($this->subqueryReadPreference) {
- $opts['subqueryReadPreference'] = $this->subqueryReadPreference;
- }
-
- return $opts;
- }
-
- /**
- * Execute a query to get only the first result.
- *
- * @param bool $useMasterKey If the query should use the master key
- * @param bool $decodeObjects If set to false, will return raw data instead of ParseObject instances
- *
- * @return array|ParseObject Returns the first object or an empty array
- */
- public function first($useMasterKey = false, $decodeObjects = true)
- {
- $this->limit = 1;
- $result = $this->find($useMasterKey, $decodeObjects);
- if (count($result)) {
- return $result[0];
- } else {
- return [];
- }
- }
-
- /**
- * Build query string from query constraints.
- *
- * @param array $queryOptions Associative array of the query constraints.
- *
- * @return string Query string.
- */
- private function buildQueryString($queryOptions)
- {
- if (isset($queryOptions['where'])) {
- $queryOptions['where'] = ParseClient::_encode($queryOptions['where'], true);
- $queryOptions['where'] = json_encode($queryOptions['where']);
- }
-
- return http_build_query($queryOptions, '', '&');
- }
-
- /**
- * Execute a count query and return the count.
- *
- * @param bool $useMasterKey If the query should use the master key
- *
- * @return int
- */
- public function count($useMasterKey = false)
- {
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
- $queryParams = $this->_getOptions();
- $queryParams['limit'] = 0;
- $queryParams['count'] = 1;
- $queryString = $this->buildQueryString($queryParams);
- $result = ParseClient::_request(
- 'GET',
- 'classes/'.$this->className.'?'.$queryString,
- $sessionToken,
- null,
- $useMasterKey
- );
-
- return $result['count'];
- }
-
- /**
- * The response will include the total number of objects satisfying this query,
- * dispite limit / skip. Might be useful for pagination.
- *
- * Note: the results will be an object
- * `results`: holding {ParseObject} array and `count`: integer holding total number
- *
- * @param bool $includeCount If response should include count, true by default.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function withCount($includeCount = true)
- {
- $this->count = (int)$includeCount;
- return $this;
- }
-
- /**
- * Execute a distinct query and return unique values.
- *
- * @param string $key field to find distinct values
- *
- * @return array
- */
- public function distinct($key)
- {
- $sessionToken = null;
- if ($user = ParseUser::getCurrentUser()) {
- $sessionToken = $user->getSessionToken();
- }
- $opts = [];
- if (!empty($this->where)) {
- $opts['where'] = $this->where;
- }
- $opts['distinct'] = $key;
- $queryString = $this->buildQueryString($opts);
- $result = ParseClient::_request(
- 'GET',
- 'aggregate/'.$this->className.'?'.$queryString,
- $sessionToken,
- null,
- true
- );
-
- return $result['results'];
- }
-
- /**
- * Execute an aggregate query and returns aggregate results.
- *
- * @param array $pipeline stages to process query
- *
- * @return array
- */
- public function aggregate($pipeline)
- {
- $sessionToken = null;
- if ($user = ParseUser::getCurrentUser()) {
- $sessionToken = $user->getSessionToken();
- }
- $stages = [];
- foreach ($pipeline as $stage => $value) {
- $stages[$stage] = json_encode($value);
- }
- $queryString = $this->buildQueryString($stages);
- $result = ParseClient::_request(
- 'GET',
- 'aggregate/'.$this->className.'?'.$queryString,
- $sessionToken,
- null,
- true
- );
- if (!isset($result['results'])) {
- return [];
- }
- return $result['results'];
- }
-
- /**
- * Execute a find query and return the results.
- *
- * @param bool $useMasterKey
- * @param bool $decodeObjects If set to false, will return raw data instead of ParseObject instances
- *
- * @return ParseObject[]
- */
- public function find($useMasterKey = false, $decodeObjects = true)
- {
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
- $queryString = $this->buildQueryString($this->_getOptions());
- $result = ParseClient::_request(
- 'GET',
- 'classes/'.$this->className.'?'.$queryString,
- $sessionToken,
- null,
- $useMasterKey
- );
-
- $response = [];
- if (isset($result['count'])) {
- $response['count'] = $result['count'];
- $response['results'] = $this->handleQueryResult($result, $decodeObjects);
- return $response;
- }
-
- return $this->handleQueryResult($result, $decodeObjects);
- }
-
- /**
- * Handles result from ParseClient::_request
- *
- * @param array $result Array of ParseObject raw data.
- * @param bool $decodeObjects If set to false, will return raw data instead of ParseObject instances
- *
- * @return Array Array of ParseObjects or raw data.
- */
- public function handleQueryResult($result, $decodeObjects)
- {
- if (!isset($result['results'])) {
- return [];
- }
- if (!$decodeObjects) {
- return $result['results'];
- }
- $output = [];
- foreach ($result['results'] as $row) {
- $obj = ParseObject::create($this->className, $row['objectId']);
- $obj->_mergeAfterFetchWithSelectedKeys($row, $this->selectedKeys);
- $output[] = $obj;
- }
-
- return $output;
- }
-
- /**
- * Set the skip parameter as a query constraint.
- *
- * @param int $n Number of objects to skip from start of results.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function skip($n)
- {
- $this->skip = $n;
-
- return $this;
- }
-
- /**
- * Set the limit parameter as a query constraint.
- *
- * @param int $n Number of objects to return from the query.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function limit($n)
- {
- $this->limit = $n;
-
- return $this;
- }
-
- /**
- * Set the query orderBy to ascending for the given key(s). It overwrites the
- * existing order criteria.
- *
- * @param mixed $key Key(s) to sort by, which is a string or an array of strings.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function ascending($key)
- {
- $this->orderBy = [];
-
- return $this->addAscending($key);
- }
-
- /**
- * Set the query orderBy to ascending for the given key(s). It can also add
- * secondary sort descriptors without overwriting the existing order.
- *
- * @param mixed $key Key(s) to sort by, which is a string or an array of strings.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function addAscending($key)
- {
- if (is_array($key)) {
- $this->orderBy = array_merge($this->orderBy, $key);
- } else {
- $this->orderBy[] = $key;
- }
-
- return $this;
- }
-
- /**
- * Set the query orderBy to descending for a given key(s). It overwrites the
- * existing order criteria.
- *
- * @param mixed $key Key(s) to sort by, which is a string or an array of strings.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function descending($key)
- {
- $this->orderBy = [];
-
- return $this->addDescending($key);
- }
-
- /**
- * Set the query orderBy to descending for a given key(s). It can also add
- * secondary sort descriptors without overwriting the existing order.
- *
- * @param mixed $key Key(s) to sort by, which is a string or an array of strings.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function addDescending($key)
- {
- if (is_array($key)) {
- $key = array_map(
- function ($element) {
- return '-'.$element;
- },
- $key
- );
- $this->orderBy = array_merge($this->orderBy, $key);
- } else {
- $this->orderBy[] = '-'.$key;
- }
-
- return $this;
- }
-
- /**
- * Add a proximity based constraint for finding objects with key point
- * values near the point given.
- *
- * @param string $key The key that the ParseGeoPoint is stored in.
- * @param ParseGeoPoint $point The reference ParseGeoPoint that is used.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function near($key, $point)
- {
- $this->addCondition($key, '$nearSphere', $point);
-
- return $this;
- }
-
- /**
- * Add a proximity based constraint for finding objects with key point
- * values near the point given and within the maximum distance given.
- *
- * @param string $key The key of the ParseGeoPoint
- * @param ParseGeoPoint $point The ParseGeoPoint that is used.
- * @param int $maxDistance Maximum distance (in radians)
- * @param bool $sort Return objects sorted by distance
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function withinRadians($key, $point, $maxDistance, $sort = true)
- {
- if ($sort) {
- $this->near($key, $point);
- $this->addCondition($key, '$maxDistance', $maxDistance);
- } else {
- $this->addCondition(
- $key,
- '$geoWithin',
- [
- '$centerSphere' => [
- [$point->getLongitude(), $point->getLatitude()],
- $maxDistance
- ]
- ]
- );
- }
-
- return $this;
- }
-
- /**
- * Add a proximity based constraint for finding objects with key point
- * values near the point given and within the maximum distance given.
- * Radius of earth used is 3958.8 miles.
- *
- * @param string $key The key of the ParseGeoPoint
- * @param ParseGeoPoint $point The ParseGeoPoint that is used.
- * @param int $maxDistance Maximum distance (in miles)
- * @param bool $sort Return objects sorted by distance
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function withinMiles($key, $point, $maxDistance, $sort = true)
- {
- return $this->withinRadians($key, $point, $maxDistance / 3958.8, $sort);
- }
-
- /**
- * Add a proximity based constraint for finding objects with key point
- * values near the point given and within the maximum distance given.
- * Radius of earth used is 6371.0 kilometers.
- *
- * @param string $key The key of the ParseGeoPoint
- * @param ParseGeoPoint $point The ParseGeoPoint that is used.
- * @param int $maxDistance Maximum distance (in kilometers)
- * @param bool $sort Return objects sorted by distance
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function withinKilometers($key, $point, $maxDistance, $sort = true)
- {
- return $this->withinRadians($key, $point, $maxDistance / 6371.0, $sort);
- }
-
- /**
- * Add a constraint to the query that requires a particular key's
- * coordinates be contained within a given rectangular geographic bounding
- * box.
- *
- * @param string $key The key of the ParseGeoPoint
- * @param ParseGeoPoint $southwest The lower-left corner of the box.
- * @param ParseGeoPoint $northeast The upper-right corner of the box.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function withinGeoBox($key, $southwest, $northeast)
- {
- $this->addCondition(
- $key,
- '$within',
- ['$box' => [$southwest, $northeast]]
- );
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's
- * coordinates be contained within and on the bounds of a given polygon
- * Supports closed and open (last point is connected to first) paths
- *
- * Polygon must have at least 3 points
- *
- * @param string $key The key of the ParseGeoPoint
- * @param array $points Array of ParseGeoPoint
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function withinPolygon($key, $points)
- {
- $this->addCondition(
- $key,
- '$geoWithin',
- ['$polygon' => $points]
- );
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's
- * coordinates that contains a ParseGeoPoint
- *
- * @param string $key The key of the ParsePolygon
- * @param ParseGeoPoint $point The point that will be contained.
- *
- * @return ParseQuery Returns this query, so you can chain this call.
- */
- public function polygonContains($key, $point)
- {
- $this->addCondition(
- $key,
- '$geoIntersects',
- ['$point' => $point]
- );
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * be contained in the provided list of values.
- *
- * @param string $key The key to check.
- * @param array $values The values that will match.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function containedIn($key, $values)
- {
- $this->addCondition($key, '$in', $values);
-
- return $this;
- }
-
- /**
- * Iterates over each result of a query, calling a callback for each one. The
- * items are processed in an unspecified order. The query may not have any
- * sort order, and may not use limit or skip.
- *
- * @param callable $callback Callback that will be called with each result
- * of the query.
- * @param bool $useMasterKey
- * @param int $batchSize
- *
- * @throws \Exception If query has sort, skip, or limit.
- */
- public function each($callback, $useMasterKey = false, $batchSize = 100)
- {
- if ($this->orderBy || $this->skip || ($this->limit >= 0)) {
- throw new Exception(
- 'Cannot iterate on a query with sort, skip, or limit.'
- );
- }
- $query = new self($this->className);
- $query->where = $this->where;
- $query->includes = $this->includes;
- $query->limit = $batchSize;
- $query->ascending('objectId');
-
- $finished = false;
- while (!$finished) {
- $results = $query->find($useMasterKey);
- $length = count($results);
- for ($i = 0; $i < $length; $i++) {
- $callback($results[$i]);
- }
- if ($length == $query->limit) {
- $query->greaterThan('objectId', $results[$length - 1]->getObjectId());
- } else {
- $finished = true;
- }
- }
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * not be contained in the provided list of values.
- *
- * @param string $key The key to check.
- * @param array $values The values that will not match.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function notContainedIn($key, $values)
- {
- $this->addCondition($key, '$nin', $values);
-
- return $this;
- }
-
- /**
- * Adds a regular expression constraint for finding string values that match
- * the provided regular expression.
- * This may be slow for large datasets.
- *
- * @param string $key The key that the string to match is stored in.
- * @param string $regex The regular expression pattern to match.
- * @param string $modifiers Modifies the search, supports i, m
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function matches($key, $regex, $modifiers = '')
- {
- $this->addCondition($key, '$regex', $regex);
- if (strlen($modifiers)) {
- $this->addCondition($key, '$options', $modifiers);
- }
-
- return $this;
- }
-
- /**
- * Add a constraint that requires that a key's value matches a ParseQuery
- * constraint.
- *
- * @param string $key The key that the contains the object to match
- * the query.
- * @param ParseQuery $query The query that should match.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function matchesQuery($key, $query)
- {
- $queryParam = $query->_getOptions();
- $queryParam['className'] = $query->className;
- $this->addCondition($key, '$inQuery', $queryParam);
-
- return $this;
- }
-
- /**
- * Add a constraint that requires that a key's value not matches a ParseQuery
- * constraint.
- *
- * @param string $key The key that the contains the object not to
- * match the query.
- * @param ParseQuery $query The query that should not match.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function doesNotMatchQuery($key, $query)
- {
- $queryParam = $query->_getOptions();
- $queryParam['className'] = $query->className;
- $this->addCondition($key, '$notInQuery', $queryParam);
-
- return $this;
- }
-
- /**
- * Add a constraint that requires that a key's value matches a value in an
- * object returned by the given query.
- *
- * @param string $key The key that contains the value that is being
- * matched.
- * @param string $queryKey The key in objects returned by the query to
- * match against.
- * @param ParseQuery $query The query to run.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function matchesKeyInQuery($key, $queryKey, $query)
- {
- $queryParam = $query->_getOptions();
- $queryParam['className'] = $query->className;
- $this->addCondition(
- $key,
- '$select',
- ['key' => $queryKey, 'query' => $queryParam]
- );
-
- return $this;
- }
-
- /**
- * Add a constraint that requires that a key's value not match a value in an
- * object returned by the given query.
- *
- * @param string $key The key that contains teh value that is being
- * excluded.
- * @param string $queryKey The key in objects returned by the query to
- * match against.
- * @param ParseQuery $query The query to run.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function doesNotMatchKeyInQuery($key, $queryKey, $query)
- {
- $queryParam = $query->_getOptions();
- $queryParam['className'] = $query->className;
- $this->addCondition(
- $key,
- '$dontSelect',
- ['key' => $queryKey, 'query' => $queryParam]
- );
-
- return $this;
- }
-
- /**
- * Constructs a ParseQuery object that is the OR of the passed in queries objects.
- * All queries must have same class name.
- *
- * @param array $queryObjects Array of ParseQuery objects to OR.
- *
- * @throws \Exception If all queries don't have same class.
- *
- * @return ParseQuery The query that is the OR of the passed in queries.
- */
- public static function orQueries($queryObjects)
- {
- $className = self::_matchClassName($queryObjects);
- $query = new self($className);
- $query->_or($queryObjects);
-
- return $query;
- }
-
- /**
- * Constructs a ParseQuery object that is the NOR of the passed in queries objects.
- * All queries must have same class name.
- *
- * @param array $queryObjects Array of ParseQuery objects to NOR.
- *
- * @throws \Exception If all queries don't have same class.
- *
- * @return ParseQuery The query that is the NOR of the passed in queries.
- */
- public static function norQueries($queryObjects)
- {
- $className = self::_matchClassName($queryObjects);
- $query = new self($className);
- $query->_nor($queryObjects);
-
- return $query;
- }
-
- /**
- * Constructs a ParseQuery object that is the AND of the passed in queries objects.
- * All queries must have same class name.
- *
- * @param array $queryObjects Array of ParseQuery objects to AND.
- *
- * @throws \Exception If all queries don't have same class.
- *
- * @return ParseQuery The query that is the AND of the passed in queries.
- */
- public static function andQueries($queryObjects)
- {
- $className = self::_matchClassName($queryObjects);
- $query = new self($className);
- $query->_and($queryObjects);
-
- return $query;
- }
-
- /**
- * All queries must have same class name.
- *
- * @param array $queryObjects Array of ParseQuery objects.
- *
- * @throws \Exception If all queries don't have same class.
- *
- * @return string class name.
- */
- private static function _matchClassname($queryObjects)
- {
- $className = null;
- $length = count($queryObjects);
- for ($i = 0; $i < $length; $i++) {
- if (is_null($className)) {
- $className = $queryObjects[$i]->className;
- }
- if ($className != $queryObjects[$i]->className) {
- throw new Exception('All queries must be for the same class', 103);
- }
- }
- return $className;
- }
-
- /**
- * Add constraint that at least one of the passed in queries matches.
- *
- * @param array $queries The list of queries to OR.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- private function _or($queries)
- {
- return $this->_mergeQueries('$or', $queries);
- }
-
- /**
- * Add constraint that at none of the passed in queries matches.
- *
- * @param array $queries The list of queries to NOR.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- private function _nor($queries)
- {
- return $this->_mergeQueries('$nor', $queries);
- }
-
- /**
- * Add constraint that at all of the passed in queries matches.
- *
- * @param array $queries The list of queries to OR.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- private function _and($queries)
- {
- return $this->_mergeQueries('$and', $queries);
- }
-
- /**
- * Combines queries for NOR, AND, OR queries.
- *
- * @param string $key The condition $and, $or, $nor.
- * @param array $queries The list of queries to combine.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- private function _mergeQueries($key, $queries)
- {
- $this->where[$key] = [];
- $length = count($queries);
- for ($i = 0; $i < $length; $i++) {
- $this->where[$key][] = $queries[$i]->where;
- }
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * contain each one of the provided list of values.
- *
- * @param string $key The key to check. This key's value must be an array.
- * @param array $values The values that will match.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function containsAll($key, $values)
- {
- $this->addCondition($key, '$all', $values);
-
- return $this;
- }
-
- /**
- * Add a constraint to the query that requires a particular key's value to
- * contain each one of the provided list of values starting with the given string.
- *
- * @param string $key The key to check. This key's value must be an array.
- * @param array $values The values that will match as starting string.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function containsAllStartingWith($key, $values)
- {
- $opts = [];
- for ($i = 0; $i < count($values); $i += 1) {
- $opts[] = ['$regex' => $this->regexStartWith($values[$i])];
- }
-
- return $this->containsAll($key, $opts);
- }
-
- /**
- * Add a constraint for finding objects that contain the given key.
- *
- * @param string $key The key that should exist.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function exists($key)
- {
- $this->addCondition($key, '$exists', true);
-
- return $this;
- }
-
- /**
- * Add a constraint for finding objects that not contain the given key.
- *
- * @param string $key The key that should not exist.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function doesNotExist($key)
- {
- $this->addCondition($key, '$exists', false);
-
- return $this;
- }
-
- /**
- * Restrict the fields of the returned Parse Objects to include only the
- * provided keys. If this is called multiple times, then all of the keys
- * specified in each of the calls will be included.
- *
- * @param mixed $key The name(s) of the key(s) to include. It could be
- * string, or an Array of string.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function select($key)
- {
- if (is_array($key)) {
- $this->selectedKeys = array_merge($this->selectedKeys, $key);
- } else {
- $this->selectedKeys[] = $key;
- }
-
- return $this;
- }
-
- /**
- * Restricts the fields of the returned Parse.Objects to all keys except the
- * provided keys. Exclude takes precedence over select and include.
- *
- * (Requires Parse Server 3.6.0+)
- *
- * @param mixed $key The name(s) of the key(s) to exclude. It could be
- * string, or an Array of string.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function excludeKey($key)
- {
- if (is_array($key)) {
- $this->excludes = array_merge($this->excludes, $key);
- } else {
- $this->excludes[] = $key;
- }
-
- return $this;
- }
-
- /**
- * Include nested Parse Objects for the provided key. You can use dot
- * notation to specify which fields in the included object are also fetch.
- *
- * You can include all nested Parse Objects by passing in '*'. (Requires Parse Server 3.0.0+)
- *
- * @param mixed $key The name(s) of the key(s) to include. It could be
- * string, or an Array of string.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function includeKey($key)
- {
- if (is_array($key)) {
- $this->includes = array_merge($this->includes, $key);
- } else {
- $this->includes[] = $key;
- }
-
- return $this;
- }
-
- /**
- * Includes all nested Parse.Objects.
- *
- * Requires Parse Server 3.0.0+
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function includeAllKeys()
- {
- return $this->includeKey('*');
- }
-
- /**
- * Add constraint for parse relation.
- *
- * @param string $key
- * @param mixed $value
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function relatedTo($key, $value)
- {
- $this->addCondition('$relatedTo', $key, $value);
-
- return $this;
- }
-
- /**
- * Changes the read preference that the backend will use when performing the query to the database.
- *
- * @param string $readPreference The read preference for the main query.
- * @param string $includeReadPreference The read preference for the queries to include pointers.
- * @param string $subqueryReadPreference The read preference for the sub queries.
- *
- * @return ParseQuery Returns the query, so you can chain this call.
- */
- public function readPreference($readPreference, $includeReadPreference = null, $subqueryReadPreference = null)
- {
- $this->readPreference = $readPreference;
- $this->includeReadPreference = $includeReadPreference;
- $this->subqueryReadPreference = $subqueryReadPreference;
-
- return $this;
- }
-}
diff --git a/src/Parse/ParseRelation.php b/src/Parse/ParseRelation.php
deleted file mode 100644
index 2867c54a..00000000
--- a/src/Parse/ParseRelation.php
+++ /dev/null
@@ -1,141 +0,0 @@
-
- * @package Parse
- */
-class ParseRelation implements Encodable
-{
- /**
- * The parent of this relation.
- *
- * @var ParseObject
- */
- private $parent;
-
- /**
- * The key of the relation in the parent object.
- *
- * @var string
- */
- private $key;
-
- /**
- * The className of the target objects.
- *
- * @var string
- */
- private $targetClassName;
-
- /**
- * Creates a new Relation for the given parent object, key and class name of target objects.
- *
- * @param ParseObject $parent The parent of this relation.
- * @param string $key The key of the relation in the parent object.
- * @param string $targetClassName The className of the target objects.
- */
- public function __construct($parent, $key, $targetClassName = null)
- {
- $this->parent = $parent;
- $this->key = $key;
- $this->targetClassName = $targetClassName;
- }
-
- /**
- * Adds a ParseObject or an array of ParseObjects to the relation.
- *
- * @param mixed $objects The item or items to add.
- */
- public function add($objects)
- {
- if (!is_array($objects)) {
- $objects = [$objects];
- }
- $operation = new ParseRelationOperation($objects, null);
- $this->targetClassName = $operation->_getTargetClass();
- $this->parent->_performOperation($this->key, $operation);
- }
-
- /**
- * Removes a ParseObject or an array of ParseObjects from this relation.
- *
- * @param mixed $objects The item or items to remove.
- */
- public function remove($objects)
- {
- if (!is_array($objects)) {
- $objects = [$objects];
- }
- $operation = new ParseRelationOperation(null, $objects);
- $this->targetClassName = $operation->_getTargetClass();
- $this->parent->_performOperation($this->key, $operation);
- }
-
- /**
- * Returns the target classname for the relation.
- *
- * @return string
- */
- public function getTargetClass()
- {
- return $this->targetClassName;
- }
-
- /**
- * Set the target classname for the relation.
- *
- * @param string $className
- */
- public function setTargetClass($className)
- {
- $this->targetClassName = $className;
- }
-
- /**
- * Set the parent object for the relation.
- *
- * @param ParseObject $parent
- */
- public function setParent($parent)
- {
- $this->parent = $parent;
- }
-
- /**
- * Gets a query that can be used to query the objects in this relation.
- *
- * @return ParseQuery That restricts the results to objects in this relations.
- */
- public function getQuery()
- {
- $query = new ParseQuery($this->targetClassName);
- $query->relatedTo('object', $this->parent->_toPointer());
- $query->relatedTo('key', $this->key);
-
- return $query;
- }
-
- /**
- * Return an encoded array of this relation.
- *
- * @return array
- */
- public function _encode()
- {
- return [
- '__type' => 'Relation',
- 'className' => $this->targetClassName
- ];
- }
-}
diff --git a/src/Parse/ParseRole.php b/src/Parse/ParseRole.php
deleted file mode 100644
index 2b1c9aab..00000000
--- a/src/Parse/ParseRole.php
+++ /dev/null
@@ -1,120 +0,0 @@
-
- * @package Parse
- */
-class ParseRole extends ParseObject
-{
- /**
- * Parse Class name
- *
- * @var string
- */
- public static $parseClassName = '_Role';
-
- /**
- * Create a ParseRole object with a given name and ACL.
- *
- * @param string $name
- * @param ParseACL $acl
- *
- * @return ParseRole
- */
- public static function createRole($name, ParseACL $acl)
- {
- $role = new ParseRole();
- $role->setName($name);
- $role->setACL($acl);
-
- return $role;
- }
-
- /**
- * Returns the role name.
- *
- * @return string
- */
- public function getName()
- {
- return $this->get('name');
- }
-
- /**
- * Sets the role name.
- *
- * @param string $name The role name
- *
- * @throws ParseException
- */
- public function setName($name)
- {
- if ($this->getObjectId()) {
- throw new ParseException("A role's name can only be set before it has been saved.");
- }
- if (!is_string($name)) {
- throw new ParseException("A role's name must be a string.", 139);
- }
-
- return $this->set('name', $name);
- }
-
- /**
- * Gets the ParseRelation for the ParseUsers which are direct children of
- * this role. These users are granted any privileges that this role
- * has been granted.
- *
- * @return ParseRelation
- */
- public function getUsers()
- {
- return $this->getRelation('users');
- }
-
- /**
- * Gets the ParseRelation for the ParseRoles which are direct children of
- * this role. These roles' users are granted any privileges that this role
- * has been granted.
- *
- * @return ParseRelation
- */
- public function getRoles()
- {
- return $this->getRelation('roles');
- }
-
- /**
- * Handles pre-saving of this role
- * Calls ParseObject::save to finish
- *
- * @param bool $useMasterKey
- * @throws ParseException
- */
- public function save($useMasterKey = false)
- {
- if (!$this->getACL()) {
- throw new ParseException('Roles must have an ACL.', 123);
- }
- if (!$this->getName() || !is_string($this->getName())) {
- throw new ParseException('Roles must have a name.', 139);
- }
- if ($this->getObjectId() === null) {
- // Not yet saved, verify this name is not taken
- // ParseServer does not validate duplicate role names as of parse-server v2.3.2
- $query = new ParseQuery('_Role');
- $query->equalTo('name', $this->getName());
- if ($query->count(true) > 0) {
- throw new ParseException("Cannot add duplicate role name of '{$this->getName()}'", 137);
- }
- }
-
- return parent::save($useMasterKey);
- }
-}
diff --git a/src/Parse/ParseSchema.php b/src/Parse/ParseSchema.php
deleted file mode 100644
index 5d250c0c..00000000
--- a/src/Parse/ParseSchema.php
+++ /dev/null
@@ -1,704 +0,0 @@
-
- * @package Parse
- */
-class ParseSchema
-{
- /**
- * String data type
- *
- * @var string
- */
- public static $STRING = 'String';
-
- /**
- * Number data type
- *
- * @var string
- */
- public static $NUMBER = 'Number';
-
- /**
- * Boolean data type
- *
- * @var string
- */
- public static $BOOLEAN = 'Boolean';
-
- /**
- * Date data type
- *
- * @var string
- */
- public static $DATE = 'Date';
-
- /**
- * File data type
- *
- * @var string
- */
- public static $FILE = 'File';
-
- /**
- * GeoPoint data type
- *
- * @var string
- */
- public static $GEO_POINT = 'GeoPoint';
-
- /**
- * Polygon data type
- *
- * @var string
- */
- public static $POLYGON = 'Polygon';
-
- /**
- * Array data type
- *
- * @var string
- */
- public static $ARRAY = 'Array';
-
- /**
- * Object data type
- *
- * @var string
- */
- public static $OBJECT = 'Object';
-
- /**
- * Pointer data type
- *
- * @var string
- */
- public static $POINTER = 'Pointer';
-
- /**
- * Relation data type
- *
- * @var string
- */
- public static $RELATION = 'Relation';
-
- /**
- * Class name for data stored on Parse.
- *
- * @var string
- */
- private $className;
-
- /**
- * Fields to create.
- *
- * @var array
- */
- private $fields = [];
-
- /**
- * Indexes to create.
- *
- * @var array
- */
- private $indexes = [];
-
- /**
- * Force to use master key in Schema Methods.
- *
- * @see http://docs.parseplatform.org/rest/guide/#schema
- *
- * @var bool
- */
- private $useMasterKey = true;
-
- /**
- * Create a Parse Schema.
- *
- * @param string|null $className Class Name of data on Parse.
- */
- public function __construct($className = null)
- {
- if ($className) {
- $this->className = $className;
- }
- }
-
- /**
- * Get all the Schema data on Parse.
- *
- * @throws ParseException
- *
- * @return array
- */
- public function all()
- {
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
-
- $result = ParseClient::_request(
- 'GET',
- 'schemas/',
- $sessionToken,
- null,
- $this->useMasterKey
- );
-
- if (!isset($result['results']) || empty($result['results'])) {
- throw new ParseException('Schema not found.', 101);
- }
-
- return $result['results'];
- }
-
- /**
- * Get the Schema from Parse.
- *
- * @throws ParseException
- *
- * @return array
- */
- public function get()
- {
- self::assertClassName();
-
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
-
- $result = ParseClient::_request(
- 'GET',
- 'schemas/'.$this->className,
- $sessionToken,
- null,
- $this->useMasterKey
- );
-
- if (empty($result)) {
- throw new ParseException('Schema not found.', 101);
- }
-
- return $result;
- }
-
- /**
- * Create a new Schema on Parse.
- *
- * @throws \Exception
- *
- * @return array
- */
- public function save()
- {
- self::assertClassName();
-
- $schema = [];
-
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
-
- // Schema
- $schema['className'] = $this->className;
- if (!empty($this->fields)) {
- $schema['fields'] = $this->fields;
- }
-
- if (!empty($this->indexes)) {
- $schema['indexes'] = $this->indexes;
- }
-
- $result = ParseClient::_request(
- 'POST',
- 'schemas/'.$this->className,
- $sessionToken,
- json_encode($schema),
- $this->useMasterKey
- );
-
- if (empty($result)) {
- throw new Exception('Error on create Schema "'.$this->className.'"', 0);
- }
-
- return $result;
- }
-
- /**
- * Update a Schema from Parse.
- *
- * @throws \Exception
- *
- * @return array
- */
- public function update()
- {
- self::assertClassName();
-
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
-
- // Schema
- $schema['className'] = $this->className;
- $schema['fields'] = $this->fields;
- $schema['indexes'] = $this->indexes;
-
- $this->fields = [];
- $this->indexes = [];
-
- $result = ParseClient::_request(
- 'PUT',
- 'schemas/'.$this->className,
- $sessionToken,
- json_encode($schema),
- $this->useMasterKey
- );
-
- if (empty($result)) {
- throw new Exception('Error on update Schema "'.$this->className.'"', 101);
- }
-
- return $result;
- }
-
- /**
- * Removes all objects from a Schema (class) in Parse.
- * EXERCISE CAUTION, running this will delete all objects for this schema and cannot be reversed
- *
- * @throws Exception
- */
- public function purge()
- {
- self::assertClassName();
-
- $result = ParseClient::_request(
- 'DELETE',
- 'purge/'.$this->className,
- null,
- null,
- $this->useMasterKey
- );
-
- if (!empty($result)) {
- throw new Exception('Error on purging all objects from schema "'.$this->className.'"');
- }
- }
-
- /**
- * Removing a Schema from Parse.
- * You can only remove a schema from your app if it is empty (has 0 objects).
- *
- * @throws \Exception
- *
- * @return array
- */
- public function delete()
- {
- self::assertClassName();
-
- $sessionToken = null;
- if (ParseUser::getCurrentUser()) {
- $sessionToken = ParseUser::getCurrentUser()->getSessionToken();
- }
-
- $result = ParseClient::_request(
- 'DELETE',
- 'schemas/'.$this->className,
- $sessionToken,
- null,
- $this->useMasterKey
- );
-
- if (!empty($result)) {
- throw new Exception('Error on delete Schema "'.$this->className.'"', 101);
- }
-
- return $result;
- }
-
- /**
- * Adding a Field to Create / Update a Schema.
- *
- * @param string $fieldName Name of the field that will be created on Parse
- * @param string $fieldType Can be a (String|Number|Boolean|Date|File|GeoPoint|Array|Object|Pointer|Relation)
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addField($fieldName = null, $fieldType = 'String')
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
- if (!$fieldType) {
- throw new Exception('Type name may not be null.');
- }
-
- $this->assertTypes($fieldType);
-
- $this->fields[$fieldName] = [
- 'type' => $fieldType,
- ];
-
- return $this;
- }
-
- /**
- * Adding an Index to Create / Update a Schema.
- *
- * @param string $indexName Name of the index that will be created on Parse
- * @param string $index Key / Value to be saved
- *
- * @throws \Exception
- *
- * @return ParseSchema indexes return self to create index on Parse
- */
- public function addIndex($indexName, $index)
- {
- if (!$indexName) {
- throw new Exception('index name may not be null.', 105);
- }
-
- if (!$index) {
- throw new Exception('index may not be null.', 105);
- }
-
- $this->indexes[$indexName] = $index;
-
- return $this;
- }
-
- /**
- * Adding String Field.
- *
- * @param string $fieldName Name of the field that will be created on Parse
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addString($fieldName = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$STRING,
- ];
-
- return $this;
- }
-
- /**
- * Adding Number Field.
- *
- * @param string $fieldName Name of the field will created on Parse
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addNumber($fieldName = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$NUMBER,
- ];
-
- return $this;
- }
-
- /**
- * Adding Boolean Field.
- *
- * @param string $fieldName Name of the field will created on Parse
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addBoolean($fieldName = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$BOOLEAN,
- ];
-
- return $this;
- }
-
- /**
- * Adding Date Field.
- *
- * @param string $fieldName Name of the field will created on Parse
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addDate($fieldName = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$DATE,
- ];
-
- return $this;
- }
-
- /**
- * Adding File Field.
- *
- * @param string $fieldName Name of the field will created on Parse
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addFile($fieldName = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$FILE,
- ];
-
- return $this;
- }
-
- /**
- * Adding GeoPoint Field.
- *
- * @param string $fieldName Name of the field will created on Parse
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addGeoPoint($fieldName = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$GEO_POINT,
- ];
-
- return $this;
- }
-
- /**
- * Adding Polygon Field.
- *
- * @param string $fieldName Name of the field will created on Parse
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addPolygon($fieldName = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$POLYGON,
- ];
-
- return $this;
- }
-
- /**
- * Adding Array Field.
- *
- * @param string $fieldName Name of the field will created on Parse
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addArray($fieldName = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$ARRAY,
- ];
-
- return $this;
- }
-
- /**
- * Adding Object Field.
- *
- * @param string $fieldName Name of the field will created on Parse
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addObject($fieldName = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$OBJECT,
- ];
-
- return $this;
- }
-
- /**
- * Adding Pointer Field.
- *
- * @param string $fieldName Name of the field will created on Parse
- * @param string $targetClass Name of the target Pointer Class
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addPointer($fieldName = null, $targetClass = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- if (!$targetClass) {
- throw new Exception('You need to set the targetClass of the Pointer.', 103);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$POINTER,
- 'targetClass' => $targetClass,
- ];
-
- return $this;
- }
-
- /**
- * Adding Relation Field.
- *
- * @param string $fieldName Name of the field will created on Parse
- * @param string $targetClass Name of the target Pointer Class
- *
- * @throws \Exception
- *
- * @return ParseSchema fields return self to create field on Parse
- */
- public function addRelation($fieldName = null, $targetClass = null)
- {
- if (!$fieldName) {
- throw new Exception('field name may not be null.', 105);
- }
-
- if (!$targetClass) {
- throw new Exception('You need to set the targetClass of the Relation.', 103);
- }
-
- $this->fields[$fieldName] = [
- 'type' => self::$RELATION,
- 'targetClass' => $targetClass,
- ];
-
- return $this;
- }
-
- /**
- * Deleting a Field to Update on a Schema.
- *
- * @param string $fieldName Name of the field will be deleted
- */
- public function deleteField($fieldName = null)
- {
- $this->fields[$fieldName] = [
- '__op' => 'Delete',
- ];
- }
-
- /**
- * Deleting an Index to Update on a Schema.
- *
- * @param string $indexName Name of the index that will be deleted
- */
- public function deleteIndex($indexName = null)
- {
- $this->indexes[$indexName] = [
- '__op' => 'Delete',
- ];
- }
-
- /**
- * Assert if ClassName has filled.
- *
- * @throws \Exception
- */
- public function assertClassName()
- {
- if ($this->className === null) {
- throw new Exception('You must set a Class Name before making any request.', 103);
- }
- }
-
- /**
- * Assert types of fields.
- *
- * @param string $type
- *
- * @throws \InvalidArgumentException
- */
- public function assertTypes($type = null)
- {
- if ($type !== self::$STRING &&
- $type !== self::$NUMBER &&
- $type !== self::$BOOLEAN &&
- $type !== self::$DATE &&
- $type !== self::$FILE &&
- $type !== self::$GEO_POINT &&
- $type !== self::$POLYGON &&
- $type !== self::$ARRAY &&
- $type !== self::$OBJECT &&
- $type !== self::$POINTER &&
- $type !== self::$RELATION) {
- throw new InvalidArgumentException($type.' is not a valid type.', 1);
- }
- }
-}
diff --git a/src/Parse/ParseServerInfo.php b/src/Parse/ParseServerInfo.php
deleted file mode 100644
index 13da5830..00000000
--- a/src/Parse/ParseServerInfo.php
+++ /dev/null
@@ -1,173 +0,0 @@
-
- * @package Parse
- */
-class ParseServerInfo
-{
- /**
- * Reported server features and configs
- *
- * @var array
- */
- private static $serverFeatures;
-
- /**
- * Reported server version
- *
- * @var string
- */
- private static $serverVersion;
-
- /**
- * Requests, sets and returns server features and version
- *
- * @return array
- * @throws ParseException
- */
- private static function getServerInfo()
- {
- if (!isset(self::$serverFeatures) || !isset(self::$serverVersion)) {
- $info = ParseClient::_request(
- 'GET',
- 'serverInfo/',
- null,
- null,
- true
- );
-
- // validate we have features & version
-
- if (!isset($info['features'])) {
- throw new ParseException('Missing features in server info.');
- }
-
- if (!isset($info['parseServerVersion'])) {
- throw new ParseException('Missing version in server info.');
- }
-
- self::$serverFeatures = $info['features'];
- self::_setServerVersion($info['parseServerVersion']);
- }
-
- return [
- 'features' => self::$serverFeatures,
- 'version' => self::$serverVersion
- ];
- }
-
- /**
- * Sets the current server version.
- * Allows setting the server version to avoid making an additional request
- * if the version is obtained elsewhere.
- *
- * @param string $version Version to set
- */
- public static function _setServerVersion($version)
- {
- self::$serverVersion = $version;
- }
-
- /**
- * Get a specific feature set from the server
- *
- * @param string $key Feature set to get
- * @return mixed
- */
- public static function get($key)
- {
- return self::getServerInfo()['features'][$key];
- }
-
- /**
- * Gets features for the current server
- *
- * @return array
- */
- public static function getFeatures()
- {
- return self::getServerInfo()['features'];
- }
-
- /**
- * Gets the reported version of the current server
- *
- * @return string
- */
- public static function getVersion()
- {
- if (!isset(self::$serverVersion)) {
- return self::getServerInfo()['version'];
- } else {
- return self::$serverVersion;
- }
- }
-
- /**
- * Gets features available for globalConfig
- *
- * @return array
- */
- public static function getGlobalConfigFeatures()
- {
- return self::get('globalConfig');
- }
-
- /**
- * Gets features available for hooks
- *
- * @return array
- */
- public static function getHooksFeatures()
- {
- return self::get('hooks');
- }
-
- /**
- * Gets features available for cloudCode
- *
- * @return array
- */
- public static function getCloudCodeFeatures()
- {
- return self::get('cloudCode');
- }
-
- /**
- * Gets features available for logs
- *
- * @return array
- */
- public static function getLogsFeatures()
- {
- return self::get('logs');
- }
-
- /**
- * Gets features available for push
- *
- * @return array
- */
- public static function getPushFeatures()
- {
- return self::get('push');
- }
-
- /**
- * Gets features available for schemas
- *
- * @return array
- */
- public static function getSchemasFeatures()
- {
- return self::get('schemas');
- }
-}
diff --git a/src/Parse/ParseSession.php b/src/Parse/ParseSession.php
deleted file mode 100644
index c36a3299..00000000
--- a/src/Parse/ParseSession.php
+++ /dev/null
@@ -1,126 +0,0 @@
-
- * @package Parse
- */
-class ParseSession extends ParseObject
-{
- /**
- * Parse Class name
- *
- * @var string
- */
- public static $parseClassName = '_Session';
-
- /**
- * Session token string
- *
- * @var null|string
- */
- private $_sessionToken = null;
-
- /**
- * Returns the session token string.
- *
- * @return string
- */
- public function getSessionToken()
- {
- return $this->_sessionToken;
- }
-
- /**
- * Retrieves the Session object for the currently logged in user.
- *
- * @param bool $useMasterKey If the Master Key should be used to override security.
- *
- * @return ParseSession
- */
- public static function getCurrentSession($useMasterKey = false)
- {
- $token = ParseUser::getCurrentUser()->getSessionToken();
- $response = ParseClient::_request(
- 'GET',
- 'sessions/me',
- $token,
- null,
- $useMasterKey
- );
- $session = new self();
- $session->_mergeAfterFetch($response);
- $session->handleSaveResult();
-
- return $session;
- }
-
- /**
- * Determines whether the current session token is revocable.
- * This method is useful for migrating an existing app to use
- * revocable sessions.
- *
- * @return bool
- */
- public static function isCurrentSessionRevocable()
- {
- $user = ParseUser::getCurrentUser();
- return $user ? self::_isRevocable($user->getSessionToken()) : false;
- }
-
- /**
- * Determines whether a session token is revocable.
- *
- * @param string $token The session token to check
- *
- * @return bool
- */
- public static function _isRevocable($token)
- {
- return strpos($token, 'r:') === 0;
- }
-
- /**
- * Upgrades the current session to a revocable one
- *
- * @throws ParseException
- */
- public static function upgradeToRevocableSession()
- {
- $user = ParseUser::getCurrentUser();
- if ($user) {
- $token = $user->getSessionToken();
- $response = ParseClient::_request(
- 'POST',
- 'upgradeToRevocableSession',
- $token,
- null,
- false
- );
- $session = new self();
- $session->_mergeAfterFetch($response);
- $session->handleSaveResult();
- ParseUser::become($session->getSessionToken());
- } else {
- throw new ParseException('No session to upgrade.');
- }
- }
-
- /**
- * After a save, perform Session object specific logic.
- */
- private function handleSaveResult()
- {
- if (isset($this->serverData['sessionToken'])) {
- $this->_sessionToken = $this->serverData['sessionToken'];
- unset($this->serverData['sessionToken']);
- }
- $this->rebuildEstimatedData();
- }
-}
diff --git a/src/Parse/ParseSessionStorage.php b/src/Parse/ParseSessionStorage.php
deleted file mode 100644
index 03e65a6a..00000000
--- a/src/Parse/ParseSessionStorage.php
+++ /dev/null
@@ -1,118 +0,0 @@
-
- * @package Parse
- */
-class ParseSessionStorage implements ParseStorageInterface
-{
- /**
- * Parse will store its values in a specific key.
- *
- * @var string
- */
- private $storageKey = 'parseData';
-
- /**
- * ParseSessionStorage constructor.
- * @throws ParseException
- */
- public function __construct()
- {
- if (session_status() !== PHP_SESSION_ACTIVE) {
- throw new ParseException(
- 'PHP session_start() must be called first.'
- );
- }
- if (!isset($_SESSION[$this->storageKey])) {
- $_SESSION[$this->storageKey] = [];
- }
- }
-
- /**
- * Sets a key-value pair in storage.
- *
- * @param string $key The key to set
- * @param mixed $value The value to set
- *
- * @return void
- */
- public function set($key, $value)
- {
- $_SESSION[$this->storageKey][$key] = $value;
- }
-
- /**
- * Remove a key from storage.
- *
- * @param string $key The key to remove.
- *
- * @return void
- */
- public function remove($key)
- {
- unset($_SESSION[$this->storageKey][$key]);
- }
-
- /**
- * Gets the value for a key from storage.
- *
- * @param string $key The key to get the value for
- *
- * @return mixed
- */
- public function get($key)
- {
- if (isset($_SESSION[$this->storageKey][$key])) {
- return $_SESSION[$this->storageKey][$key];
- }
-
- return null;
- }
-
- /**
- * Clear all the values in storage.
- *
- * @return void
- */
- public function clear()
- {
- $_SESSION[$this->storageKey] = [];
- }
-
- /**
- * Save the data, if necessary. Not implemented.
- */
- public function save()
- {
- // No action required. PHP handles persistence for $_SESSION.
- return;
- }
-
- /**
- * Get all keys in storage.
- *
- * @return array
- */
- public function getKeys()
- {
- return array_keys($_SESSION[$this->storageKey]);
- }
-
- /**
- * Get all key-value pairs from storage.
- *
- * @return array
- */
- public function getAll()
- {
- return $_SESSION[$this->storageKey];
- }
-}
diff --git a/src/Parse/ParseStorageInterface.php b/src/Parse/ParseStorageInterface.php
deleted file mode 100644
index ffbc2e04..00000000
--- a/src/Parse/ParseStorageInterface.php
+++ /dev/null
@@ -1,73 +0,0 @@
-
- * @package Parse
- */
-interface ParseStorageInterface
-{
- /**
- * Sets a key-value pair in storage.
- *
- * @param string $key The key to set
- * @param mixed $value The value to set
- *
- * @return null
- */
- public function set($key, $value);
-
- /**
- * Remove a key from storage.
- *
- * @param string $key The key to remove.
- *
- * @return null
- */
- public function remove($key);
-
- /**
- * Gets the value for a key from storage.
- *
- * @param string $key The key to get the value for
- *
- * @return mixed
- */
- public function get($key);
-
- /**
- * Clear all the values in storage.
- *
- * @return null
- */
- public function clear();
-
- /**
- * Save the data, if necessary. This would be a no-op when using the
- * $_SESSION implementation, but could be used for saving to file or
- * database as an action instead of on every set.
- *
- * @return null
- */
- public function save();
-
- /**
- * Get all keys in storage.
- *
- * @return array
- */
- public function getKeys();
-
- /**
- * Get all key-value pairs from storage.
- *
- * @return array
- */
- public function getAll();
-}
diff --git a/src/Parse/ParseUser.php b/src/Parse/ParseUser.php
deleted file mode 100644
index 131d1b77..00000000
--- a/src/Parse/ParseUser.php
+++ /dev/null
@@ -1,676 +0,0 @@
-
- * @package Parse
- */
-class ParseUser extends ParseObject
-{
- /**
- * Parse Class name
- *
- * @var string
- */
- public static $parseClassName = '_User';
-
- /**
- * The currently logged-in user.
- *
- * @var ParseUser
- */
- protected static $currentUser = null;
-
- /**
- * The sessionToken for an authenticated user.
- *
- * @var string
- */
- protected $_sessionToken = null;
-
- /**
- * Returns the username.
- *
- * @return string|null
- */
- public function getUsername()
- {
- return $this->get('username');
- }
-
- /**
- * Sets the username for the ParseUser.
- *
- * @param string $username The username
- */
- public function setUsername($username)
- {
- return $this->set('username', $username);
- }
-
- /**
- * Sets the password for the ParseUser.
- *
- * @param string $password The password
- */
- public function setPassword($password)
- {
- return $this->set('password', $password);
- }
-
- /**
- * Returns the email address, if set, for the ParseUser.
- *
- * @return string|null
- */
- public function getEmail()
- {
- return $this->get('email');
- }
-
- /**
- * Sets the email address for the ParseUser.
- *
- * @param string $email The email address
- */
- public function setEmail($email)
- {
- return $this->set('email', $email);
- }
-
- /**
- * Checks whether this user has been authenticated.
- *
- * @return bool
- */
- public function isAuthenticated()
- {
- return $this->_sessionToken !== null;
- }
-
- /**
- * Signs up the current user, or throw if invalid.
- * This will create a new ParseUser on the server, and also persist the
- * session so that you can access the user using ParseUser::getCurrentUser();.
- */
- public function signUp()
- {
- if (!$this->get('username')) {
- throw new ParseException(
- 'Cannot sign up user with an empty name',
- 200
- );
- }
- if (!$this->get('password')) {
- throw new ParseException(
- 'Cannot sign up user with an empty password.',
- 201
- );
- }
- if ($this->getObjectId()) {
- throw new ParseException(
- 'Cannot sign up an already existing user.',
- 208
- );
- }
- parent::save();
- $this->handleSaveResult(true);
- }
-
- /**
- * Logs in and returns a valid ParseUser, or throws if invalid.
- *
- * @param string $username
- * @param string $password
- *
- * @throws ParseException
- *
- * @return ParseUser
- */
- public static function logIn($username, $password)
- {
- if (!$username) {
- throw new ParseException(
- 'Cannot log in user with an empty name',
- 200
- );
- }
- if (!$password) {
- throw new ParseException(
- 'Cannot log in user with an empty password.',
- 201
- );
- }
- $data = ['username' => $username, 'password' => $password];
- $result = ParseClient::_request('POST', 'login', '', json_encode($data));
- $user = new static();
- $user->_mergeAfterFetch($result);
- $user->handleSaveResult(true);
- ParseClient::getStorage()->set('user', $user);
-
- return $user;
- }
-
- /**
- * Uses the master key to log in and return a valid ParseUser, or throws if invalid.
- *
- * @param $userId
- *
- * @throws ParseException
- *
- * @return ParseUser
- */
- public static function logInAs($userId)
- {
- if (!$userId) {
- throw new ParseException(
- 'Cannot log in as user with an empty user id',
- 200
- );
- }
- $data = ['userId' => $userId];
- $result = ParseClient::_request('POST', 'loginAs', '', json_encode($data), true);
- $user = new static();
- $user->_mergeAfterFetch($result);
- $user->handleSaveResult(true);
- ParseClient::getStorage()->set('user', $user);
-
- return $user;
- }
-
- /**
- * Logs in with Facebook details, or throws if invalid.
- *
- * @param string $id the Facebook user identifier
- * @param string $access_token the access token for this session
- * @param \DateTime $expiration_date defaults to 60 days
- *
- * @throws ParseException
- *
- * @return ParseUser
- */
- public static function logInWithFacebook($id, $access_token, $expiration_date = null)
- {
- if (!$id) {
- throw new ParseException(
- 'Cannot log in Facebook user without an id.',
- 250
- );
- }
- if (!$access_token) {
- throw new ParseException(
- 'Cannot log in Facebook user without an access token.',
- 251
- );
- }
- if (!$expiration_date) {
- $expiration_date = new \DateTime();
- $expiration_date->setTimestamp(time() + 86400 * 60);
- }
- $authData = [
- 'id' => $id,
- 'access_token' => $access_token,
- 'expiration_date' => ParseClient::getProperDateFormat($expiration_date),
- ];
-
- return self::logInWith('facebook', $authData);
- }
-
- /**
- * Logs in with Twitter details, or throws if invalid.
- *
- * @param string $id the Twitter user identifier
- * @param string $screen_name the user's Twitter handle
- * @param string $consumer_key the application's consumer key
- * @param string $consumer_secret the application's consumer secret
- * @param string $auth_token the authorized Twitter token for the user
- * @param string $auth_token_secret the secret associated with $auth_token
- *
- * @throws ParseException
- *
- * @return ParseUser
- */
- public static function logInWithTwitter(
- $id,
- $screen_name,
- $consumer_key,
- $consumer_secret = null,
- $auth_token = null,
- $auth_token_secret = null
- ) {
-
- if (!$id) {
- throw new ParseException(
- 'Cannot log in Twitter user without an id.',
- 250
- );
- }
- if (!$screen_name) {
- throw new ParseException(
- 'Cannot log in Twitter user without Twitter screen name.',
- 251
- );
- }
- if (!$consumer_key) {
- throw new ParseException(
- 'Cannot log in Twitter user without a consumer key.',
- 253
- );
- }
- if (!$auth_token) {
- throw new ParseException(
- 'Cannot log in Twitter user without an auth token.',
- 253
- );
- }
- if (!$auth_token_secret) {
- throw new ParseException(
- 'Cannot log in Twitter user without an auth token secret.',
- 253
- );
- }
- $authData = [
- 'id' => $id,
- 'screen_name' => $screen_name,
- 'consumer_key' => $consumer_key,
- 'consumer_secret' => $consumer_secret,
- 'auth_token' => $auth_token,
- 'auth_token_secret' => $auth_token_secret,
- ];
-
- return self::logInWith('twitter', $authData);
- }
-
- /**
- * Login as an anonymous User with REST API. See docs http://parseplatform.org/docs/php/guide/#users
- *
- * @link http://parseplatform.org/docs/rest/guide/#anonymous-user-authdata
- *
- * @throws ParseException
- *
- * @return ParseUser
- */
- public static function loginWithAnonymous()
- {
- /*
- * We use UUID version 4 as the id value
- * @link https://en.wikipedia.org/wiki/Universally_unique_identifier
- */
- $uuid_parts = str_split(md5(mt_rand()), 4);
- $authData = [
- 'id' => $uuid_parts[0].
- $uuid_parts[1].'-'.
- $uuid_parts[2].'-'.
- $uuid_parts[3].'-'.
- $uuid_parts[4].'-'.
- $uuid_parts[5].
- $uuid_parts[6].
- $uuid_parts[7],
- ];
- return self::logInWith('anonymous', $authData);
- }
-
- /**
- * Logs in with a service.
- *
- * @param string $serviceName the name of the service
- * @param array $authData the array of auth data for $serviceName
- *
- * @return ParseUser
- */
- public static function logInWith($serviceName, $authData)
- {
- $data = ['authData' => [
- $serviceName => $authData,
- ]];
- $result = ParseClient::_request('POST', 'users', '', json_encode($data));
- $user = new static();
- $user->_mergeAfterFetch($result);
- $user->handleSaveResult(true);
- ParseClient::getStorage()->set('user', $user);
-
- return $user;
- }
-
- /**
- * Link the user with Facebook details.
- *
- * @param string $id the Facebook user identifier
- * @param string $access_token the access token for this session
- * @param \DateTime $expiration_date defaults to 60 days
- * @param bool $useMasterKey whether to override security
- *
- * @throws ParseException
- *
- * @return ParseUser
- */
- public function linkWithFacebook(
- $id,
- $access_token,
- $expiration_date = null,
- $useMasterKey = false
- ) {
-
- if (!$this->getObjectId()) {
- throw new ParseException(
- 'Cannot link an unsaved user, use ParseUser::logInWithFacebook',
- 104
- );
- }
- if (!$id) {
- throw new ParseException(
- 'Cannot link Facebook user without an id.',
- 250
- );
- }
- if (!$access_token) {
- throw new ParseException(
- 'Cannot link Facebook user without an access token.',
- 251
- );
- }
- if (!$expiration_date) {
- $expiration_date = new \DateTime();
- $expiration_date->setTimestamp(time() + 86400 * 60);
- }
- $authData = [
- 'id' => $id,
- 'access_token' => $access_token,
- 'expiration_date' => ParseClient::getProperDateFormat($expiration_date),
- ];
-
- return $this->linkWith('facebook', $authData, $useMasterKey);
- }
-
- /**
- * Link the user with Twitter details.
- *
- * @param string $id the Twitter user identifier
- * @param string $screen_name the user's Twitter handle
- * @param string $consumer_key the application's consumer key
- * @param string $consumer_secret the application's consumer secret
- * @param string $auth_token the authorized Twitter token for the user
- * @param string $auth_token_secret the secret associated with $auth_token
- * @param bool $useMasterKey whether to override security
- *
- * @throws ParseException
- *
- * @return ParseUser
- */
- public function linkWithTwitter(
- $id,
- $screen_name,
- $consumer_key,
- $consumer_secret = null,
- $auth_token = null,
- $auth_token_secret = null,
- $useMasterKey = false
- ) {
-
- if (!$this->getObjectId()) {
- throw new ParseException('Cannot link an unsaved user, use ParseUser::logInWithTwitter', 104);
- }
- if (!$id) {
- throw new ParseException('Cannot link Twitter user without an id.', 250);
- }
- if (!$screen_name) {
- throw new ParseException('Cannot link Twitter user without Twitter screen name.', 251);
- }
- if (!$consumer_key) {
- throw new ParseException('Cannot link Twitter user without a consumer key.', 253);
- }
- if (!$auth_token) {
- throw new ParseException('Cannot link Twitter user without an auth token.', 253);
- }
- if (!$auth_token_secret) {
- throw new ParseException('Cannot link Twitter user without an auth token secret.', 253);
- }
-
- $authData = [
- 'id' => $id,
- 'screen_name' => $screen_name,
- 'consumer_key' => $consumer_key,
- 'consumer_secret' => $consumer_secret,
- 'auth_token' => $auth_token,
- 'auth_token_secret' => $auth_token_secret,
- ];
-
- return $this->linkWith('twitter', $authData, $useMasterKey);
- }
-
- /**
- * Link the user with a service.
- *
- * @param string $serviceName the name of the service
- * @param array $authData the array of auth data for $serviceName
- * @param bool $useMasterKey Whether or not to use the master key, default is false
- *
- * @return ParseUser
- */
- public function linkWith($serviceName, $authData, $useMasterKey = false)
- {
- $data = ['authData' => [
- $serviceName => $authData,
- ]];
- $result = ParseClient::_request(
- 'PUT',
- 'users/'.$this->getObjectId(),
- $this->getSessionToken(),
- json_encode($data),
- $useMasterKey
- );
- $user = new self();
- $user->_mergeAfterFetch($result);
- $user->handleSaveResult(true);
-
- return $user;
- }
-
- /**
- * Logs in a user with a session token. Calls the /users/me route and if
- * valid, creates and returns the current user.
- *
- * @param string $sessionToken
- *
- * @return ParseUser
- */
- public static function become($sessionToken)
- {
- $result = ParseClient::_request('GET', 'users/me', $sessionToken);
- $user = new static();
- $user->_mergeAfterFetch($result);
- $user->handleSaveResult(true);
- ParseClient::getStorage()->set('user', $user);
-
- return $user;
- }
-
- /**
- * Log out the current user. This will clear the storage and future calls
- * to current will return null.
- * This will make a network request to logout to invalidate the session.
- */
- public static function logOut()
- {
- $user = static::getCurrentUser();
- if ($user) {
- try {
- ParseClient::_request('POST', 'logout', $user->getSessionToken());
- } catch (ParseException $ex) {
- // If this fails, we're going to ignore it.
- }
- static::$currentUser = null;
- }
- ParseClient::getStorage()->remove('user');
- }
-
- /**
- * After a save, perform User object specific logic.
- *
- * @param bool $makeCurrent Whether to set the current user.
- */
- protected function handleSaveResult($makeCurrent = false)
- {
- if (isset($this->serverData['password'])) {
- unset($this->serverData['password']);
- }
- if (isset($this->serverData['sessionToken'])) {
- $this->_sessionToken = $this->serverData['sessionToken'];
- unset($this->serverData['sessionToken']);
- }
- if ($makeCurrent) {
- if (session_id()) {
- // see: https://www.owasp.org/index.php/Session_fixation
- session_regenerate_id();
- }
- static::$currentUser = $this;
- static::saveCurrentUser();
- }
- $this->rebuildEstimatedData();
- }
-
- /**
- * Retrieves the currently logged in ParseUser with a valid session,
- * either from memory or the storage provider, if necessary.
- *
- * @return ParseUser|null
- */
- public static function getCurrentUser()
- {
- if (static::$currentUser instanceof self) {
- return static::$currentUser;
- }
- $storage = ParseClient::getStorage();
- $userData = $storage->get('user');
- if ($userData instanceof self) {
- static::$currentUser = $userData;
-
- return $userData;
- }
- if (isset($userData['id']) && isset($userData['_sessionToken'])) {
- $user = new static(null, $userData['id']);
- unset($userData['id']);
- $user->_sessionToken = $userData['_sessionToken'];
- unset($userData['_sessionToken']);
- foreach ($userData as $key => $value) {
- $user->set($key, $value);
- }
- static::$currentUser = $user;
-
- return $user;
- }
-
- return null;
- }
-
- /**
- * Persists the current user to the storage provider.
- */
- protected static function saveCurrentUser()
- {
- $storage = ParseClient::getStorage();
- $storage->set('user', static::getCurrentUser());
- }
-
- /**
- * Returns the session token, if available.
- *
- * @return string|null
- */
- public function getSessionToken()
- {
- return $this->_sessionToken;
- }
-
- /**
- * Returns true if this user is the current user.
- *
- * @return bool
- */
- public function isCurrent()
- {
- if (static::getCurrentUser() && $this->getObjectId()) {
- if ($this->getObjectId() == static::getCurrentUser()->getObjectId()) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Remove current user's anonymous AuthData
- */
- private function clearAnonymousAuthData()
- {
- $json = json_encode(['authData' => [ 'anonymous' => null]]);
- ParseClient::_request('PUT', 'classes/_User/' . $this->getObjectId(), null, $json, true);
- }
-
- /**
- * Save the current user object, unless it is not signed up.
- *
- * @param bool $useMasterKey Whether to use the Master Key
- *
- * @throws ParseException
- */
- public function save($useMasterKey = false)
- {
- if ($this->getObjectId()) {
- $wasAnonymous = isset($this->operationSet['username'])
- && $this->operationSet['username'] instanceof \Parse\Internal\SetOperation;
- parent::save($useMasterKey);
- if ($wasAnonymous) {
- $this->clearAnonymousAuthData();
- }
- } else {
- throw new ParseException(
- 'You must call signUp to create a new User.',
- 207
- );
- }
- }
-
- /**
- * Requests a password reset email to be sent to the specified email
- * address associated with the user account. This email allows the user
- * to securely reset their password on the Parse site.
- *
- * @param string $email
- */
- public static function requestPasswordReset($email)
- {
- $json = json_encode(['email' => $email]);
- ParseClient::_request('POST', 'requestPasswordReset', null, $json);
- }
-
- /**
- * Request a verification email to be sent to the specified email address
- *
- * @param string $email Email to request a verification for
- */
- public static function requestVerificationEmail($email)
- {
- $json = json_encode(['email' => $email]);
- ParseClient::_request(
- 'POST',
- 'verificationEmailRequest',
- null,
- $json
- );
- }
-
- /**
- * Sets the current user to null. Used internally for testing purposes.
- */
- public static function _clearCurrentUserVariable()
- {
- static::$currentUser = null;
- }
-}
diff --git a/tests/MockEmailAdapter.js b/tests/MockEmailAdapter.js
deleted file mode 100644
index 1f52859c..00000000
--- a/tests/MockEmailAdapter.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const MockEmailAdapter = options => {
- if (!options) {
- throw 'Options were not provided';
- }
- const adapter = {
- sendVerificationEmail: () => Promise.resolve(),
- sendPasswordResetEmail: () => Promise.resolve(),
- sendMail: () => Promise.resolve(),
- };
- if (options.sendMail) {
- adapter.sendMail = options.sendMail;
- }
- if (options.sendPasswordResetEmail) {
- adapter.sendPasswordResetEmail = options.sendPasswordResetEmail;
- }
- if (options.sendVerificationEmail) {
- adapter.sendVerificationEmail = options.sendVerificationEmail;
- }
-
- return adapter;
-};
-
-export default MockEmailAdapter;
diff --git a/tests/Parse/AddOperationTest.php b/tests/Parse/AddOperationTest.php
deleted file mode 100644
index cfa2ee52..00000000
--- a/tests/Parse/AddOperationTest.php
+++ /dev/null
@@ -1,91 +0,0 @@
- 'val'
- ];
- $addOp = new AddOperation($objects);
-
- $this->assertEquals($objects, $addOp->getValue());
- }
-
- /**
- * @group add-op
- */
- public function testBadObjects()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'AddOperation requires an array.'
- );
- new AddOperation('not an array');
- }
-
- /**
- * @group add-op
- */
- public function testMergePrevious()
- {
- $addOp = new AddOperation([
- 'key1' => 'value1'
- ]);
-
- $this->assertEquals($addOp, $addOp->_mergeWithPrevious(null));
-
- // check delete op
- $merged = $addOp->_mergeWithPrevious(new DeleteOperation());
- $this->assertTrue($merged instanceof SetOperation);
-
- // check set op
- $merged = $addOp->_mergeWithPrevious(new SetOperation('newvalue'));
- $this->assertTrue($merged instanceof SetOperation);
- $this->assertEquals([
- 'newvalue',
- 'key1' => 'value1'
- ], $merged->getValue(), 'Value was not as expected');
-
- // check self
- $merged = $addOp->_mergeWithPrevious(new AddOperation(['key2' => 'value2']));
- $this->assertTrue($merged instanceof SetOperation);
- $this->assertEquals([
- 'key2' => 'value2',
- 'key1' => 'value1'
- ], $merged->getValue(), 'Value was not as expected');
- }
-
- /**
- * @group add-op
- */
- public function testInvalidMerge()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Operation is invalid after previous operation.'
- );
- $addOp = new AddOperation([
- 'key1' => 'value1'
- ]);
- $addOp->_mergeWithPrevious(new \DateTime());
- }
-}
diff --git a/tests/Parse/AddUniqueOperationTest.php b/tests/Parse/AddUniqueOperationTest.php
deleted file mode 100644
index 2e173389..00000000
--- a/tests/Parse/AddUniqueOperationTest.php
+++ /dev/null
@@ -1,158 +0,0 @@
- 'val1',
- 'key2' => 'val2'
- ];
- $addUnique = new AddUniqueOperation($objects);
-
- $this->assertEquals($objects, $addUnique->getValue());
- }
-
- /**
- * @group add-unique-op
- */
- public function testBadObjects()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'AddUniqueOperation requires an array.'
- );
- new AddUniqueOperation('not-an-array');
- }
-
- /**
- * @group add-unique-op
- */
- public function testEncode()
- {
- $objects = [
- 'key1' => 'val1',
- 'key2' => 'val2'
- ];
- $addUnique = new AddUniqueOperation($objects);
-
- $encoded = $addUnique->_encode();
-
- $this->assertEquals([
- '__op' => 'AddUnique',
- 'objects' => ParseClient::_encode($objects, true)
- ], $encoded);
- }
-
- /**
- * @group add-unique-op
- */
- public function testMergePrevious()
- {
- $addOp = new AddUniqueOperation([
- 'key1' => 'value1'
- ]);
-
- $this->assertEquals($addOp, $addOp->_mergeWithPrevious(null));
-
- // check delete op
- $merged = $addOp->_mergeWithPrevious(new DeleteOperation());
- $this->assertTrue($merged instanceof SetOperation);
-
- // check set op
- $merged = $addOp->_mergeWithPrevious(new SetOperation('newvalue'));
- $this->assertTrue($merged instanceof SetOperation);
- $this->assertEquals([
- 'newvalue',
- 'value1'
- ], $merged->getValue(), 'Value was not as expected');
-
- // check self
- $merged = $addOp->_mergeWithPrevious(new AddUniqueOperation(['key2' => 'value2']));
- $this->assertTrue($merged instanceof AddUniqueOperation);
- $this->assertEquals([
- 'key2' => 'value2',
- 'value1'
- ], $merged->getValue(), 'Value was not as expected');
- }
-
- /**
- * @group add-unique-op
- */
- public function testInvalidMerge()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Operation is invalid after previous operation.'
- );
- $addOp = new AddUniqueOperation([
- 'key1' => 'value1'
- ]);
- $addOp->_mergeWithPrevious(new IncrementOperation());
- }
-
- /**
- * @group add-unique-op
- */
- public function testApply()
- {
- // test a null old value
- $objects = [
- 'key1' => 'value1'
- ];
- $addOp = new AddUniqueOperation($objects);
- $this->assertEquals($objects, $addOp->_apply(null, null, null));
-
- $addOp = new AddUniqueOperation([
- 'key' => 'string'
- ]);
- $oldValue = $addOp->_apply('string', null, null);
- $this->assertEquals(['string'], $oldValue);
-
- // test saving an object
- $obj = new \DateTime();
- $addOp = new AddUniqueOperation([
- 'object' => $obj
- ]);
- $oldValue = $addOp->_apply($obj, null, null);
- $this->assertEquals($obj, $oldValue[0]);
-
- // create a Parse object to save
- $obj1 = new ParseObject('TestObject');
- $obj1->set('name', 'montymxb');
- $obj1->save();
-
- // test a saved parse object as the old value
- $addOp = new AddUniqueOperation([
- 'object' => $obj1
- ]);
- $oldValue = $addOp->_apply($obj1, null, null);
- $this->assertEquals($obj1, $oldValue[0]);
- }
-}
diff --git a/tests/Parse/ConfigMock.php b/tests/Parse/ConfigMock.php
deleted file mode 100644
index aa8be52c..00000000
--- a/tests/Parse/ConfigMock.php
+++ /dev/null
@@ -1,18 +0,0 @@
-setConfig([
- 'foo' => 'bar',
- 'some' => 1,
- 'another' => 'value'
- ]);
- }
-}
diff --git a/tests/Parse/Helper.php b/tests/Parse/Helper.php
deleted file mode 100644
index 95380113..00000000
--- a/tests/Parse/Helper.php
+++ /dev/null
@@ -1,114 +0,0 @@
-each(
- function (ParseObject $obj) {
- $obj->destroy(true);
- },
- true
- );
- }
-
- public static function setUpWithoutCURLExceptions()
- {
- ParseClient::initialize(
- self::$appId,
- self::$restKey,
- self::$masterKey,
- false,
- );
- }
-
- public static function print($text)
- {
- fwrite(STDOUT, $text . "\n");
- }
-
- public static function printArray($array)
- {
- print_r($array);
- ob_end_flush();
- }
-}
diff --git a/tests/Parse/HttpClientMock.php b/tests/Parse/HttpClientMock.php
deleted file mode 100644
index dc24e6ce..00000000
--- a/tests/Parse/HttpClientMock.php
+++ /dev/null
@@ -1,23 +0,0 @@
-response;
- }
-
- public function setResponse($resp)
- {
- $this->response = $resp;
- }
-}
diff --git a/tests/Parse/IncrementOperationTest.php b/tests/Parse/IncrementOperationTest.php
deleted file mode 100644
index 4ae4693e..00000000
--- a/tests/Parse/IncrementOperationTest.php
+++ /dev/null
@@ -1,67 +0,0 @@
-assertEquals(32, $addOp->getValue());
- }
-
- /**
- * @group increment-op
- */
- public function testMergePrevious()
- {
- $addOp = new IncrementOperation();
-
- $this->assertEquals($addOp, $addOp->_mergeWithPrevious(null));
-
- // check delete op
- $merged = $addOp->_mergeWithPrevious(new DeleteOperation());
- $this->assertTrue($merged instanceof SetOperation);
-
- // check set op
- $merged = $addOp->_mergeWithPrevious(new SetOperation(12));
- $this->assertTrue($merged instanceof SetOperation);
- $this->assertEquals(13, $merged->getValue(), 'Value was not as expected');
-
- // check self
- $merged = $addOp->_mergeWithPrevious(new IncrementOperation(32));
- $this->assertTrue($merged instanceof IncrementOperation);
- $this->assertEquals(33, $merged->getValue(), 'Value was not as expected');
- }
-
- /**
- * @group increment-op
- */
- public function testInvalidMerge()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Operation is invalid after previous operation.'
- );
- $addOp = new IncrementOperation();
- $addOp->_mergeWithPrevious(new AddOperation(['key' => 'value']));
- }
-}
diff --git a/tests/Parse/IncrementTest.php b/tests/Parse/IncrementTest.php
deleted file mode 100644
index 69de8fa3..00000000
--- a/tests/Parse/IncrementTest.php
+++ /dev/null
@@ -1,253 +0,0 @@
-set('yo', 1);
- $obj->increment('yo');
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $result = $query->first();
- $this->assertEquals($result->get('yo'), 2, 'Increment did not work');
- }
-
- public function testIncrement()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('yo', 1);
- $obj->save();
- $obj->increment('yo', 1);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $result = $query->first();
- $this->assertEquals($result->get('yo'), 2, 'Increment did not work');
- }
-
- public function testIncrementByValue()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('yo', 1);
- $obj->save();
- $obj->increment('yo', 5);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $result = $query->first();
- $this->assertEquals($result->get('yo'), 6, 'Increment did not work');
- }
-
- public function testIncrementNegative()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('yo', 1);
- $obj->save();
- $obj->increment('yo', -1);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $result = $query->first();
- $this->assertEquals($result->get('yo'), 0, 'Increment did not work');
- }
-
- public function testIncrementFloat()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('yo', 1);
- $obj->save();
- $obj->increment('yo', 1.5);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $result = $query->first();
- $this->assertEquals($result->get('yo'), 2.5, 'Increment did not work');
- }
-
- public function testIncrementAtomic()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('yo', 1);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $objAgainOne = $query->first();
- $queryAgain = new ParseQuery('TestObject');
- $queryAgain->equalTo('objectId', $objAgainOne->getObjectId());
- $objAgainTwo = $queryAgain->first();
- $objAgainOne->increment('yo');
- $objAgainTwo->increment('yo');
- $objAgainOne->save();
- $objAgainOne->increment('yo');
- $objAgainOne->save();
- $objAgainTwo->save();
- $queryAgainTwo = new ParseQuery('TestObject');
- $queryAgainTwo->equalTo('objectId', $objAgainTwo->getObjectId());
- $objAgainThree = $query->first();
- $this->assertEquals($objAgainThree->get('yo'), 4);
- }
-
- public function testIncrementGetsValueBack()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('yo', 1);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $objAgainOne = $query->first();
- $obj->increment('yo');
- $obj->save();
- $objAgainOne->increment('yo');
- $objAgainOne->save();
- $this->assertEquals($objAgainOne->get('yo'), 3);
- }
-
- public function testIncrementWithOtherUpdates()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('yo', 1);
- $obj->set('foo', 'bar');
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $objAgainOne = $query->first();
- $objAgainOne->increment('yo');
- $objAgainOne->set('foo', 'parse');
- $objAgainOne->save();
- $queryAgain = new ParseQuery('TestObject');
- $queryAgain->equalTo('objectId', $objAgainOne->getObjectId());
- $objAgainTwo = $queryAgain->first();
- $this->assertEquals($objAgainTwo->get('foo'), 'parse');
- $this->assertEquals($objAgainTwo->get('yo'), 2);
- }
-
- public function testIncrementNonNumber()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot increment a non-number type'
- );
- $obj->increment('foo');
- $obj->save();
- }
-
- public function testIncrementOnDeletedField()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('yo', 1);
- $obj->save();
- $obj->delete('yo');
- $obj->increment('yo');
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $result = $query->first();
- $this->assertEquals(
- $result->get('yo'),
- 1,
- 'Error in increment on deleted field'
- );
- }
-
- public function testIncrementEmptyFieldOnFreshObject()
- {
- $obj = ParseObject::create('TestObject');
- $obj->increment('yo');
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $result = $query->first();
- $this->assertEquals(
- $result->get('yo'),
- 1,
- 'Error in increment on empty field of fresh object'
- );
- }
-
- /**
- * @group increment-empty
- */
- public function testIncrementEmptyField()
- {
- $obj = ParseObject::create('TestObject');
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $objAgain = $query->first();
- $obj->increment('yo');
- $objAgain->increment('yo');
- $obj->save();
- $objAgain->save();
- $queryAgain = new ParseQuery('TestObject');
- $queryAgain->equalTo('objectId', $objAgain->getObjectId());
- $objectAgainTwo = $queryAgain->first();
- $this->assertEquals(
- $objectAgainTwo->get('yo'),
- 2,
- 'Error in increment on empty field'
- );
- }
-
- /**
- * @group empty-field-type-conflict
- */
- public function testIncrementEmptyFieldAndTypeConflict()
- {
- $obj = ParseObject::create('TestObject');
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $objAgain = $query->first();
- $obj->set('randomkey', 'bar');
- $obj->save();
- $objAgain->increment('randomkey');
- $this->expectException(
- 'Parse\ParseException',
- 'schema mismatch for TestObject.randomkey; expected String but got Number'
- );
- $objAgain->save();
- }
-
- public function testIncrementEmptyFieldSolidifiesType()
- {
- $obj = ParseObject::create('TestObject');
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $objAgain = $query->first();
- $objAgain->set('randomkeyagain', 'bar');
- $obj->increment('randomkeyagain');
- $obj->save();
- $this->expectException(
- 'Parse\ParseException',
- 'schema mismatch for TestObject.randomkeyagain; '.
- 'expected Number but got String'
- );
- $objAgain->save();
- }
-}
diff --git a/tests/Parse/ParseACLTest.php b/tests/Parse/ParseACLTest.php
deleted file mode 100644
index 349a0950..00000000
--- a/tests/Parse/ParseACLTest.php
+++ /dev/null
@@ -1,683 +0,0 @@
-assertFalse($acl->_isShared());
- }
-
- /**
- * @group acl-one-user
- */
- public function testACLAnObjectOwnedByOneUser()
- {
- $user = new ParseUser();
- $user->setUsername('alice');
- $user->setPassword('wonderland');
- $user->signUp();
- $object = ParseObject::create('Object');
- $acl = ParseACL::createACLWithUser($user);
- $object->setACL($acl);
- $object->save();
- $this->assertTrue($object->getACL()->getUserReadAccess($user));
- $this->assertTrue($object->getACL()->getUserWriteAccess($user));
- $this->assertFalse($object->getACL()->getPublicReadAccess());
- $this->assertFalse($object->getACL()->getPublicWriteAccess());
-
- $user->logOut();
- $query = new ParseQuery('Object');
- try {
- $query->get($object->getObjectId());
- $this->fail('public should be unable to get');
- } catch (ParseException $e) {
- }
-
- $this->assertEquals(0, count($query->find()));
- $object->set('foo', 'bar');
- try {
- $object->save();
- $this->fail('update should fail with object not found');
- } catch (ParseException $e) {
- }
-
- try {
- $object->destroy();
- $this->fail('delete should fail with object not found');
- } catch (ParseException $e) {
- }
-
- ParseUser::logIn('alice', 'wonderland');
-
- $result = $query->get($object->getObjectId());
- $this->assertNotNull($result);
- $this->assertTrue($result->getACL()->getUserReadAccess($user));
- $this->assertTrue($result->getACL()->getUserWriteAccess($user));
- $this->assertFalse($result->getACL()->getPublicReadAccess());
- $this->assertFalse($result->getACL()->getPublicWriteAccess());
-
- $this->assertEquals(1, count($query->find()));
- $object->save();
- $object->destroy();
-
- ParseUser::logOut();
- }
-
- public function testACLMakingAnObjectPubliclyReadable()
- {
- $user = new ParseUser();
- $user->setUsername('alice');
- $user->setPassword('wonderland');
- $user->signUp();
- $object = ParseObject::create('Object');
- $acl = ParseACL::createACLWithUser($user);
- $object->setACL($acl);
- $object->save();
- $this->assertTrue($object->getACL()->getUserReadAccess($user));
- $this->assertTrue($object->getACL()->getUserWriteAccess($user));
- $this->assertFalse($object->getACL()->getPublicReadAccess());
- $this->assertFalse($object->getACL()->getPublicWriteAccess());
-
- $acl->setPublicReadAccess(true);
- $object->setACL($acl);
- $object->save();
-
- $this->assertTrue($object->getACL()->getUserReadAccess($user));
- $this->assertTrue($object->getACL()->getUserWriteAccess($user));
- $this->assertTrue($object->getACL()->getPublicReadAccess());
- $this->assertFalse($object->getACL()->getPublicWriteAccess());
-
- $user->logOut();
- $query = new ParseQuery('Object');
- $result = $query->get($object->getObjectId());
- $this->assertNotNull($result);
-
- $this->assertTrue($result->getACL()->getUserReadAccess($user));
- $this->assertTrue($result->getACL()->getUserWriteAccess($user));
- $this->assertTrue($result->getACL()->getPublicReadAccess());
- $this->assertFalse($result->getACL()->getPublicWriteAccess());
- $this->assertEquals(1, count($query->find()));
- $object->set('foo', 'bar');
- try {
- $object->save();
- $this->fail('update should fail with object not found');
- } catch (ParseException $e) {
- }
-
- try {
- $object->destroy();
- $this->fail('delete should fail with object not found');
- } catch (ParseException $e) {
- }
- }
-
- public function testACLMakingAnObjectPubliclyWritable()
- {
- $user = new ParseUser();
- $user->setUsername('alice');
- $user->setPassword('wonderland');
- $user->signUp();
- $object = ParseObject::create('Object');
- $acl = ParseACL::createACLWithUser($user);
- $object->setACL($acl);
- $object->save();
- $this->assertTrue($object->getACL()->getUserReadAccess($user));
- $this->assertTrue($object->getACL()->getUserWriteAccess($user));
- $this->assertFalse($object->getACL()->getPublicReadAccess());
- $this->assertFalse($object->getACL()->getPublicWriteAccess());
-
- $acl->setPublicWriteAccess(true);
- $object->setACL($acl);
- $object->save();
-
- $this->assertTrue($object->getACL()->getUserReadAccess($user));
- $this->assertTrue($object->getACL()->getUserWriteAccess($user));
- $this->assertFalse($object->getACL()->getPublicReadAccess());
- $this->assertTrue($object->getACL()->getPublicWriteAccess());
-
- $user->logOut();
-
- $query = new ParseQuery('Object');
- try {
- $query->get($object->getObjectId());
- $this->fail('public should be unable to get');
- } catch (ParseException $e) {
- }
-
- $this->assertEquals(0, count($query->find()));
- $object->set('foo', 'bar');
-
- $object->save();
- $object->destroy();
- }
-
- public function testACLSharingWithAnotherUser()
- {
- $bob = new ParseUser();
- $bob->setUsername('bob');
- $bob->setPassword('pass');
- $bob->signUp();
- $bob->logOut();
-
- $alice = new ParseUser();
- $alice->setUsername('alice');
- $alice->setPassword('wonderland');
- $alice->signUp();
- $object = ParseObject::create('Object');
- $acl = ParseACL::createACLWithUser($alice);
- $acl->setUserReadAccess($bob, true);
- $acl->setUserWriteAccess($bob, true);
- $object->setACL($acl);
- $object->save();
- $this->assertTrue($object->getACL()->getUserReadAccess($alice));
- $this->assertTrue($object->getACL()->getUserWriteAccess($alice));
- $this->assertTrue($object->getACL()->getUserReadAccess($bob));
- $this->assertTrue($object->getACL()->getUserWriteAccess($bob));
- $this->assertFalse($object->getACL()->getPublicReadAccess());
- $this->assertFalse($object->getACL()->getPublicWriteAccess());
-
- ParseUser::logOut();
-
- $query = new ParseQuery('Object');
- try {
- $query->get($object->getObjectId());
- $this->fail('public should be unable to get');
- } catch (ParseException $e) {
- }
-
- $this->assertEquals(0, count($query->find()));
- $object->set('foo', 'bar');
- try {
- $object->save();
- $this->fail('update should fail with object not found');
- } catch (ParseException $e) {
- }
-
- try {
- $object->destroy();
- $this->fail('delete should fail with object not found');
- } catch (ParseException $e) {
- }
-
- ParseUser::logIn('bob', 'pass');
-
- $query = new ParseQuery('Object');
- $result = $query->get($object->getObjectId());
- $this->assertNotNull($result);
- $this->assertTrue($result->getACL()->getUserReadAccess($alice));
- $this->assertTrue($result->getACL()->getUserWriteAccess($alice));
- $this->assertTrue($result->getACL()->getUserReadAccess($bob));
- $this->assertTrue($result->getACL()->getUserWriteAccess($bob));
- $this->assertFalse($result->getACL()->getPublicReadAccess());
- $this->assertFalse($result->getACL()->getPublicWriteAccess());
- $this->assertEquals(1, count($query->find()));
- $object->set('foo', 'bar');
- $object->save();
- $object->destroy();
-
- ParseUser::logOut();
- }
-
- public function testACLSaveAllWithPermissions()
- {
- $alice = new ParseUser();
- $alice->setUsername('alice');
- $alice->setPassword('wonderland');
- $alice->signUp();
- $acl = ParseACL::createACLWithUser($alice);
- $object1 = ParseObject::create('Object');
- $object1->setACL($acl);
- $object1->save();
- $object2 = ParseObject::create('Object');
- $object2->setACL($acl);
- $object2->save();
-
- $this->assertTrue($object1->getACL()->getUserReadAccess($alice));
- $this->assertTrue($object1->getACL()->getUserWriteAccess($alice));
- $this->assertFalse($object1->getACL()->getPublicReadAccess());
- $this->assertFalse($object1->getACL()->getPublicWriteAccess());
- $this->assertTrue($object2->getACL()->getUserReadAccess($alice));
- $this->assertTrue($object2->getACL()->getUserWriteAccess($alice));
- $this->assertFalse($object2->getACL()->getPublicReadAccess());
- $this->assertFalse($object2->getACL()->getPublicWriteAccess());
-
- $object1->set('foo', 'bar');
- $object2->set('foo', 'bar');
- ParseObject::saveAll([$object1, $object2]);
-
- $query = new ParseQuery('Object');
- $query->equalTo('foo', 'bar');
- $this->assertEquals(2, count($query->find()));
-
- ParseUser::logOut();
- }
-
- public function testACLModifyingAfterLoad()
- {
- $user = new ParseUser();
- $user->setUsername('alice');
- $user->setPassword('wonderland');
- $user->signUp();
- $object = ParseObject::create('Object');
- $acl = ParseACL::createACLWithUser($user);
- $object->setACL($acl);
- $object->save();
- $this->assertTrue($object->getACL()->getUserReadAccess($user));
- $this->assertTrue($object->getACL()->getUserWriteAccess($user));
- $this->assertFalse($object->getACL()->getPublicReadAccess());
- $this->assertFalse($object->getACL()->getPublicWriteAccess());
- $query = new ParseQuery('Object');
- $objectAgain = $query->get($object->getObjectId());
- $objectAgain->getACL()->setPublicReadAccess(true);
-
- $this->assertTrue($objectAgain->getACL()->getUserReadAccess($user));
- $this->assertTrue($objectAgain->getACL()->getUserWriteAccess($user));
- $this->assertTrue($objectAgain->getACL()->getPublicReadAccess());
- $this->assertFalse($objectAgain->getACL()->getPublicWriteAccess());
-
- ParseUser::logOut();
- }
-
- public function testACLRequiresObjectId()
- {
- $acl = new ParseACL();
- try {
- $acl->setReadAccess(null, true);
- $this->fail('Exception should have thrown');
- } catch (Exception $e) {
- }
- try {
- $acl->getReadAccess(null);
- $this->fail('Exception should have thrown');
- } catch (Exception $e) {
- }
- try {
- $acl->setWriteAccess(null, true);
- $this->fail('Exception should have thrown');
- } catch (Exception $e) {
- }
- try {
- $acl->getWriteAccess(null);
- $this->fail('Exception should have thrown');
- } catch (Exception $e) {
- }
-
- $user = new ParseUser();
- try {
- $acl->setReadAccess($user, true);
- $this->fail('Exception should have thrown');
- } catch (Exception $e) {
- }
- try {
- $acl->getReadAccess($user);
- $this->fail('Exception should have thrown');
- } catch (Exception $e) {
- }
- try {
- $acl->setWriteAccess($user, true);
- $this->fail('Exception should have thrown');
- } catch (Exception $e) {
- }
- try {
- $acl->getWriteAccess($user);
- $this->fail('Exception should have thrown');
- } catch (Exception $e) {
- }
- $this->assertTrue(true);
- }
-
- public function testIncludedObjectsGetACLs()
- {
- Helper::clearClass('Test');
- Helper::clearClass('Related');
- $object = ParseObject::create('Test');
- $acl = new ParseACL();
- $acl->setPublicReadAccess(true);
- $object->setACL($acl);
- $object->save();
- $this->assertTrue($object->getACL()->getPublicReadAccess());
-
- $related = ParseObject::create('Related');
- $related->set('test', $object);
- $related->save();
-
- $query = new ParseQuery('Related');
- $query->includeKey('test');
- $objectAgain = $query->first()->get('test');
-
- $this->assertTrue($objectAgain->getACL()->getPublicReadAccess());
- $this->assertFalse($objectAgain->getACL()->getPublicWriteAccess());
- }
-
- public function testNullDefaultACL()
- {
- // verify null acl returns itself
- ParseACL::setDefaultACL(null, true);
- $this->assertNull(ParseACL::_getDefaultACL());
- }
-
- /**
- * @group default-acls
- */
- public function testDefaultACL()
- {
- // setup default acl
- $defaultACL = new ParseACL();
- $defaultACL->setPublicReadAccess(false);
- $defaultACL->setPublicWriteAccess(false);
- ParseACL::setDefaultACL($defaultACL, true);
-
- // get without current user
- $acl = ParseACL::_getDefaultACL();
-
- // verify shared
- $this->assertTrue($acl->_isShared());
-
- // verify empty
- $this->assertEquals(new \stdClass(), $acl->_encode());
-
- // login as new user
- $user = new ParseUser();
- $user->setUsername('random-username');
- $user->setPassword('random-password');
- $user->signUp();
-
- // verify user does not have access to original acl
- $this->assertFalse($defaultACL->getUserReadAccess($user));
- $this->assertFalse($defaultACL->getUserWriteAccess($user));
-
- // get default acl with user
- $acl = ParseACL::_getDefaultACL();
-
- // verify this user has read/write access to the returned default
- $this->assertTrue($acl->getUserReadAccess($user));
- $this->assertTrue($acl->getUserWriteAccess($user));
-
- ParseUser::logOut();
- $user->destroy(true);
- }
-
- public function testIncludedObjectsGetACLWithDefaultACL()
- {
- Helper::clearClass('Test');
- Helper::clearClass('Related');
- $defaultACL = new ParseACL();
- $defaultACL->setPublicReadAccess(true);
- $defaultACL->setPublicWriteAccess(true);
- ParseACL::setDefaultACL($defaultACL, true);
-
- $object = ParseObject::create('Test');
- $acl = new ParseACL();
- $acl->setPublicReadAccess(true);
- $object->setACL($acl);
- $object->save();
-
- $this->assertTrue($object->getACL()->getPublicReadAccess());
- $related = ParseObject::create('Related');
- $related->set('test', $object);
- $related->save();
-
- $query = new ParseQuery('Related');
- $query->includeKey('test');
- $objectAgain = $query->first()->get('test');
- $this->assertTrue($objectAgain->getACL()->getPublicReadAccess());
- $this->assertFalse($objectAgain->getACL()->getPublicWriteAccess());
- }
-
- /**
- * @group acl-invalid
- */
- public function testCreatingACLWithInvalidId()
- {
- $this->expectException(
- '\Exception',
- 'Tried to create an ACL with an invalid userId.'
- );
-
- ParseACL::_createACLFromJSON([
- 1234 => 'write'
- ]);
- }
-
- /**
- * @group acl-invalid
- */
- public function testCreatingWithBadAccessType()
- {
- $this->expectException(
- '\Exception',
- 'Tried to create an ACL with an invalid permission type.'
- );
-
- ParseACL::_createACLFromJSON([
- 'id' => [
- 'not-valid' => true
- ]
- ]);
- }
-
- /**
- * @group acl-invalid
- */
- public function testCreatingWithInvalidPermissionValue()
- {
- $this->expectException(
- '\Exception',
- 'Tried to create an ACL with an invalid permission value.'
- );
-
- ParseACL::_createACLFromJSON([
- 'id' => [
- 'write' => 'not-valid'
- ]
- ]);
- }
-
- /**
- * @group acl-user-notallowed
- */
- public function testSettingPermissionForUserNotAllowed()
- {
- // add 'userid'
- $acl = new ParseACL();
- $acl->setPublicReadAccess(false);
- $acl->setPublicWriteAccess(false);
- $acl->setReadAccess('userid', true);
-
- // verify this user can read
- $this->assertTrue($acl->getReadAccess('userid'));
-
- // attempt to add another id with false access
- $acl->setReadAccess('anotheruserid', false);
-
- // verify the second id was not actually added internally
- $permissions = $acl->_encode();
- $this->assertEquals([
- 'userid' => [
- 'read' => true
- ]
- ], $permissions);
- }
-
- /**
- * @group removing-from-acl
- */
- public function testRemovingFromAcl()
- {
- // add 'userid'
- $acl = new ParseACL();
- $acl->setPublicReadAccess(false);
- $acl->setPublicWriteAccess(false);
- $acl->setReadAccess('userid', true);
- $acl->setWriteAccess('userid', true);
-
- // verify this user can read
- $this->assertTrue($acl->getReadAccess('userid'));
-
- // remove read access
- $acl->setReadAccess('userid', false);
-
- // verify this user cannot read
- $this->assertFalse($acl->getReadAccess('userid'));
-
- // verify user can still write
- $this->assertTrue($acl->getWriteAccess('userid'));
-
- // remove write access
- $acl->setWriteAccess('userid', false);
-
- // verify user can no longer write
- $this->assertFalse($acl->getWriteAccess('userid'));
-
- // verify acl is now empty, should be an instance of stdClass
- $permissions = $acl->_encode();
- $this->assertEquals(new \stdClass(), $permissions, 'ACL not empty after removing last user.');
- }
-
- public function testSettingUserReadAccessWithoutId()
- {
- $this->expectException(
- '\Exception',
- 'cannot setReadAccess for a user with null id'
- );
-
- $acl = new ParseACL();
- $acl->setUserReadAccess(new ParseUser(), true);
- }
-
- public function testGettingUserReadAccessWithoutId()
- {
- $this->expectException(
- '\Exception',
- 'cannot getReadAccess for a user with null id'
- );
-
- $acl = new ParseACL();
- $acl->getUserReadAccess(new ParseUser());
- }
-
- public function testSettingUserWriteAccessWithoutId()
- {
- $this->expectException(
- '\Exception',
- 'cannot setWriteAccess for a user with null id'
- );
-
- $acl = new ParseACL();
- $acl->setUserWriteAccess(new ParseUser(), true);
- }
-
- public function testGettingUserWriteAccessWithoutId()
- {
- $this->expectException(
- '\Exception',
- 'cannot getWriteAccess for a user with null id'
- );
-
- $acl = new ParseACL();
- $acl->getUserWriteAccess(new ParseUser());
- }
-
- /**
- * @group test-role-access
- */
- public function testRoleAccess()
- {
- $acl = new ParseACL();
-
- // Create a role
- $roleAcl = new ParseACL();
- $role = ParseRole::createRole('BasicRole', $roleAcl);
- $role->save();
-
- // Read Access
- $this->assertFalse($acl->getRoleReadAccess($role));
-
- // set true
- $acl->setRoleReadAccess($role, true);
- $this->assertTrue($acl->getRoleReadAccess($role));
-
- // set back to false
- $acl->setRoleReadAccess($role, false);
- $this->assertFalse($acl->getRoleReadAccess($role));
-
- // Write Access
- $this->assertFalse($acl->getRoleWriteAccess($role));
-
- // set true
- $acl->setRoleWriteAccess($role, true);
- $this->assertTrue($acl->getRoleWriteAccess($role));
-
- // set back to false
- $acl->setRoleWriteAccess($role, false);
- $this->assertFalse($acl->getRoleWriteAccess($role));
-
- $role->destroy(true);
- }
-
- public function testUnsavedRoleAdded()
- {
- $this->expectException(
- '\Exception',
- 'Roles must be saved to the server before they can be used in an ACL.'
- );
-
- $acl = new ParseACL();
- $acl->setRoleReadAccess(new ParseRole(), true);
- }
-
- public function testRoleAccessWithName()
- {
- $acl = new ParseACL();
- // Read Access
- $this->assertFalse($acl->getRoleReadAccessWithName('role'));
-
- // set true
- $acl->setRoleReadAccessWithName('role', true);
- $this->assertTrue($acl->getRoleReadAccessWithName('role'));
-
- // set back to false
- $acl->setRoleReadAccessWithName('role', false);
- $this->assertFalse($acl->getRoleReadAccessWithName('role'));
-
- // Write Access
- $this->assertFalse($acl->getRoleWriteAccessWithName('role'));
-
- // set true
- $acl->setRoleWriteAccessWithName('role', true);
- $this->assertTrue($acl->getRoleWriteAccessWithName('role'));
-
- // set back to false
- $acl->setRoleWriteAccessWithName('role', false);
- $this->assertFalse($acl->getRoleWriteAccessWithName('role'));
- }
-}
diff --git a/tests/Parse/ParseAnalyticsTest.php b/tests/Parse/ParseAnalyticsTest.php
deleted file mode 100644
index 4bd879d6..00000000
--- a/tests/Parse/ParseAnalyticsTest.php
+++ /dev/null
@@ -1,100 +0,0 @@
-assertEquals($expectedJSON, $json);
- ParseAnalytics::track($event, $params ?: []);
- }
-
- public function testTrackEvent()
- {
- $expected = '{"dimensions":{}}';
- $this->assertAnalyticsValidation('testTrackEvent', null, $expected);
- }
-
- public function testFailsOnEventName1()
- {
- $this->expectException(
- 'Exception',
- 'A name for the custom event must be provided.'
- );
- ParseAnalytics::track('');
- }
-
- public function testFailsOnEventName2()
- {
- $this->expectException(
- 'Exception',
- 'A name for the custom event must be provided.'
- );
- ParseAnalytics::track(' ');
- }
-
- public function testFailsOnEventName3()
- {
- $this->expectException(
- 'Exception',
- 'A name for the custom event must be provided.'
- );
- ParseAnalytics::track(" \n");
- }
-
- public function testTrackEventDimensions()
- {
- $expected = '{"dimensions":{"foo":"bar","bar":"baz"}}';
- $params = [
- 'foo' => 'bar',
- 'bar' => 'baz',
- ];
- $this->assertAnalyticsValidation('testDimensions', $params, $expected);
-
- $date = date(DATE_RFC3339);
- $expected = '{"dimensions":{"foo":"bar","bar":"baz","someDate":"'.
- $date.'"}}';
- $params = [
- 'foo' => 'bar',
- 'bar' => 'baz',
- 'someDate' => $date,
- ];
- $this->assertAnalyticsValidation('testDate', $params, $expected);
- }
-
- public function testBadKeyDimension()
- {
- $this->expectException(
- '\Exception',
- 'Dimensions expected string keys and values.'
- );
- ParseAnalytics::track('event', [1=>'good-value']);
- }
-
- public function testBadValueDimension()
- {
- $this->expectException(
- '\Exception',
- 'Dimensions expected string keys and values.'
- );
- ParseAnalytics::track('event', ['good-key'=>1]);
- }
-}
diff --git a/tests/Parse/ParseAudienceTest.php b/tests/Parse/ParseAudienceTest.php
deleted file mode 100644
index 9f667723..00000000
--- a/tests/Parse/ParseAudienceTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-set('installationId', 'id1');
- $androidInstallation->set('deviceToken', '12345');
- $androidInstallation->set('deviceType', 'android');
- $androidInstallation->save(true);
-
- $iOSInstallation = new ParseInstallation();
- $iOSInstallation->set('installationId', 'id2');
- $iOSInstallation->set('deviceToken', '54321');
- $iOSInstallation->set('deviceType', 'ios');
- $iOSInstallation->save();
-
- ParseObject::saveAll([
- $androidInstallation,
- $iOSInstallation
- ]);
- }
-
- /**
- * @group audience-tests
- */
- public function testPushAudiences()
- {
- $this->createInstallations();
-
- $androidQuery = ParseInstallation::query()
- ->equalTo('deviceType', 'android');
-
- $audience = ParseAudience::createAudience('MyAudience', $androidQuery);
- $audience->save();
-
- // count no master should be 0
- $query = new ParseQuery('_Audience');
- $this->assertEquals(0, $query->count(), 'No master was not 0');
-
- $query = new ParseQuery('_Audience');
- $audience = $query->first(true);
- $this->assertNotNull($audience);
-
- $this->assertEquals('MyAudience', $audience->getName());
- $this->assertEquals($androidQuery, $audience->getQuery());
- $this->assertNull($audience->getLastUsed());
- $this->assertEquals(0, $audience->getTimesUsed());
- }
-
- /**
- * @group audience-tests
- */
- public function testSaveWithoutMaster()
- {
- $query = ParseAudience::query();
- $this->assertEquals(0, $query->count(true), 'Did not start at 0');
-
- $audience = ParseAudience::createAudience(
- 'MyAudience',
- ParseInstallation::query()
- ->equalTo('deviceType', 'android')
- );
- $audience->save();
-
- $query = ParseAudience::query();
- $this->assertEquals(1, $query->count(true), 'Did not end at 1');
- }
-
- /**
- * @group audience-tests
- */
- public function testPushWithAudience()
- {
- $this->createInstallations();
-
- $audience = ParseAudience::createAudience(
- 'MyAudience',
- ParseInstallation::query()
- ->equalTo('deviceType', 'android')
- );
- $audience->save(true);
-
- ParsePush::send([
- 'data' => [
- 'alert' => 'sample message'
- ],
- 'where' => $audience->getQuery(),
- 'audience_id' => $audience->getObjectId()
- ], true);
-
- $audience->fetch(true);
-
- $this->assertEquals(1, $audience->getTimesUsed());
- $this->assertNotNull($audience->getLastUsed());
- }
-}
diff --git a/tests/Parse/ParseBytesTest.php b/tests/Parse/ParseBytesTest.php
deleted file mode 100644
index 6a23ce49..00000000
--- a/tests/Parse/ParseBytesTest.php
+++ /dev/null
@@ -1,52 +0,0 @@
-set('byteColumn', $bytes);
- $obj->save();
-
- $query = new ParseQuery('BytesObject');
- $objAgain = $query->get($obj->getObjectId());
- $this->assertEquals('Fosco', $objAgain->get('byteColumn'));
- }
-
- public function testParseBytesFromBase64Data()
- {
- $obj = ParseObject::create('BytesObject');
- $bytes = ParseBytes::createFromBase64Data('R3JhbnRsYW5k');
- $obj->set('byteColumn', $bytes);
- $obj->save();
-
- $query = new ParseQuery('BytesObject');
- $objAgain = $query->get($obj->getObjectId());
- $this->assertEquals('Grantland', $objAgain->get('byteColumn'));
- }
-}
diff --git a/tests/Parse/ParseClientTest.php b/tests/Parse/ParseClientTest.php
deleted file mode 100644
index ba08e891..00000000
--- a/tests/Parse/ParseClientTest.php
+++ /dev/null
@@ -1,723 +0,0 @@
-expectException(
- '\Exception',
- 'You must call ParseClient::initialize() before making any requests.'
- );
-
- ParseClient::initialize(
- null,
- null,
- null
- );
-
- ParseClient::_request(
- '',
- ''
- );
- }
-
- /**
- * @group client-init
- */
- public function testInitialize()
- {
-
- // unregister associated sub classes
- ParseUser::_unregisterSubclass();
- ParseRole::_unregisterSubclass();
- ParseInstallation::_unregisterSubclass();
-
- // unset storage
- ParseClient::_unsetStorage();
-
- // call init
- ParseClient::initialize(
- Helper::$appId,
- Helper::$restKey,
- Helper::$masterKey,
- true,
- );
-
- // verify these classes are now registered
- $this->assertTrue(ParseObject::hasRegisteredSubclass('_User'));
- $this->assertTrue(ParseObject::hasRegisteredSubclass('_Role'));
- $this->assertTrue(ParseObject::hasRegisteredSubclass('_Installation'));
-
- // verify storage is now set
- $this->assertNotNull(ParseClient::getStorage());
- }
-
- /**
- * @group client-storage
- */
- public function testStorage()
- {
-
- // unset storage
- ParseClient::_unsetStorage();
-
- // call init
- ParseClient::initialize(
- Helper::$appId,
- Helper::$restKey,
- Helper::$masterKey,
- true,
- );
-
- $storage = ParseClient::getStorage();
- $this->assertTrue(
- $storage instanceof ParseMemoryStorage,
- 'Not an instance of ParseMemoryStorage'
- );
-
- /* TODO can't get session storage test to pass properly
- // unset storage
- ParseClient::_unsetStorage();
-
- // indicate we should not use cookies
- ini_set("session.use_cookies", 0);
- // indicate we can use something other than cookies
- ini_set("session.use_only_cookies", 0);
- // enable transparent sid support, for url based sessions
- ini_set("session.use_trans_sid", 1);
- // clear cache control for session pages
- ini_set("session.cache_limiter", "");
-
- // start a session
- session_start();
-
- // call init
- ParseClient::initialize(
- Helper::$appId,
- Helper::$restKey,
- Helper::$masterKey,
- true,
- );
-
- $storage = ParseClient::getStorage();
- $this->assertTrue($storage instanceof ParseSessionStorage,
- 'Not an instance of ParseSessionStorage');
- */
- }
-
- /**
- * @group client-test
- */
- public function testSetServerURL()
- {
- // add extra slashes to test removal
- ParseClient::setServerURL('https://example.com//', '//parse//');
-
- // verify APIUrl
- $this->assertEquals(
- 'https://example.com/parse/',
- ParseClient::getAPIUrl()
- );
-
- // verify mount path
- $this->assertEquals(
- 'parse/',
- ParseClient::getMountPath()
- );
- }
-
- /**
- * @group client-test
- */
- public function testRootMountPath()
- {
- ParseClient::setServerURL('https://example.com', '/');
- $this->assertEquals(
- '',
- ParseClient::getMountPath(),
- 'Mount path was not reduced to an empty sequence for root'
- );
- }
-
- /**
- * @group client-test
- */
- public function testBadServerURL()
- {
- $this->expectException(
- '\Exception',
- 'Invalid Server URL.'
- );
- ParseClient::setServerURL(null, 'parse');
- }
-
- /**
- * @group client-test
- */
- public function testBadMountPath()
- {
- $this->expectException(
- '\Exception',
- 'Invalid Mount Path.'
- );
- ParseClient::setServerURL('https://example.com', null);
- }
-
- /**
- * @group encoding-error
- */
- public function testEncodingError()
- {
- $this->expectException(
- '\Exception',
- 'Invalid type encountered.'
- );
- ParseClient::_encode(new Helper(), false);
- }
-
- /**
- * @group client-decoding
- */
- public function testDecodingStdClass()
- {
- $obj = new \stdClass();
- $obj->property = 'value';
-
- $this->assertEquals([
- 'property' => 'value'
- ], ParseClient::_decode($obj));
-
- $emptyClass = new \stdClass();
- $this->assertEquals($emptyClass, ParseClient::_decode($emptyClass));
- }
-
- /**
- * @group timeouts
- */
- public function testCurlTimeout()
- {
-
- ParseClient::setTimeout(3000);
-
- // perform a standard save
- $obj = new ParseObject('TestingClass');
- $obj->set('key', 'value');
- $obj->save(true);
-
- $this->assertNotNull($obj->getObjectId());
-
- $obj->destroy();
-
- // clear timeout
- ParseClient::setTimeout(null);
- }
-
- /**
- * @group timeouts
- */
- public function testCurlConnectionTimeout()
- {
- ParseClient::setConnectionTimeout(3000);
-
- // perform a standard save
- $obj = new ParseObject('TestingClass');
- $obj->set('key', 'value');
- $obj->save();
-
- $this->assertNotNull($obj->getObjectId());
-
- $obj->destroy();
-
- // clear timeout
- ParseClient::setConnectionTimeout(null);
- }
-
- /**
- * @group timeouts
- */
- public function testStreamTimeout()
- {
-
- ParseClient::setHttpClient(new ParseStreamHttpClient());
-
- ParseClient::setTimeout(3000);
-
- // perform a standard save
- $obj = new ParseObject('TestingClass');
- $obj->set('key', 'value');
- $obj->save(true);
-
- $this->assertNotNull($obj->getObjectId());
-
- $obj->destroy();
-
- // clear timeout
- ParseClient::setTimeout(null);
- }
-
- /**
- * @group timeouts
- */
- public function testStreamConnectionTimeout()
- {
-
- ParseClient::setHttpClient(new ParseStreamHttpClient());
-
- ParseClient::setConnectionTimeout(3000);
-
- // perform a standard save
- $obj = new ParseObject('TestingClass');
- $obj->set('key', 'value');
- $obj->save();
-
- $this->assertNotNull($obj->getObjectId());
-
- $obj->destroy();
-
- // clear timeout
- ParseClient::setConnectionTimeout(null);
- }
-
- /**
- * @group no-curl-exceptions
- */
- public function testNoCurlExceptions()
- {
- global $USE_CLIENT_STREAM;
- if (isset($USE_CLIENT_STREAM)) {
- $this->markTestSkipped('Skipping curl exception test');
- }
- Helper::setUpWithoutCURLExceptions();
-
- ParseClient::setServerURL('http://404.example.com', 'parse');
- $result = ParseClient::_request(
- 'GET',
- 'not-a-real-endpoint-to-reach',
- null
- );
-
- $this->assertFalse($result);
-
- // put back
- Helper::setUp();
- }
-
- /**
- * @group curl-exceptions
- */
- public function testCurlException()
- {
- if (function_exists('curl_init')) {
- ParseClient::setHttpClient(new ParseCurlHttpClient());
-
- $this->expectException('\Parse\ParseException', '', 6);
-
- ParseClient::setServerURL('http://404.example.com', 'parse');
- ParseClient::_request(
- 'GET',
- 'not-a-real-endpoint-to-reach',
- null
- );
- }
- }
-
- /**
- * @group stream-exceptions
- */
- public function testStreamException()
- {
-
- ParseClient::setHttpClient(new ParseStreamHttpClient());
-
- $this->expectException('\Parse\ParseException', '', 2);
-
- ParseClient::setServerURL('http://404.example.com', 'parse');
- ParseClient::_request(
- 'GET',
- 'not-a-real-endpoint-to-reach',
- null
- );
- }
-
- /**
- * @group stream-bad-request
- *
- * **NOTE**
- * file_get_contents may SOMETIMES not return a full set of headers.
- * This causes this case to fail frequently while not being a serious error.
- * If you are running test cases and are having problems with this,
- * run it a few more times and you should be OK
- */
- public function testBadStreamRequest()
- {
- $this->expectException(
- '\Parse\ParseException',
- "Bad Request"
- );
-
- ParseClient::setHttpClient(new ParseStreamHttpClient());
-
- ParseClient::setServerURL('http://example.com', '/');
- ParseClient::_request(
- 'GET',
- '',
- null
- );
- }
-
- /**
- * @group client-bad-request
- */
- public function testCurlBadRequest()
- {
- if (function_exists('curl_init')) {
- $this->expectException(
- '\Parse\ParseException',
- "Bad Request"
- );
-
- ParseClient::setHttpClient(new ParseCurlHttpClient());
-
- ParseClient::setServerURL('http://example.com', '/');
- ParseClient::_request(
- 'GET',
- '',
- null
- );
- }
- }
-
- /**
- * @group default-http-client
- */
- public function testGetDefaultHttpClient()
- {
- // clear existing client
- ParseClient::clearHttpClient();
-
- // get default client
- $default = ParseClient::getHttpClient();
-
- if (function_exists('curl_init')) {
- // should be a curl client
- $this->assertTrue($default instanceof ParseCurlHttpClient);
- } else {
- // should be a stream client
- $this->assertTrue($default instanceof ParseStreamHttpClient);
- }
- }
-
- /**
- * @group ca-file
- */
- public function testCurlCAFile()
- {
- if (function_exists('curl_init')) {
- // set a curl client
- ParseClient::setHttpClient(new ParseCurlHttpClient());
-
- // not a real ca file, just testing setting
- ParseClient::setCAFile("not-real-ca-file");
-
- $this->expectException(
- '\Parse\ParseException',
- "Bad Request"
- );
-
- ParseClient::setServerURL('http://example.com', '/');
- ParseClient::_request(
- 'GET',
- '',
- null
- );
- }
- }
-
- /**
- * @group ca-file
- */
- public function testStreamCAFile()
- {
- // set a stream client
- ParseClient::setHttpClient(new ParseStreamHttpClient());
-
- // not a real ca file, just testing setting
- ParseClient::setCAFile("not-real-ca-file");
-
- $this->expectException(
- '\Parse\ParseException',
- "Bad Request"
- );
-
- ParseClient::setServerURL('http://example.com', '/');
- ParseClient::_request(
- 'GET',
- '',
- null
- );
- }
-
- /**
- * @group api-not-set
- */
- public function testURLNotSet()
- {
- $this->expectException(
- '\Exception',
- 'Missing a valid server url. '.
- 'You must call ParseClient::setServerURL(\'https://your.parse-server.com\', \'/parse\') '.
- ' before making any requests.'
- );
-
- ParseClient::_clearServerURL();
- (new ParseObject('TestingClass'))->save();
- }
-
- /**
- * @group api-not-set
- */
- public function testMountPathNotSet()
- {
- $this->expectException(
- '\Exception',
- 'Missing a valid mount path. '.
- 'You must call ParseClient::setServerURL(\'https://your.parse-server.com\', \'/parse\') '.
- ' before making any requests.'
- );
-
- ParseClient::_clearMountPath();
- (new ParseObject('TestingClass'))->save();
- }
-
- /**
- * @group bad-api-response
- */
- public function testBadApiResponse()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Bad Request. Could not decode Response: (4) Syntax error'
- );
-
- $httpClient = ParseClient::getHttpClient();
-
- // create a mock of the current http client
- $stubClient = $this->getMockBuilder(get_class($httpClient))
- ->getMock();
-
- // stub the response type to return
- // something we will try to work with
- $stubClient
- ->method('getResponseContentType')
- ->willReturn('application/octet-stream');
-
- $stubClient
- ->method('send')
- ->willReturn('This is not valid json!');
-
- // replace the client with our stub
- ParseClient::setHttpClient($stubClient);
-
- // attempt to save, which should not fire our given code
- $obj = new ParseObject('TestingClass');
- $obj->save();
- }
-
- /**
- * @group check-server
- */
- public function testCheckServer()
- {
- $health = ParseClient::getServerHealth();
-
- $this->assertNotNull($health);
- $this->assertEquals($health['status'], 200);
- $this->assertEquals($health['response']['status'], 'ok');
- }
-
- /**
- * Structured response present in modified/later versions of parse-server
- *
- * @group check-server
- */
- public function testStructuredHealthResponse()
- {
- $httpClient = ParseClient::getHttpClient();
-
- // create a mock of the current http client
- $stubClient = $this->getMockBuilder(get_class($httpClient))
- ->getMock();
-
- // stub the response type to return
- // something we will try to work with
- $stubClient
- ->method('getResponseContentType')
- ->willReturn('application/octet-stream');
-
- $stubClient
- ->method('getResponseStatusCode')
- ->willReturn(200);
-
- $stubClient
- ->method('send')
- ->willReturn('{"status":"ok"}');
-
- // replace the client with our stub
- ParseClient::setHttpClient($stubClient);
-
- $health = ParseClient::getServerHealth();
-
- $this->assertNotNull($health);
- $this->assertEquals($health['status'], 200);
- $this->assertEquals($health['response']['status'], 'ok');
- }
-
- /**
- * Plain response present in earlier versions of parse-server (from 2.2.25 on)
- * @group check-server
- */
- public function testPlainHealthResponse()
- {
- $httpClient = ParseClient::getHttpClient();
-
- // create a mock of the current http client
- $stubClient = $this->getMockBuilder(get_class($httpClient))
- ->getMock();
-
- // stub the response type to return
- // something we will try to work with
- $stubClient
- ->method('getResponseContentType')
- ->willReturn('text/plain');
-
- $stubClient
- ->method('getResponseStatusCode')
- ->willReturn(200);
-
- $stubClient
- ->method('send')
- ->willReturn('OK');
-
- // replace the client with our stub
- ParseClient::setHttpClient($stubClient);
-
- $health = ParseClient::getServerHealth();
-
- $this->assertNotNull($health);
- $this->assertEquals($health['status'], 200);
- $this->assertEquals($health['response']['status'], 'ok');
- }
-
- /**
- * @group check-server
- */
- public function testCheckBadServer()
- {
- ParseClient::setServerURL('http://localhost:1337', 'not-a-real-endpoint');
- $health = ParseClient::getServerHealth();
- $this->assertNotNull($health);
- $this->assertFalse(isset($health['error']));
- $this->assertFalse(isset($health['error_message']));
- $this->assertEquals($health['status'], 404);
-
- ParseClient::setServerURL('http://___uh___oh___.com', 'parse');
- $health = ParseClient::getServerHealth();
-
- global $USE_CLIENT_STREAM;
- if (!isset($USE_CLIENT_STREAM)) {
- $this->assertTrue(isset($health['error']));
- $this->assertTrue(isset($health['error_message']));
- }
- }
-
- /**
- * @group test-http-options
- */
- public function testCurlHttpOptions()
- {
- if (function_exists('curl_init')) {
- ParseClient::setHttpClient(new ParseCurlHttpClient());
- ParseClient::setServerURL('https://localhost:1338', 'parse');
- ParseClient::setHttpOptions([
- CURLOPT_SSL_VERIFYPEER => false,
- CURLOPT_PINNEDPUBLICKEY => 'sha256//Oz+R70/uIv0irdBWc7RNPyCGeZNbN+CBiPLjJxXWigg=',
- CURLOPT_SSLCERT => dirname(__DIR__).'/keys/client.crt',
- CURLOPT_SSLKEY => dirname(__DIR__).'/keys/client.key',
- ]);
- $health = ParseClient::getServerHealth();
-
- $this->assertNotNull($health);
- $this->assertEquals($health['status'], 200);
- $this->assertEquals($health['response']['status'], 'ok');
- Helper::setServerURL();
- }
- }
-
- /**
- * @group test-http-options
- */
- public function testStreamHttpOptions()
- {
- ParseClient::setHttpClient(new ParseStreamHttpClient());
- ParseClient::setServerURL('https://localhost:1338', 'parse');
- ParseClient::setHttpOptions([
- 'ssl' => [
- 'verify_peer' => false,
- 'verify_peer_name' => false,
- 'allow_self_signed' => true,
- 'local_cert' => dirname(__DIR__).'/keys/client.crt',
- 'local_pk' => dirname(__DIR__).'/keys/client.key',
- 'peer_fingerprint' => '29F36676EFA0CA18B5B571C6144580044CB289C2',
- ]
- ]);
- $health = ParseClient::getServerHealth();
-
- $this->assertNotNull($health);
- $this->assertEquals($health['status'], 200);
- $this->assertEquals($health['response']['status'], 'ok');
- Helper::setServerURL();
- }
-}
diff --git a/tests/Parse/ParseCloudTest.php b/tests/Parse/ParseCloudTest.php
deleted file mode 100644
index 22649c90..00000000
--- a/tests/Parse/ParseCloudTest.php
+++ /dev/null
@@ -1,186 +0,0 @@
-destroy(true);
- }
- }
-
- /**
- * @group cloud-code
- */
- public function testFunctionCall()
- {
- $response = ParseCloud::run('bar', [
- 'key1' => 'value2',
- 'key2' => 'value1'
- ]);
-
- $this->assertEquals('Foo', $response);
- }
-
- public function testFunctionCallWithUser()
- {
- $user = new ParseUser();
- $user->setUsername("someuser");
- $user->setPassword("somepassword");
- $user->signUp();
-
- $response = ParseCloud::run('bar', [
- 'key1' => 'value2',
- 'key2' => 'value1'
- ]);
-
- $this->assertEquals('Foo', $response);
-
- ParseUser::logOut();
- $user->destroy(true);
- }
-
- /**
- * @group cloud-code
- */
- public function testFunctionCallException()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'bad stuff happened'
- );
-
- ParseCloud::run('bar', [
- 'key1' => 'value1',
- 'key2' => 'value2'
- ]);
- }
-
- /**
- * @group cloud-code
- */
- public function testFunctionsWithObjectParamsFails()
- {
- // login as user
- $obj = ParseObject::create('SomeClass');
- $obj->set('name', 'Zanzibar');
- $obj->save();
- $params = ['key1' => $obj];
- $this->expectException('\Exception', 'ParseObjects not allowed');
- ParseCloud::run('foo', $params);
- }
-
- /**
- * @group cloud-code
- */
- public function testFunctionsWithGeoPointParamsDoNotThrow()
- {
- $params = ['key1' => new ParseGeoPoint(50, 50)];
- $this->expectException(
- 'Parse\ParseException',
- 'Invalid function: "unknown_function"'
- );
- ParseCloud::run('unknown_function', $params);
- }
-
- /**
- * @group cloud-code
- */
- public function testUnknownFunctionFailure()
- {
- $params = ['key1' => 'value1'];
- $this->expectException(
- 'Parse\ParseException',
- 'Invalid function: "unknown_function"'
- );
- ParseCloud::run('unknown_function', $params);
- }
-
- /**
- * @group cloud-code-jobs
- */
- public function testGetJobsData()
- {
- $jobsData = ParseCloud::getJobsData();
- $this->assertNotNull($jobsData['jobs']);
- $this->assertNotNull($jobsData['in_use']);
- $this->assertEquals(0, count($jobsData['in_use']));
- $this->assertEquals(3, count($jobsData['jobs']));
- }
-
- /**
- * @group cloud-code-jobs
- */
- public function testRunJob()
- {
- $jobStatusId = ParseCloud::startJob('CloudJob1', [
- 'startedBy' => 'Monty Python'
- ]);
- $this->assertNotNull($jobStatusId);
-
- $jobStatus = ParseCloud::getJobStatus($jobStatusId);
- $this->assertNotNull($jobStatus);
- $this->assertEquals('succeeded', $jobStatus->get('status'));
- $this->assertEquals('Monty Python', $jobStatus->get('params')['startedBy']);
- }
-
- /**
- * @group cloud-code-jobs
- */
- public function testLongJob()
- {
- $jobStatusId = ParseCloud::startJob('CloudJob2');
- $jobStatus = ParseCloud::getJobStatus($jobStatusId);
- $this->assertNotNull($jobStatus);
- $this->assertEquals('running', $jobStatus->get('status'));
- }
-
- /**
- * @group cloud-code-jobs
- */
- public function testBadJob()
- {
- $this->expectException('Parse\ParseException', 'Invalid job.');
- ParseCloud::startJob('bad_job');
- }
-
- /**
- * @group cloud-code-jobs
- */
- public function testFailingJob()
- {
- $jobStatusId = ParseCloud::startJob('CloudJobFailing');
- $this->assertNotNull($jobStatusId);
-
- $jobStatus = ParseCloud::getJobStatus($jobStatusId);
- $this->assertNotNull($jobStatus);
- $this->assertEquals('failed', $jobStatus->get('status'));
- $this->assertEquals('cloud job failed', $jobStatus->get('message'));
- }
-
- /**
- * @group cloud-code-jobs
- */
- public function testGettingNotARealJobStatus()
- {
- $this->expectException('Parse\ParseException', 'Object not found.');
- $jobStatus = ParseCloud::getJobStatus('not-a-real-job-status');
- $this->assertNull($jobStatus);
- }
-}
diff --git a/tests/Parse/ParseConfigTest.php b/tests/Parse/ParseConfigTest.php
deleted file mode 100644
index 25eb6c85..00000000
--- a/tests/Parse/ParseConfigTest.php
+++ /dev/null
@@ -1,77 +0,0 @@
-assertEquals([], $config->getConfig());
- }
-
- /**
- * @group parse-config
- */
- public function testGetConfig()
- {
- $config = new ConfigMock();
- $this->assertEquals('bar', $config->get('foo'));
- $this->assertEquals(1, $config->get('some'));
-
- // check null value
- $this->assertNull($config->get('notakey'));
-
- // check html value
- $this->assertEquals('value', $config->get('another'));
- }
-
- /**
- * @group parse-config
- */
- public function testEscapeConfig()
- {
- $config = new ConfigMock();
-
- // check html encoded value
- $this->assertEquals('<html>value</html>', $config->escape('another'));
-
- // check null value
- $this->assertNull($config->escape('notakey'));
-
- // check normal value
- $this->assertEquals('bar', $config->escape('foo'));
- }
-
- /**
- * @group parse-config
- */
- public function testSaveConfig()
- {
- $config = new ParseConfig();
- $this->assertNull($config->get('key'));
- $config->set('key', 'value');
- $config->save();
-
- $config = new ParseConfig();
- $this->assertEquals($config->get('key'), 'value');
- }
-}
diff --git a/tests/Parse/ParseCurlHttpClientTest.php b/tests/Parse/ParseCurlHttpClientTest.php
deleted file mode 100644
index bd81070b..00000000
--- a/tests/Parse/ParseCurlHttpClientTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-setup();
- $client->send("https://example.org");
-
- $this->assertEquals(200, $client->getResponseStatusCode());
- }
- }
-}
diff --git a/tests/Parse/ParseCurlTest.php b/tests/Parse/ParseCurlTest.php
deleted file mode 100644
index 72d2d63b..00000000
--- a/tests/Parse/ParseCurlTest.php
+++ /dev/null
@@ -1,90 +0,0 @@
-expectException(
- '\Parse\ParseException',
- 'You must call ParseCurl::init first'
- );
-
- $parseCurl = new ParseCurl();
- $parseCurl->exec();
- }
-
- public function testBadSetOption()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'You must call ParseCurl::init first'
- );
-
- $parseCurl = new ParseCurl();
- $parseCurl->setOption(1, 1);
- }
-
- public function testBadSetOptionsArray()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'You must call ParseCurl::init first'
- );
-
- $parseCurl = new ParseCurl();
- $parseCurl->setOptionsArray([]);
- }
-
- public function testBadGetInfo()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'You must call ParseCurl::init first'
- );
-
- $parseCurl = new ParseCurl();
- $parseCurl->getInfo(1);
- }
-
- public function testBadGetError()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'You must call ParseCurl::init first'
- );
-
- $parseCurl = new ParseCurl();
- $parseCurl->getError();
- }
-
- public function testBadErrorCode()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'You must call ParseCurl::init first'
- );
-
- $parseCurl = new ParseCurl();
- $parseCurl->getErrorCode();
- }
-
- public function testBadClose()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'You must call ParseCurl::init first'
- );
-
- $parseCurl = new ParseCurl();
- $parseCurl->close();
- }
-}
diff --git a/tests/Parse/ParseFileTest.php b/tests/Parse/ParseFileTest.php
deleted file mode 100644
index 37211d9e..00000000
--- a/tests/Parse/ParseFileTest.php
+++ /dev/null
@@ -1,219 +0,0 @@
-assertEquals('http://', $file->getURL());
- $this->assertEquals('hi.txt', $file->getName());
- $this->assertEquals('hello', $file2->getData());
- $this->assertEquals('hi.txt', $file2->getName());
- $this->assertTrue(
- strpos(
- $file3->getData(),
- 'i am looking for myself'
- ) !== false
- );
- }
-
- /**
- * @group file-upload-test
- */
- public function testParseFileUpload()
- {
- $file = ParseFile::createFromData('Fosco', 'test.txt');
- $file->save();
- $this->assertTrue(
- strpos($file->getURL(), 'http') !== false
- );
- $this->assertNotEquals('test.txt', $file->getName());
- }
-
- public function testParseFileDownload()
- {
- $file = ParseFile::_createFromServer('index.html', 'https://example.org');
- $data = $file->getData();
- $this->assertTrue(
- strpos($data, 'Example Domain') !== false
- );
- }
-
- /**
- * @group file-download-test
- */
- public function testParseFileDownloadUnsaved()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Cannot retrieve data for unsaved ParseFile.'
- );
- $file = ParseFile::createFromData(null, 'file.txt');
- $file->getData();
- }
-
- /**
- * @group file-download-test
- */
- public function testParsefileDeleteUnsaved()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Cannot delete file that has not been saved.'
- );
- $file = ParseFile::createFromData('a test file', 'file.txt');
- $file->delete();
- }
-
- /**
- * @group file-download-test
- */
- public function testParseFileDownloadBadURL()
- {
- global $USE_CLIENT_STREAM;
-
- if (!isset($USE_CLIENT_STREAM)) {
- // curl exception expectation
- $this->expectException('\Parse\ParseException', '', 6);
- }
-
- $file = ParseFile::_createFromServer('file.txt', 'http://404.example.com');
- $data = $file->getData();
-
- if (isset($USE_CLIENT_STREAM)) {
- $this->assertEquals('', $data);
- }
- }
-
- /**
- * @group test-parsefile-round-trip
- */
- public function testParseFileRoundTrip()
- {
- $contents = 'What would Bryan do?';
- $file = ParseFile::createFromData($contents, 'test.txt');
- $this->assertEquals($contents, $file->getData());
- $file->save();
-
- $fileAgain = ParseFile::_createFromServer($file->getName(), $file->getURL());
- $this->assertEquals($contents, $fileAgain->getData());
- $fileAgain->save();
- $this->assertEquals($file->getURL(), $fileAgain->getURL());
- }
-
- public function testParseFileTypes()
- {
- $contents = 'a fractal of rad design';
- $file = ParseFile::createFromData($contents, 'noextension');
- $file2 = ParseFile::createFromData($contents, 'photo.png', 'text/plain');
- $file3 = ParseFile::createFromData($contents, 'photo.png');
- $file4 = ParseFile::createFromData($contents, 'photo.PNG');
- $file->save();
- $file2->save();
- $file3->save();
- $file4->save();
-
- // check initial mime types after creating from data
- $this->assertEquals('unknown/unknown', $file->getMimeType());
- $this->assertEquals('text/plain', $file2->getMimeType());
- $this->assertEquals('image/png', $file3->getMimeType());
- $this->assertEquals('image/png', $file4->getMimeType());
-
- $fileAgain = ParseFile::_createFromServer($file->getName(), $file->getURL());
- $file2Again = ParseFile::_createFromServer($file2->getName(), $file2->getURL());
- $file3Again = ParseFile::_createFromServer($file3->getName(), $file3->getURL());
- $file4Again = ParseFile::_createFromServer($file4->getName(), $file4->getURL());
-
- $this->assertEquals($contents, $fileAgain->getData());
- $this->assertEquals($contents, $file2Again->getData());
- $this->assertEquals($contents, $file3Again->getData());
- $this->assertEquals($contents, $file4Again->getData());
-
- // check mime types after calling getData
- $mt = $fileAgain->getMimeType();
- // both of the following are acceptable for a response from a submitted mime type of unknown/unknown
- $this->assertTrue(
- $mt === 'application/octet-stream' || // parse-server < 2.7.0
- $mt === 'unknown/unknown' // parse-server >= 2.7.0, unknown mime type response change
- );
- $this->assertEquals('image/png', $file2Again->getMimeType());
- $this->assertEquals('image/png', $file3Again->getMimeType());
- $this->assertEquals('image/png', $file4Again->getMimeType());
- }
-
- public function testFileOnObject()
- {
- $contents = 'irrelephant';
- $file = ParseFile::createFromData($contents, 'php.txt');
- $file->save();
-
- $obj = ParseObject::create('TestFileObject');
- $obj->set('file', $file);
- $obj->save();
-
- $query = new ParseQuery('TestFileObject');
- $objAgain = $query->get($obj->getObjectId());
- $fileAgain = $objAgain->get('file');
- $contentsAgain = $fileAgain->getData();
- $this->assertEquals($contents, $contentsAgain);
- }
-
- public function testUnsavedFileOnObjectSave()
- {
- $contents = 'remember';
- $file = ParseFile::createFromData($contents, 'bones.txt');
- $obj = ParseObject::create('TestFileObject');
- $obj->set('file', $file);
- $obj->save();
-
- $query = new ParseQuery('TestFileObject');
- $objAgain = $query->get($obj->getObjectId());
- $fileAgain = $objAgain->get('file');
- $contentsAgain = $fileAgain->getData();
- $this->assertEquals($contents, $contentsAgain);
- }
-
- public function testFileDelete()
- {
- global $USE_CLIENT_STREAM;
- if (isset($USE_CLIENT_STREAM)) {
- $this->markTestSkipped('Skipping curl delete file test');
- }
- $data = 'c-c-c-combo breaker';
- $name = 'php.txt';
- $file = ParseFile::createFromData($data, $name);
- $file->save();
- $url = $file->getURL();
- $fileAgain = ParseFile::_createFromServer($name, $url);
- $contents = $fileAgain->getData();
- $this->assertEquals($data, $contents);
- $file->delete();
- $fileAgain = ParseFile::_createFromServer($name, $url);
- $this->expectException('Parse\ParseException', 'Download failed');
- $fileAgain->getData();
- }
-}
diff --git a/tests/Parse/ParseGeoBoxTest.php b/tests/Parse/ParseGeoBoxTest.php
deleted file mode 100644
index 298cf792..00000000
--- a/tests/Parse/ParseGeoBoxTest.php
+++ /dev/null
@@ -1,196 +0,0 @@
-set('location', $caltrainStationLocation);
- $caltrainStation->set('name', 'caltrain');
- $caltrainStation->save();
-
- $santaClaraLocation = new ParseGeoPoint(37.325635, -121.945753);
- $santaClara = new ParseObject('TestObject');
-
- $santaClara->set('location', $santaClaraLocation);
- $santaClara->set('name', 'santa clara');
- $santaClara->save();
-
- $southwestOfSF = new ParseGeoPoint(37.708813, -122.526398);
- $northeastOfSF = new ParseGeoPoint(37.822802, -122.373962);
-
- // Try a correct query
- $query = new ParseQuery('TestObject');
- $query->withinGeoBox('location', $southwestOfSF, $northeastOfSF);
- $objectsInSF = $query->find();
- $this->assertEquals(1, count($objectsInSF));
- $this->assertEquals('caltrain', $objectsInSF[0]->get('name'));
-
- // Switch order of args
- // (note) used to fail on old parse, passes in the open source variant
- $query = new ParseQuery('TestObject');
- $query->withinGeoBox('location', $northeastOfSF, $southwestOfSF);
- $objectsInSF = $query->find();
- $this->assertEquals(1, count($objectsInSF));
- $this->assertEquals('caltrain', $objectsInSF[0]->get('name'));
- // TODO remove
- /* , should fail because it crosses the dateline
- try {
- $results = $query->find();
- $this->assertTrue(false, 'Query should fail because it crosses
- dateline with results:'.json_encode($results[0]));
- } catch (ParseException $e) {
- }
- */
-
- $northwestOfSF = new ParseGeoPoint(37.822802, -122.526398);
- $southeastOfSF = new ParseGeoPoint(37.708813, -122.373962);
-
- // Switch just longitude
- // (note) used to fail on old parse, passes in the open source variant
- $query = new ParseQuery('TestObject');
- $query->withinGeoBox('location', $southeastOfSF, $northwestOfSF);
- $objectsInSF = $query->find();
- $this->assertEquals(1, count($objectsInSF));
- $this->assertEquals('caltrain', $objectsInSF[0]->get('name'));
- // TODO remove
- /* , should fail because it crosses the dateline
- try {
- $query->find();
- $this->assertTrue(false, 'Query should fail because it crosses dateline');
- } catch (ParseException $e) {
- }
- */
-
- // Switch just the latitude
- // (note) used to fail on old parse, passes in the open source variant
- $query = new ParseQuery('TestObject');
- $query->withinGeoBox('location', $northwestOfSF, $southeastOfSF);
- $objectsInSF = $query->find();
- $this->assertEquals(1, count($objectsInSF));
- $this->assertEquals('caltrain', $objectsInSF[0]->get('name'));
- // TODO remove
- /* , should fail because it doesnt make sense
- try {
- $query->find();
- $this->assertTrue(false, 'Query should fail because it makes no sense');
- } catch (ParseException $e) {
- }
- */
- }
-
- public function testGeoBoxSmallNearDateLine()
- {
- $nearWestOfDateLine = new ParseGeoPoint(0, 175);
- $nearWestObject = ParseObject::create('TestObject');
-
- $nearWestObject->set('location', $nearWestOfDateLine);
- $nearWestObject->set('name', 'near west');
- $nearWestObject->set('order', 1);
- $nearWestObject->save();
-
- $nearEastOfDateLine = new ParseGeoPoint(0, -175);
- $nearEastObject = ParseObject::create('TestObject');
-
- $nearEastObject->set('location', $nearEastOfDateLine);
- $nearEastObject->set('name', 'near east');
- $nearEastObject->set('order', 2);
- $nearEastObject->save();
-
- $farWestOfDateLine = new ParseGeoPoint(0, 165);
- $farWestObject = ParseObject::create('TestObject');
-
- $farWestObject->set('location', $farWestOfDateLine);
- $farWestObject->set('name', 'far west');
- $farWestObject->set('order', 3);
- $farWestObject->save();
-
- $farEastOfDateLine = new ParseGeoPoint(0, -165);
- $farEastObject = ParseObject::create('TestObject');
-
- $farEastObject->set('location', $farEastOfDateLine);
- $farEastObject->set('name', 'far east');
- $farEastObject->set('order', 4);
- $farEastObject->save();
-
- $southwestOfDateLine = new ParseGeoPoint(-10, 170);
- $northeastOfDateLine = new ParseGeoPoint(10, -170);
-
- // (note) used to fail on old parse, passes in the open source variant
- $query = new ParseQuery('TestObject');
- $query->withinGeoBox('location', $southwestOfDateLine, $northeastOfDateLine);
- $query->ascending('order');
- $objects = $query->find();
-
- // verify # of objects
- $this->assertCount(2, $objects);
-
- // verify order of objects
- $this->assertEquals('far west', $objects[0]->get('name'));
- $this->assertEquals('far east', $objects[1]->get('name'));
- /* TODO REMOVE
- try {
- $query->find();
- $this->assertTrue(false, 'Query should fail for crossing the date line.');
- } catch (ParseException $e) {
- }
- */
- }
-
- public function testGeoBoxTooLarge()
- {
- $centerPoint = new ParseGeoPoint(0, 0);
- $center = ParseObject::create('TestObject');
-
- $center->set('location', $centerPoint);
- $center->set('name', 'center');
- $center->save();
-
- $southwest = new ParseGeoPoint(-89, -179);
- $northeast = new ParseGeoPoint(89, 179);
-
- // This is an interesting test case because mongo can actually handle this
- // kind of query, but
- // if one actually happens, it's probably that the developer switches the
- // two points.
- $query = new ParseQuery('TestObject');
- $query->withinGeoBox('location', $southwest, $northeast);
- $points = $query->find();
- $this->assertCount(1, $points);
- $this->assertEquals('center', $points[0]->get('name'));
- /* TODO REMOVE
- try {
- $query->find();
- $this->assertTrue(false, 'Query should fail for being too large.');
- } catch (ParseException $e) {
- }
- */
- }
-}
diff --git a/tests/Parse/ParseGeoPointTest.php b/tests/Parse/ParseGeoPointTest.php
deleted file mode 100644
index dff757e9..00000000
--- a/tests/Parse/ParseGeoPointTest.php
+++ /dev/null
@@ -1,450 +0,0 @@
-set('location', $point);
-
- $obj->set('name', 'Ferndale');
- $obj->save();
-
- // Non geo query
- $query = new ParseQuery('TestObject');
- $query->equalTo('name', 'Ferndale');
- $results = $query->find();
- $this->assertEquals(1, count($results));
-
- // Round trip encoding
- $actualPoint = $results[0]->get('location');
- $this->assertEquals(44.0, $actualPoint->getLatitude());
- $this->assertEquals(-11.0, $actualPoint->getLongitude());
-
- // nearsphere
- $point->setLatitude(66.0);
- $query = new ParseQuery('TestObject');
- $query->near('location', $point);
- $results = $query->find();
- $this->assertEquals(1, count($results));
- }
-
- public function testGeoLine()
- {
- for ($i = 0; $i < 10; ++$i) {
- $obj = ParseObject::create('TestObject');
- $point = new ParseGeoPoint($i * 4.0 - 12.0, $i * 3.2 - 11.0);
- $obj->set('location', $point);
- $obj->set('construct', 'line');
- $obj->set('seq', $i);
- $obj->save();
- }
-
- $query = new ParseQuery('TestObject');
- $point = new ParseGeoPoint(24.0, 19.0);
- $query->equalTo('construct', 'line');
- $query->withinMiles('location', $point, 10000);
- $results = $query->find();
- $this->assertEquals(10, count($results));
- $this->assertEquals(9, $results[0]->get('seq'));
- $this->assertEquals(6, $results[3]->get('seq'));
- }
-
- public function testGeoMaxDistance()
- {
- for ($i = 0; $i < 3; ++$i) {
- $obj = ParseObject::create('TestObject');
- $point = new ParseGeoPoint(0.0, $i * 45.0);
- $obj->set('location', $point);
- $obj->set('index', $i);
- $obj->save();
- }
-
- // baseline all
- $query = new ParseQuery('TestObject');
- $point = new ParseGeoPoint(1.0, -1.0);
- $query->near('location', $point);
- $results = $query->find();
- $this->assertEquals(3, count($results));
-
- // all
- $query = new ParseQuery('TestObject');
- $query->withinRadians('location', $point, 3.14 * 2);
- $results = $query->find();
- $this->assertEquals(3, count($results));
-
- // all
- $query = new ParseQuery('TestObject');
- $query->withinRadians('location', $point, 3.14);
- $results = $query->find();
- $this->assertEquals(3, count($results));
-
- // 2
- $query = new ParseQuery('TestObject');
- $query->withinRadians('location', $point, 3.14 * 0.5);
- $results = $query->find();
- $this->assertEquals(2, count($results));
- $this->assertEquals(1, $results[1]->get('index'));
-
- // 1
- $query = new ParseQuery('TestObject');
- $query->withinRadians('location', $point, 3.14 * 0.25);
- $results = $query->find();
- $this->assertEquals(1, count($results));
- $this->assertEquals(0, $results[0]->get('index'));
- }
-
- public function testGeoMaxDistanceWithUnits()
- {
- Helper::clearClass('PlaceObject');
- // [SAC] 38.52 -121.50 Sacramento,CA
- $sacramento = new ParseGeoPoint(38.52, -121.50);
- $obj = ParseObject::create('PlaceObject');
- $obj->set('location', $sacramento);
- $obj->set('name', 'Sacramento');
- $obj->save();
-
- // [HNL] 21.35 -157.93 Honolulu Int,HI
- $honolulu = new ParseGeoPoint(21.35, -157.93);
- $obj = ParseObject::create('PlaceObject');
- $obj->set('location', $honolulu);
- $obj->set('name', 'Honolulu');
- $obj->save();
-
- // [51Q] 37.75 -122.68 San Francisco,CA
- $sanfran = new ParseGeoPoint(37.75, -122.68);
- $obj = ParseObject::create('PlaceObject');
- $obj->set('location', $sanfran);
- $obj->set('name', 'San Francisco');
- $obj->save();
-
- // test point SFO
- $point = new ParseGeoPoint(37.6189722, -122.3748889);
-
- // Kilometers
- // baseline all
- $query = new ParseQuery('PlaceObject');
- $query->near('location', $point);
- $results = $query->find();
- $this->assertEquals(3, count($results));
-
- // max with all
- $query = new ParseQuery('PlaceObject');
- $query->withinKilometers('location', $point, 4000.0);
- $results = $query->find();
- $this->assertEquals(3, count($results));
-
- // drop hawaii
- $query = new ParseQuery('PlaceObject');
- $query->withinKilometers('location', $point, 3700.0);
- $results = $query->find();
- $this->assertEquals(2, count($results));
-
- // drop sacramento
- $query = new ParseQuery('PlaceObject');
- $query->withinKilometers('location', $point, 100.0);
- $results = $query->find();
- $this->assertEquals(1, count($results));
- $this->assertEquals('San Francisco', $results[0]->get('name'));
-
- // drop SF
- $query = new ParseQuery('PlaceObject');
- $query->withinKilometers('location', $point, 10.0);
- $results = $query->find();
- $this->assertEquals(0, count($results));
-
- // Miles
- // max with all
- $query = new ParseQuery('PlaceObject');
- $query->withinMiles('location', $point, 2500.0);
- $results = $query->find();
- $this->assertEquals(3, count($results));
-
- // drop hawaii
- $query = new ParseQuery('PlaceObject');
- $query->withinMiles('location', $point, 2200.0);
- $results = $query->find();
- $this->assertEquals(2, count($results));
-
- // drop sacramento
- $query = new ParseQuery('PlaceObject');
- $query->withinMiles('location', $point, 75.0);
- $results = $query->find();
- $this->assertEquals(1, count($results));
- $this->assertEquals('San Francisco', $results[0]->get('name'));
-
- // drop SF
- $query = new ParseQuery('PlaceObject');
- $query->withinMiles('location', $point, 10.0);
- $results = $query->find();
- $this->assertEquals(0, count($results));
- }
-
- public function testGeoMaxDistanceWithUnitsUnsorted()
- {
- Helper::clearClass('PlaceObject');
- // [SAC] 38.52 -121.50 Sacramento,CA
- $sacramento = new ParseGeoPoint(38.52, -121.50);
- $obj = ParseObject::create('PlaceObject');
- $obj->set('location', $sacramento);
- $obj->set('name', 'Sacramento');
- $obj->save();
-
- // [HNL] 21.35 -157.93 Honolulu Int,HI
- $honolulu = new ParseGeoPoint(21.35, -157.93);
- $obj = ParseObject::create('PlaceObject');
- $obj->set('location', $honolulu);
- $obj->set('name', 'Honolulu');
- $obj->save();
-
- // [51Q] 37.75 -122.68 San Francisco,CA
- $sanfran = new ParseGeoPoint(37.75, -122.68);
- $obj = ParseObject::create('PlaceObject');
- $obj->set('location', $sanfran);
- $obj->set('name', 'San Francisco');
- $obj->save();
-
- // test point SFO
- $point = new ParseGeoPoint(37.6189722, -122.3748889);
-
- // Kilometers
- // baseline all
- $query = new ParseQuery('PlaceObject');
- $query->near('location', $point);
- $results = $query->find();
- $this->assertEquals(3, count($results));
-
- // max with all
- $query = new ParseQuery('PlaceObject');
- $query->withinKilometers('location', $point, 4000.0, false);
- $results = $query->find();
- $this->assertEquals(3, count($results));
-
- // drop hawaii
- $query = new ParseQuery('PlaceObject');
- $query->withinKilometers('location', $point, 3700.0, false);
- $results = $query->find();
- $this->assertEquals(2, count($results));
-
- // drop sacramento
- $query = new ParseQuery('PlaceObject');
- $query->withinKilometers('location', $point, 100.0, false);
- $results = $query->find();
- $this->assertEquals(1, count($results));
- $this->assertEquals('San Francisco', $results[0]->get('name'));
-
- // drop SF
- $query = new ParseQuery('PlaceObject');
- $query->withinKilometers('location', $point, 10.0, false);
- $results = $query->find();
- $this->assertEquals(0, count($results));
-
- // Miles
- // max with all
- $query = new ParseQuery('PlaceObject');
- $query->withinMiles('location', $point, 2500.0, false);
- $results = $query->find();
- $this->assertEquals(3, count($results));
-
- // drop hawaii
- $query = new ParseQuery('PlaceObject');
- $query->withinMiles('location', $point, 2200.0, false);
- $results = $query->find();
- $this->assertEquals(2, count($results));
-
- // drop sacramento
- $query = new ParseQuery('PlaceObject');
- $query->withinMiles('location', $point, 75.0, false);
- $results = $query->find();
- $this->assertEquals(1, count($results));
- $this->assertEquals('San Francisco', $results[0]->get('name'));
-
- // drop SF
- $query = new ParseQuery('PlaceObject');
- $query->withinMiles('location', $point, 10.0, false);
- $results = $query->find();
- $this->assertEquals(0, count($results));
- }
-
- public function testGeoQueriesUnsorted()
- {
- Helper::clearClass('PlaceObject');
- $sacramento = new ParseGeoPoint(38.52, -121.50);
- $obj = ParseObject::create('PlaceObject');
- $obj->set('location', $sacramento);
- $obj->set('name', 'Sacramento');
- $obj->save();
-
- $point = new ParseGeoPoint(37.6189722, -122.3748889);
-
- $query = new ParseQuery('PlaceObject');
- $query->withinRadians('location', $point, 3.14 * 2, false);
- $this->assertEquals($query->_getOptions(), [
- 'where' => [
- 'location' => [
- '$geoWithin' => [
- '$centerSphere' => [
- [-122.3748889, 37.6189722],
- 3.14 * 2
- ]
- ]
- ]
- ]
- ]);
- }
-
- public function testBadLatitude()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Latitude must be within range [-90.0, 90.0]'
- );
- new ParseGeoPoint(-180, 32);
- }
-
- public function testBadLongitude()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Longitude must be within range [-180.0, 180.0]'
- );
- new ParseGeoPoint(32, -360);
- }
-
- public function testWithinPolygonOpenPath()
- {
- $inbound = ParseObject::create('TestObject');
- $onbound = ParseObject::create('TestObject');
- $outbound = ParseObject::create('TestObject');
-
- $inbound->set('location', new ParseGeoPoint(1, 1));
- $onbound->set('location', new ParseGeoPoint(10, 10));
- $outbound->set('location', new ParseGeoPoint(20, 20));
-
- ParseObject::saveAll([$inbound, $onbound, $outbound]);
-
- $points = [
- new ParseGeoPoint(0, 0),
- new ParseGeoPoint(0, 10),
- new ParseGeoPoint(10, 10),
- new ParseGeoPoint(10, 0)
- ];
- $query = new ParseQuery('TestObject');
- $query->withinPolygon('location', $points);
- $results = $query->find();
- $this->assertEquals(2, count($results));
- }
-
- public function testWithinPolygonClosedPath()
- {
- $inbound = ParseObject::create('TestObject');
- $onbound = ParseObject::create('TestObject');
- $outbound = ParseObject::create('TestObject');
-
- $inbound->set('location', new ParseGeoPoint(1, 1));
- $onbound->set('location', new ParseGeoPoint(10, 10));
- $outbound->set('location', new ParseGeoPoint(20, 20));
-
- ParseObject::saveAll([$inbound, $onbound, $outbound]);
-
- $points = [
- new ParseGeoPoint(0, 0),
- new ParseGeoPoint(0, 10),
- new ParseGeoPoint(10, 10),
- new ParseGeoPoint(10, 0),
- new ParseGeoPoint(0, 0)
- ];
- $query = new ParseQuery('TestObject');
- $query->withinPolygon('location', $points);
- $results = $query->find();
- $this->assertEquals(2, count($results));
- }
-
- public function testWithinPolygonEmpty()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('location', new ParseGeoPoint(1.5, 1.5));
- $obj->save();
-
- $this->expectException(
- '\Parse\ParseException',
- 'bad $geoWithin value; $polygon should contain at least 3 GeoPoints'
- );
- $query = new ParseQuery('TestObject');
- $query->withinPolygon('location', []);
- $query->find();
- }
-
- public function testWithinPolygonTwoGeoPoints()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('location', new ParseGeoPoint(1.5, 1.5));
- $obj->save();
-
- $this->expectException(
- '\Parse\ParseException',
- 'bad $geoWithin value; $polygon should contain at least 3 GeoPoints'
- );
- $points = [
- new ParseGeoPoint(0, 0),
- new ParseGeoPoint(10, 10)
- ];
- $query = new ParseQuery('TestObject');
- $query->withinPolygon('location', $points);
- $query->find();
- }
-
- public function testWithinPolygonNonArray()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('location', new ParseGeoPoint(1.5, 1.5));
- $obj->save();
-
- $this->expectException(
- '\Parse\ParseException',
- 'bad $geoWithin value; $polygon should be Polygon object or Array of Parse.GeoPoint\'s'
- );
- $query = new ParseQuery('TestObject');
- $query->withinPolygon('location', 1234);
- $query->find();
- }
-
- public function testWithinPolygonInvalidArray()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('location', new ParseGeoPoint(1.5, 1.5));
- $obj->save();
-
- $this->expectException(
- '\Parse\ParseException',
- 'bad $geoWithin value; $polygon should contain at least 3 GeoPoints'
- );
- $query = new ParseQuery('TestObject');
- $query->withinPolygon('location', [$obj]);
- $query->find();
- }
-}
diff --git a/tests/Parse/ParseHooksTest.php b/tests/Parse/ParseHooksTest.php
deleted file mode 100644
index 0a526a59..00000000
--- a/tests/Parse/ParseHooksTest.php
+++ /dev/null
@@ -1,208 +0,0 @@
-save();
- self::$hooks = new ParseHooks();
- }
-
- public function tearDown() : void
- {
- $createClass = new ParseSchema('Game');
- $createClass->delete();
- Helper::tearDown();
- }
-
- public function testSingleFunction()
- {
- self::$hooks->createFunction('baz', 'https://api.example.com/baz');
-
- $function = self::$hooks->fetchFunction('baz');
- $this->assertEquals([
- 'functionName' => 'baz',
- 'url' => 'https://api.example.com/baz'
- ], $function);
-
- self::$hooks->deleteFunction('baz');
- }
-
- public function testSingleFunctionNotFound()
- {
- $this->expectException('Parse\ParseException', 'no function named: sendMessage is defined', 143);
- self::$hooks->fetchFunction('sendMessage');
- }
-
- public function testEmptyFetchTriggers()
- {
- $this->assertEmpty(self::$hooks->fetchTriggers());
- }
-
- public function testSingleTriggerNotFound()
- {
- $this->expectException('Parse\ParseException', 'class Scores does not exist', 143);
- self::$hooks->fetchTrigger('Scores', 'beforeSave');
- }
-
- public function testCreateFunction()
- {
- $function = self::$hooks->createFunction('baz', 'https://api.example.com/baz');
- $this->assertEquals([
- 'functionName' => 'baz',
- 'url' => 'https://api.example.com/baz'
- ], $function);
-
- self::$hooks->deleteFunction('baz');
- }
-
- public function testCreateFunctionAlreadyExists()
- {
- self::$hooks->createFunction('baz', 'https://api.example.com/baz');
-
- try {
- self::$hooks->createFunction('baz', 'https://api.example.com/baz');
- } catch (ParseException $ex) {
- $this->assertEquals(
- 'function name: baz already exits',
- $ex->getMessage()
- );
- }
-
- self::$hooks->deleteFunction('baz');
- }
-
- /**
- * @group hook-create-trigger
- */
- public function testCreateTrigger()
- {
- $trigger = self::$hooks->createTrigger('Game', 'beforeSave', 'https://api.example.com/Game/beforeSave');
- // validate
- $this->assertEquals([
- 'className' => 'Game',
- 'triggerName' => 'beforeSave',
- 'url' => 'https://api.example.com/Game/beforeSave',
- ], $trigger);
-
- // fetch and revalidate
- $trigger = self::$hooks->fetchTrigger('Game', 'beforeSave');
- $this->assertEquals([
- 'className' => 'Game',
- 'triggerName' => 'beforeSave',
- 'url' => 'https://api.example.com/Game/beforeSave',
- ], $trigger);
-
-
- self::$hooks->deleteTrigger('Game', 'beforeSave');
- }
-
- public function testCreateTriggerAlreadyExists()
- {
- self::$hooks->createTrigger('Game', 'beforeDelete', 'https://api.example.com/Game/beforeDelete');
-
- try {
- self::$hooks->createTrigger('Game', 'beforeDelete', 'https://api.example.com/Game/beforeDelete');
- $this->fail();
- } catch (ParseException $ex) {
- $this->assertEquals(
- 'class Game already has trigger beforeDelete',
- $ex->getMessage()
- );
- }
-
- self::$hooks->deleteTrigger('Game', 'beforeDelete');
- }
-
- public function testEditFunction()
- {
- self::$hooks->createFunction('baz', 'https://api.example.com/baz');
-
- $edited_function = self::$hooks->editFunction('baz', 'https://api.example.com/_baz');
- $this->assertEquals([
- 'functionName' => 'baz',
- 'url' => 'https://api.example.com/_baz'
- ], $edited_function);
-
- self::$hooks->deleteFunction('baz');
- }
-
- public function testEditTrigger()
- {
- self::$hooks->createTrigger('Game', 'beforeSave', 'https://api.example.com/Game/beforeSave');
-
- $edited_trigger = self::$hooks->editTrigger('Game', 'beforeSave', 'https://api.example.com/Game/_beforeSave');
- $this->assertEquals([
- 'className' => 'Game',
- 'triggerName' => 'beforeSave',
- 'url' => 'https://api.example.com/Game/_beforeSave',
- ], $edited_trigger);
-
- self::$hooks->deleteTrigger('Game', 'beforeSave');
- }
-
- public function testDeleteFunction()
- {
- self::$hooks->createFunction('foo', 'https://api.example.com/foo');
-
- $deleted_function = self::$hooks->deleteFunction('foo');
- $this->assertEmpty($deleted_function);
- }
-
- public function testDeleteTrigger()
- {
- self::$hooks->createTrigger('Game', 'beforeSave', 'https://api.example.com/Game/beforeSave');
-
- $deleted_trigger = self::$hooks->deleteTrigger('Game', 'beforeSave');
- $this->assertEmpty($deleted_trigger);
- }
-
- /**
- * @group hooks-fetch-functions
- */
- public function testFetchFunctions()
- {
- self::$hooks->createFunction('func1', 'http://example1.com');
- self::$hooks->createFunction('func2', 'http://example2.com');
- self::$hooks->createFunction('func3', 'http://example3.com');
-
- $functions = self::$hooks->fetchFunctions();
-
- $this->assertEquals([
- [
- 'functionName' => 'func1',
- 'url' => 'http://example1.com'
- ],
- [
- 'functionName' => 'func2',
- 'url' => 'http://example2.com'
- ],
- [
- 'functionName' => 'func3',
- 'url' => 'http://example3.com'
- ]
- ], $functions);
-
- self::$hooks->deleteFunction('func1');
- self::$hooks->deleteFunction('func2');
- self::$hooks->deleteFunction('func3');
- }
-}
diff --git a/tests/Parse/ParseInstallationTest.php b/tests/Parse/ParseInstallationTest.php
deleted file mode 100644
index 1e5ae8d8..00000000
--- a/tests/Parse/ParseInstallationTest.php
+++ /dev/null
@@ -1,146 +0,0 @@
-expectException(
- '\Parse\ParseException',
- 'at least one ID field (deviceToken, installationId) must be specified in this operation'
- );
-
- (new ParseInstallation())->save();
- }
-
- /**
- * @group installation-tests
- */
- public function testMissingDeviceType()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'deviceType must be specified in this operation'
- );
-
- $installation = new ParseInstallation();
- $installation->set('deviceToken', '12345');
- $installation->save();
- }
-
- /**
- * @group installation-tests
- */
- public function testClientsCannotFindWithoutMasterKey()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Clients aren\'t allowed to perform the find operation on the installation collection.'
- );
-
- $query = ParseInstallation::query();
- $query->first();
- }
-
- /**
- * @group installation-tests
- */
- public function testClientsCannotDestroyWithoutMasterKey()
- {
- $installation = new ParseInstallation();
- $installation->set('deviceToken', '12345');
- $installation->set('deviceType', 'android');
- $installation->save();
-
- $this->expectException(
- '\Parse\ParseException',
- "Clients aren't allowed to perform the delete operation on the installation collection."
- );
-
- // try destroying, without using the master key
- $installation->destroy();
- }
-
- /**
- * @group installation-tests
- */
- public function testInstallation()
- {
- $installationId = '12345';
- $deviceToken = 'device-token';
- $deviceType = 'android';
- $channels = [
- 'one',
- 'zwei',
- 'tres'
- ];
- $pushType = 'a-push-type';
- $GCMSenderId = 'gcm-sender-id';
- $timeZone = 'Time/Zone';
- $localeIdentifier = 'locale';
- $badge = 32;
- $appVersion = '1.0.0';
- $appName = 'Foo Bar App';
- $appIdentifier = 'foo-bar-app-id';
- $parseVersion = ParseClient::VERSION_STRING;
-
- $installation = new ParseInstallation();
- $installation->set('installationId', $installationId);
- $installation->set('deviceToken', $deviceToken);
- $installation->setArray('channels', $channels);
- $installation->set('deviceType', $deviceType);
- $installation->set('pushType', $pushType);
- $installation->set('GCMSenderId', $GCMSenderId);
- $installation->set('timeZone', $timeZone);
- $installation->set('localeIdentifier', $localeIdentifier);
- $installation->set('badge', $badge);
- $installation->set('appVersion', $appVersion);
- $installation->set('appName', $appName);
- $installation->set('appIdentifier', $appIdentifier);
- $installation->set('parseVersion', $parseVersion);
-
- $installation->save();
-
- // query for this installation now
- $query = ParseInstallation::query();
- $inst = $query->first(true);
-
- $this->assertNotNull($inst, 'Installation not found');
-
- $this->assertEquals($inst->getInstallationId(), $installationId);
- $this->assertEquals($inst->getDeviceToken(), $deviceToken);
- $this->assertEquals($inst->getChannels(), $channels);
- $this->assertEquals($inst->getDeviceType(), $deviceType);
- $this->assertEquals($inst->getPushType(), $pushType);
- $this->assertEquals($inst->getGCMSenderId(), $GCMSenderId);
- $this->assertEquals($inst->getTimeZone(), $timeZone);
- $this->assertEquals($inst->getLocaleIdentifier(), $localeIdentifier);
- $this->assertEquals($inst->getBadge(), $badge);
- $this->assertEquals($inst->getAppVersion(), $appVersion);
- $this->assertEquals($inst->getAppName(), $appName);
- $this->assertEquals($inst->getAppIdentifier(), $appIdentifier);
- $this->assertEquals($inst->getParseVersion(), $parseVersion);
-
- // cleanup
- $installation->destroy(true);
- }
-}
diff --git a/tests/Parse/ParseLogsTest.php b/tests/Parse/ParseLogsTest.php
deleted file mode 100644
index 0f084a56..00000000
--- a/tests/Parse/ParseLogsTest.php
+++ /dev/null
@@ -1,93 +0,0 @@
-assertNotEmpty($logs);
- $this->assertEquals(1, count($logs));
- }
-
- /**
- * @group parse-logs-tests
- */
- public function testGettingOneLog()
- {
- $logs = ParseLogs::getInfoLogs(1);
- $this->assertEquals(1, count($logs));
- $this->assertEquals($logs[0]['method'], 'GET');
- $this->assertTrue(isset($logs[0]['url']));
- }
-
- /**
- * @group parse-logs-tests
- */
- public function testFrom()
- {
- // test getting logs from 4 hours in the future
- $date = new \DateTime();
- $date->add(new \DateInterval('PT4H'));
- $logs = ParseLogs::getInfoLogs(1, $date);
- $this->assertEquals(0, count($logs));
- }
-
- /**
- * @group parse-logs-tests
- */
- public function testUntil()
- {
- // test getting logs from 1950 years in the past (not likely...)
- $date = new \DateTime();
- $date->sub(new \DateInterval('P1950Y'));
- $logs = ParseLogs::getInfoLogs(1, null, $date);
- $this->assertEquals(0, count($logs));
- }
-
- /**
- * @group parse-logs-tests
- */
- public function testOrderAscending()
- {
- $logs = ParseLogs::getInfoLogs(15, null, null, 'asc');
- $this->assertEquals(15, count($logs));
-
- $timestamp1 = $logs[0]['timestamp'];
- $timestamp2 = $logs[count($logs)-1]['timestamp'];
-
- $timestamp1 = preg_replace('/Z$/', '', $timestamp1);
- $timestamp2 = preg_replace('/Z$/', '', $timestamp2);
-
- // get first 2 entries
- $entryDate1 = \DateTime::createFromFormat('Y-m-d\TH:i:s.u', $timestamp1);
- $entryDate2 = \DateTime::createFromFormat('Y-m-d\TH:i:s.u', $timestamp2);
-
- $this->assertTrue($entryDate1 < $entryDate2);
- }
-}
diff --git a/tests/Parse/ParseMemoryStorageTest.php b/tests/Parse/ParseMemoryStorageTest.php
deleted file mode 100644
index c552c51e..00000000
--- a/tests/Parse/ParseMemoryStorageTest.php
+++ /dev/null
@@ -1,76 +0,0 @@
-clear();
- }
-
- public function testIsUsingDefaultStorage()
- {
- $this->assertTrue(
- self::$parseStorage instanceof ParseMemoryStorage
- );
- }
-
- public function testSetAndGet()
- {
- self::$parseStorage->set('foo', 'bar');
- $this->assertEquals('bar', self::$parseStorage->get('foo'));
- }
-
- public function testRemove()
- {
- self::$parseStorage->set('foo', 'bar');
- self::$parseStorage->remove('foo');
- $this->assertNull(self::$parseStorage->get('foo'));
- }
-
- public function testClear()
- {
- self::$parseStorage->set('foo', 'bar');
- self::$parseStorage->set('foo2', 'bar');
- self::$parseStorage->set('foo3', 'bar');
- self::$parseStorage->clear();
- $this->assertEmpty(self::$parseStorage->getKeys());
- }
-
- public function testGetAll()
- {
- self::$parseStorage->set('foo', 'bar');
- self::$parseStorage->set('foo2', 'bar');
- self::$parseStorage->set('foo3', 'bar');
- $result = self::$parseStorage->getAll();
- $this->assertEquals('bar', $result['foo']);
- $this->assertEquals('bar', $result['foo2']);
- $this->assertEquals('bar', $result['foo3']);
- $this->assertEquals(3, count($result));
- }
-
- public function testSave()
- {
- // does nothing
- self::$parseStorage->save();
- $this->assertTrue(true);
- }
-}
diff --git a/tests/Parse/ParseObjectMock.php b/tests/Parse/ParseObjectMock.php
deleted file mode 100644
index 69bb1472..00000000
--- a/tests/Parse/ParseObjectMock.php
+++ /dev/null
@@ -1,13 +0,0 @@
-set('test', 'test');
- $obj->save();
- $this->assertEquals($obj->get('test'), 'test');
- }
-
- public function testUpdate()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $obj->set('foo', 'changed');
- $obj->save();
- $this->assertEquals(
- $obj->foo,
- 'changed',
- 'Update should have succeeded'
- );
- }
-
- public function testSaveCycle()
- {
- $a = ParseObject::create('TestObject');
- $b = ParseObject::create('TestObject');
- $a->set('b', $b);
- $a->save();
- $this->assertFalse($a->isDirty());
- $this->assertNotNull($a->getObjectId());
- $this->assertNotNull($b->getObjectId());
- $b->set('a', $a);
- $b->save();
- $this->assertEquals($b, $a->get('b'));
- $this->assertEquals($a, $b->get('a'));
- }
-
- public function testReturnedObjectIsAParseObject()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
-
- $query = new ParseQuery('TestObject');
- $returnedObject = $query->get($obj->getObjectId());
- $this->assertTrue(
- $returnedObject instanceof ParseObject,
- 'Returned object was not a ParseObject'
- );
- $this->assertEquals(
- 'bar',
- $returnedObject->foo,
- 'Value of foo was not saved.'
- );
- }
-
- public function testFetch()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('test', 'test');
- $obj->save();
- $t2 = ParseObject::create('TestObject', $obj->getObjectId());
- $t2->fetch();
- $this->assertEquals('test', $t2->get('test'), 'Fetch failed.');
- }
-
- public function testDeleteStream()
- {
- ParseClient::setHttpClient(new ParseStreamHttpClient());
-
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $obj->destroy();
- $query = new ParseQuery('TestObject');
- $this->expectException('Parse\ParseException', 'Object not found');
- $query->get($obj->getObjectId());
- }
-
- public function testDeleteCurl()
- {
- if (function_exists('curl_init')) {
- ParseClient::setHttpClient(new ParseCurlHttpClient());
-
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $obj->destroy();
- $query = new ParseQuery('TestObject');
- $this->expectException('Parse\ParseException', 'Object not found');
- $query->get($obj->getObjectId());
- }
- }
-
- public function testFind()
- {
- Helper::clearClass('TestObject');
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('foo', 'bar');
- $response = $query->count();
- $this->assertTrue($response == 1);
- }
-
- public function testRelationalFields()
- {
- Helper::clearClass('Item');
- Helper::clearClass('Container');
- $item = ParseObject::create('Item');
- $item->set('property', 'x');
- $item->save();
-
- $container = ParseObject::create('Container');
- $container->set('item', $item);
- $container->save();
-
- $query = new ParseQuery('Container');
- $query->includeKey('item');
- $containerAgain = $query->get($container->getObjectId());
- $itemAgain = $containerAgain->get('item');
- $this->assertEquals('x', $itemAgain->get('property'));
-
- $query->equalTo('item', $item);
- $results = $query->find();
- $this->assertEquals(1, count($results));
- }
-
- public function testRelationDeletion()
- {
- Helper::clearClass('SimpleObject');
- Helper::clearClass('Child');
- $simple = ParseObject::create('SimpleObject');
- $child = ParseObject::create('Child');
- $simple->set('child', $child);
- $simple->save();
- $this->assertNotNull($simple->get('child'));
- $simple->delete('child');
- $this->assertNull($simple->get('child'));
- $this->assertTrue($simple->isDirty());
- $this->assertTrue($simple->isKeyDirty('child'));
- $simple->save();
- $this->assertNull($simple->get('child'));
- $this->assertFalse($simple->isDirty());
- $this->assertFalse($simple->isKeyDirty('child'));
-
- $query = new ParseQuery('SimpleObject');
- $simpleAgain = $query->get($simple->getObjectId());
- $this->assertNull($simpleAgain->get('child'));
- }
-
- public function testSaveAddsNoDataKeys()
- {
- $obj = ParseObject::create('TestObject');
- $obj->save();
- $json = $obj->_encode();
- $data = get_object_vars(json_decode($json));
- unset($data['objectId']);
- unset($data['createdAt']);
- unset($data['updatedAt']);
- $this->assertEquals(0, count($data));
- }
-
- public function testRecursiveSave()
- {
- Helper::clearClass('Container');
- Helper::clearClass('Item');
- $a = ParseObject::create('Container');
- $b = ParseObject::create('Item');
- $b->set('foo', 'bar');
- $a->set('item', $b);
- $a->save();
- $query = new ParseQuery('Container');
- $result = $query->find();
- $this->assertEquals(1, count($result));
- $containerAgain = $result[0];
- $itemAgain = $containerAgain->get('item');
- $itemAgain->fetch();
- $this->assertEquals('bar', $itemAgain->get('foo'));
- }
-
- public function testFetchRemovesOldFields()
- {
- $obj = ParseObject::create('SimpleObject');
- $obj->set('foo', 'bar');
- $obj->set('test', 'foo');
- $obj->save();
-
- $query = new ParseQuery('SimpleObject');
- $object1 = $query->get($obj->getObjectId());
- $object2 = $query->get($obj->getObjectId());
- $this->assertEquals('foo', $object1->get('test'));
- $this->assertEquals('foo', $object2->get('test'));
- $object2->delete('test');
- $this->assertEquals('foo', $object1->get('test'));
- $object2->save();
- $object1->fetch();
- $this->assertEquals(null, $object1->get('test'));
- $this->assertEquals(null, $object2->get('test'));
- $this->assertEquals('bar', $object1->get('foo'));
- $this->assertEquals('bar', $object2->get('foo'));
- }
-
- public function testCreatedAtAndUpdatedAtExposed()
- {
- $obj = ParseObject::create('TestObject');
- $obj->save();
- $this->assertNotNull($obj->getObjectId());
- $this->assertNotNull($obj->getCreatedAt());
- $this->assertNotNull($obj->getUpdatedAt());
- }
-
- public function testCreatedAtDoesNotChange()
- {
- $obj = ParseObject::create('TestObject');
- $obj->save();
- $this->assertNotNull($obj->getObjectId());
- $objAgain = ParseObject::create('TestObject', $obj->getObjectId());
- $objAgain->fetch();
- $this->assertEquals(
- $obj->getCreatedAt(),
- $objAgain->getCreatedAt()
- );
- }
-
- public function testUpdatedAtGetsUpdated()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $this->assertNotNull($obj->getUpdatedAt());
- $firstUpdate = $obj->getUpdatedAt();
- // Parse is so fast, this test was flaky as the \DateTimes were equal.
- sleep(1);
- $obj->set('foo', 'baz');
- $obj->save();
- $this->assertNotEquals($obj->getUpdatedAt(), $firstUpdate);
- }
-
- public function testCreatedAtIsReasonable()
- {
- $startTime = new \DateTime();
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $endTime = new \DateTime();
- $startDiff = abs(
- $startTime->getTimestamp() - $obj->getCreatedAt()->getTimestamp()
- );
- $endDiff = abs(
- $endTime->getTimestamp() - $obj->getCreatedAt()->getTimestamp()
- );
- $this->assertLessThan(5000, $startDiff);
- $this->assertLessThan(5000, $endDiff);
- }
-
- public function testCanSetNull()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', null);
- $obj->save();
- $this->assertEquals(null, $obj->get('foo'));
- }
-
- public function testCanSetBoolean()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('yes', true);
- $obj->set('no', false);
- $obj->save();
- $this->assertTrue($obj->get('yes'));
- $this->assertFalse($obj->get('no'));
- }
-
- public function testInvalidClassName()
- {
- $obj = ParseObject::create('Foo^bar');
- $this->expectException('Parse\ParseException', 'schema class name does not revalidate');
- $obj->save();
- }
-
- public function testInvalidKeyName()
- {
- $obj = ParseObject::create('TestItem');
- $obj->set('foo^bar', 'baz');
- $this->expectException(
- 'Parse\ParseException',
- 'Invalid field name: foo^bar.'
- );
- $obj->save();
- }
-
- public function testSimpleFieldDeletion()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $obj->delete('foo');
- $this->assertFalse($obj->has('foo'), 'foo should have been unset.');
- $this->assertTrue($obj->isKeyDirty('foo'), 'foo should be dirty.');
- $this->assertTrue($obj->isDirty(), 'the whole object should be dirty.');
- $obj->save();
- $this->assertFalse($obj->has('foo'), 'foo should have been unset.');
- $this->assertFalse($obj->isKeyDirty('foo'), 'object was just saved.');
- $this->assertFalse($obj->isDirty(), 'object was just saved.');
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('foo'), 'foo was not removed.');
- }
-
- public function testFieldDeletionBeforeFirstSave()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->delete('foo');
- $this->assertFalse($obj->has('foo'), 'foo should have been unset.');
- $this->assertTrue($obj->isKeyDirty('foo'), 'foo should be dirty.');
- $this->assertTrue($obj->isDirty(), 'the whole object should be dirty.');
- $obj->save();
- $this->assertFalse($obj->has('foo'), 'foo should have been unset.');
- $this->assertFalse($obj->isKeyDirty('foo'), 'object was just saved.');
- $this->assertFalse($obj->isDirty(), 'object was just saved.');
- }
-
- public function testDeletedKeysGetCleared()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->delete('foo');
- $obj->save();
- $obj->set('foo', 'baz');
- $obj->save();
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertEquals('baz', $result->get('foo'));
- }
-
- public function testSettingAfterDeleting()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $obj->delete('foo');
- $obj->set('foo', 'baz');
- $obj->save();
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertEquals('baz', $result->get('foo'));
- }
-
- public function testDirtyKeys()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('cat', 'good');
- $obj->set('dog', 'bad');
- $obj->save();
- $this->assertFalse($obj->isDirty());
- $this->assertFalse($obj->isKeyDirty('cat'));
- $this->assertFalse($obj->isKeyDirty('dog'));
- $obj->set('dog', 'okay');
- $this->assertTrue($obj->isKeyDirty('dog'));
- $this->assertTrue($obj->isDirty());
- }
-
- public function testOldAttributeUnsetThenUnset()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('x', 3);
- $obj->save();
- $obj->delete('x');
- $obj->delete('x');
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function testNewAttributeUnsetThenUnset()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('x', 5);
- $obj->delete('x');
- $obj->delete('x');
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function testUnknownAttributeUnsetThenUnset()
- {
- $obj = ParseObject::create('TestObject');
- $obj->delete('x');
- $obj->delete('x');
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function oldAttributeUnsetThenClear()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('x', 3);
- $obj->save();
- $obj->delete('x');
- $obj->clear();
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function testNewAttributeUnsetThenClear()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('x', 5);
- $obj->delete('x');
- $obj->clear();
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function testUnknownAttributeUnsetThenClear()
- {
- $obj = ParseObject::create('TestObject');
- $obj->delete('x');
- $obj->clear();
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function oldAttributeClearThenUnset()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('x', 3);
- $obj->save();
- $obj->clear();
- $obj->delete('x');
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function testNewAttributeClearThenUnset()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('x', 5);
- $obj->clear();
- $obj->delete('x');
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function testUnknownAttributeClearThenUnset()
- {
- $obj = ParseObject::create('TestObject');
- $obj->clear();
- $obj->delete('x');
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function oldAttributeClearThenClear()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('x', 3);
- $obj->save();
- $obj->clear();
- $obj->clear();
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function testNewAttributeClearThenClear()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('x', 5);
- $obj->clear();
- $obj->clear();
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function testUnknownAttributeClearThenClear()
- {
- $obj = ParseObject::create('TestObject');
- $obj->clear();
- $obj->clear();
- $obj->save();
- $this->assertFalse($obj->has('x'));
- $this->assertNull($obj->get('x'));
-
- $query = new ParseQuery('TestObject');
- $result = $query->get($obj->getObjectId());
- $this->assertFalse($result->has('x'));
- $this->assertNull($result->get('x'));
- }
-
- public function testSavingChildrenInArray()
- {
- Helper::clearClass('Parent');
- Helper::clearClass('Child');
- $parent = ParseObject::create('Parent');
- $child1 = ParseObject::create('Child');
- $child2 = ParseObject::create('Child');
- $child1->set('name', 'tyrian');
- $child2->set('name', 'cersei');
- $parent->setArray('children', [$child1, $child2]);
- $parent->save();
-
- $query = new ParseQuery('Child');
- $query->ascending('name');
- $results = $query->find();
- $this->assertEquals(2, count($results));
- $this->assertEquals('cersei', $results[0]->get('name'));
- $this->assertEquals('tyrian', $results[1]->get('name'));
- }
-
- public function testManySaveAfterAFailure()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('number', 1);
- $obj->save();
- $obj2 = ParseObject::create('TestObject');
- $obj2->set('number', 'two');
- $exceptions = 0;
- try {
- $obj2->save();
- } catch (ParseException $pe) {
- $exceptions++;
- }
- $obj2->set('foo', 'bar');
- try {
- $obj2->save();
- } catch (ParseException $pe) {
- $exceptions++;
- }
- $obj2->set('foo', 'baz');
- try {
- $obj2->save();
- } catch (ParseException $pe) {
- $exceptions++;
- }
- $obj2->set('number', 3);
- $obj2->save();
- if ($exceptions != 3) {
- $this->fail('Did not cause expected # of exceptions.');
- }
- $this->assertTrue(true);
- }
-
- public function testNewKeyIsDirtyAfterSave()
- {
- $obj = ParseObject::create('TestObject');
- $obj->save();
- $obj->set('content', 'x');
- $obj->fetch();
- $this->assertTrue($obj->isKeyDirty('content'));
- }
-
- public function testAddWithAnObject()
- {
- $parent = ParseObject::create('Person');
- $child = ParseObject::create('Person');
- $child->save();
- $parent->add('children', [$child]);
- $parent->save();
-
- $query = new ParseQuery('Person');
- $parentAgain = $query->get($parent->getObjectId());
- $children = $parentAgain->get('children');
- $this->assertEquals(
- $child->getObjectId(),
- $children[0]->getObjectId()
- );
- }
-
- public function testSetArray()
- {
- $arr = [0 => 'foo', 2 => 'bar'];
- $obj = ParseObject::create('TestObject');
- $obj->setArray('arr', $arr);
- $obj->save();
-
- $this->assertEquals($obj->get('arr'), array_values($arr));
- }
-
- public function testAddUnique()
- {
- $obj = ParseObject::create('TestObject');
- $obj->setArray('arr', [1, 2, 3]);
- $obj->addUnique('arr', [1]);
- $this->assertEquals(3, count($obj->get('arr')));
- $obj->addUnique('arr', [4]);
- $this->assertEquals(4, count($obj->get('arr')));
-
- $obj->save();
- $obj2 = ParseObject::create('TestObject');
- $obj3 = ParseObject::create('TestObject');
- $obj2->save();
- $obj3->save();
-
- $obj4 = ParseObject::create('TestObject');
- $obj4->setArray('parseObjects', [$obj, $obj2]);
- $obj4->save();
- $obj4->addUnique('parseObjects', [$obj3]);
- $this->assertEquals(3, count($obj4->get('parseObjects')));
- $obj4->addUnique('parseObjects', [$obj2]);
- $this->assertEquals(3, count($obj4->get('parseObjects')));
- }
-
- public function testToJSONSavedObject()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $json = $obj->_encode();
- $decoded = json_decode($json);
- $this->assertTrue(isset($decoded->objectId));
- $this->assertTrue(isset($decoded->createdAt));
- $this->assertTrue(isset($decoded->updatedAt));
- $this->assertTrue(isset($decoded->foo));
- }
-
- public function testToJSONUnsavedObject()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $json = $obj->_encode();
- $decoded = json_decode($json);
- $this->assertFalse(isset($decoded->objectId));
- $this->assertFalse(isset($decoded->createdAt));
- $this->assertFalse(isset($decoded->updatedAt));
- $this->assertTrue(isset($decoded->foo));
- }
-
- public function testAssocToJSONSavedObject()
- {
- $obj = ParseObject::create('TestObject');
- $assoc = ["foo" => "bar", "baz" => "yay"];
- $obj->setAssociativeArray('obj', $assoc);
- $obj->save();
- $json = $obj->_encode();
- $decoded = json_decode($json, true);
- $this->assertEquals($decoded['obj'], $assoc);
- $this->assertEquals($obj->get('obj'), $assoc);
- }
-
- public function testAssocToJSONUnsavedObject()
- {
- $obj = ParseObject::create('TestObject');
- $assoc = ["foo" => "bar", "baz" => "yay"];
- $obj->setAssociativeArray('obj', $assoc);
- $json = $obj->_encode();
- $decoded = json_decode($json, true);
- $this->assertEquals($decoded['obj'], $assoc);
- $this->assertEquals($obj->get('obj'), $assoc);
- }
-
- public function testRemoveOperation()
- {
- $obj = ParseObject::create('TestObject');
- $obj->setArray('arr', [1, 2, 3]);
- $obj->save();
- $this->assertEquals(3, count($obj->get('arr')));
- $obj->remove('arr', 1);
- $this->assertEquals(2, count($obj->get('arr')));
- $obj->remove('arr', 1);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $objAgain = $query->get($obj->getObjectId());
- $this->assertEquals(2, count($objAgain->get('arr')));
- $objAgain->remove('arr', 2);
- $this->assertEquals(1, count($objAgain->get('arr')));
- }
-
- public function testRemoveOperationWithParseObjects()
- {
- $o1 = ParseObject::create('TestObject');
- $o2 = ParseObject::create('TestObject');
- $o3 = ParseObject::create('TestObject');
- ParseObject::saveAll([$o1, $o2, $o3]);
- $obj = ParseObject::create('TestObject');
- $obj->setArray('objs', [$o1, $o2, $o3]);
- $obj->save();
- $this->assertEquals(3, count($obj->get('objs')));
- $obj->remove('objs', $o3);
- $this->assertEquals(2, count($obj->get('objs')));
- $obj->remove('objs', $o3);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $objAgain = $query->get($obj->getObjectId());
- $this->assertEquals(2, count($objAgain->get('objs')));
- $objAgain->remove('objs', $o2);
- $this->assertEquals(1, count($objAgain->get('objs')));
- }
-
- public function testDestroyAll()
- {
- Helper::clearClass('TestObject');
-
- // log in
- $user = new ParseUser();
- $user->setUsername('username123');
- $user->setPassword('password123');
- $user->signUp();
-
- $o1 = ParseObject::create('TestObject');
- $o2 = ParseObject::create('TestObject');
- $o3 = ParseObject::create('TestObject');
- ParseObject::saveAll([$o1, $o2, $o3]);
- ParseObject::destroyAll([$o1, $o2, $o3]);
- $query = new ParseQuery('TestObject');
- $results = $query->find();
- $this->assertEquals(0, count($results));
-
- ParseUser::logOut();
- $user->destroy(true);
- }
-
- public function testBatchSize()
- {
- $batchSize = 1;
- Helper::clearClass('TestObject');
-
- // log in
- $user = new ParseUser();
- $user->setUsername('username123');
- $user->setPassword('password123');
- $user->signUp();
-
- $o1 = ParseObject::create('TestObject');
- $o2 = ParseObject::create('TestObject');
- $o3 = ParseObject::create('TestObject');
- ParseObject::saveAll([$o1, $o2, $o3], true, $batchSize);
- ParseObject::destroyAll([$o1, $o2, $o3], true, $batchSize);
- $query = new ParseQuery('TestObject');
- $results = $query->find();
- $this->assertEquals(0, count($results));
-
- ParseUser::logOut();
- $user->destroy(true);
- }
-
- public function testEmptyArray()
- {
- $obj = ParseObject::create('TestObject');
- $obj->setArray('baz', []);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $returnedObject = $query->get($obj->getObjectId());
- $this->assertTrue(
- is_array($returnedObject->get('baz')),
- 'Value was not stored as an array.'
- );
- $this->assertEquals(0, count($returnedObject->get('baz')));
- }
-
- public function testArraySetAndAdd()
- {
- $obj = ParseObject::create('TestObject');
- $obj->setArray('arrayfield', ['a', 'b']);
- $obj->save();
- $obj->add('arrayfield', ['c', 'd', 'e']);
- $obj->save();
- $this->assertEquals($obj->get('arrayfield'), ['a', 'b', 'c', 'd', 'e']);
- }
-
- public function testObjectIsDirty()
- {
- $obj = ParseObject::create('Gogo');
- $key1 = 'awesome';
- $key2 = 'great';
- $key3 = 'arrayKey';
- $value1 = 'very true';
- $value2 = true;
-
- $obj->set($key1, $value1);
- $this->assertTrue($obj->isKeyDirty($key1));
- $this->assertFalse($obj->isKeyDirty($key2));
- $this->assertTrue($obj->isDirty());
-
- $obj->save();
- $this->assertFalse($obj->isKeyDirty($key1));
- $this->assertFalse($obj->isKeyDirty($key2));
- $this->assertFalse($obj->isDirty());
-
- $obj->set($key2, $value2);
- $this->assertTrue($obj->isKeyDirty($key2));
- $this->assertFalse($obj->isKeyDirty($key1));
- $this->assertTrue($obj->isDirty());
-
- $query = new ParseQuery('Gogo');
- $queriedObj = $query->get($obj->getObjectId());
- $this->assertEquals($value1, $queriedObj->get($key1));
- $this->assertFalse($queriedObj->get($key2) === $value2);
-
- // check dirtiness of queried item
- $this->assertFalse($queriedObj->isKeyDirty($key1));
- $this->assertFalse($queriedObj->isKeyDirty($key2));
- $this->assertFalse($queriedObj->isDirty());
-
- $obj->save();
- $queriedObj = $query->get($obj->getObjectId());
- $this->assertEquals($value1, $queriedObj->get($key1));
- $this->assertEquals($value2, $queriedObj->get($key2));
- $this->assertFalse($queriedObj->isKeyDirty($key1));
- $this->assertFalse($queriedObj->isKeyDirty($key2));
- $this->assertFalse($queriedObj->isDirty());
-
- // check array
- $obj->add($key3, [$value1, $value2, $value1]);
- $this->assertTrue($obj->isDirty());
-
- $obj->save();
- $this->assertFalse($obj->isDirty());
- }
-
- public function testObjectIsDirtyWithChildren()
- {
- $obj = ParseObject::create('Sito');
- $key = 'testKey';
- $childKey = 'testChildKey';
- $childSimultaneousKey = 'testChildKeySimultaneous';
- $value = 'someRandomValue';
- $child = ParseObject::create('Sito');
- $childSimultaneous = ParseObject::create('Sito');
- $childArray1 = ParseObject::create('Sito');
- $childArray2 = ParseObject::create('Sito');
-
- $child->set('randomKey', 'randomValue');
- $this->assertTrue($child->isDirty());
-
- $obj->set($key, $value);
- $this->assertTrue($obj->isDirty());
-
- $obj->save();
- $this->assertFalse($obj->isDirty());
-
- $obj->set($childKey, $child);
- $this->assertTrue($obj->isKeyDirty($childKey));
- $this->assertTrue($obj->isDirty());
-
- // check when child is saved, parent should still be dirty
- $child->save();
- $this->assertFalse($child->isDirty());
- $this->assertTrue($obj->isDirty());
-
- $obj->save();
- $this->assertFalse($child->isDirty());
- $this->assertFalse($obj->isDirty());
-
- $childSimultaneous->set('randomKey', 'randomValue');
- $obj->set($childSimultaneousKey, $childSimultaneous);
- $this->assertTrue($obj->isDirty());
-
- // check case with array
- $childArray1->set('random', 'random2');
- $obj->add('arrayKey', [$childArray1, $childArray2]);
- $this->assertTrue($obj->isDirty());
- $childArray1->save();
- $childArray2->save();
- $this->assertFalse($childArray1->getObjectId() === null);
- $this->assertFalse($childArray2->getObjectId() === null);
- $this->assertFalse($obj->getObjectId() === null);
- $this->assertTrue($obj->isDirty());
- $obj->save();
- $this->assertFalse($obj->isDirty());
-
- // check simultaneous save
- $obj->save();
- $this->assertFalse($obj->isDirty());
- $this->assertFalse($childSimultaneous->isDirty());
- }
-
- public function testSaveAllStream()
- {
- ParseClient::setHttpClient(new ParseStreamHttpClient());
-
- Helper::clearClass('TestObject');
- $objs = [];
- for ($i = 1; $i <= 90; $i++) {
- $obj = ParseObject::create('TestObject');
- $obj->set('test', 'test');
- $objs[] = $obj;
- }
- ParseObject::saveAll($objs);
- $query = new ParseQuery('TestObject');
- $result = $query->find();
- $this->assertEquals(90, count($result));
- }
-
- public function testSaveAllCurl()
- {
- if (function_exists('curl_init')) {
- ParseClient::setHttpClient(new ParseCurlHttpClient());
-
- Helper::clearClass('TestObject');
- $objs = [];
- for ($i = 1; $i <= 90; $i++) {
- $obj = ParseObject::create('TestObject');
- $obj->set('test', 'test');
- $objs[] = $obj;
- }
- ParseObject::saveAll($objs);
- $query = new ParseQuery('TestObject');
- $result = $query->find();
- $this->assertEquals(90, count($result));
- }
- }
-
- /**
- * @group test-empty-objects-arrays
- */
- public function testEmptyObjectsAndArrays()
- {
- $obj = ParseObject::create('TestObject');
- $obj->setArray('arr', []);
- $obj->setAssociativeArray('obj', []);
- $saveOpArray = new SetOperation([]);
- $saveOpAssoc = new SetOperation([], true);
- $this->assertTrue(
- is_array($saveOpArray->_encode()),
- 'Value should be array.'
- );
- $this->assertTrue(
- is_object($saveOpAssoc->_encode()),
- 'Value should be object.'
- );
- $obj->save();
- $obj->setAssociativeArray(
- 'obj',
- [
- 'foo' => 'bar',
- 'baz' => 'yay',
- ]
- );
- $obj->save();
- $query = new ParseQuery('TestObject');
- $objAgain = $query->get($obj->getObjectId());
- $this->assertTrue(is_array($objAgain->get('arr')));
- $this->assertTrue(is_array($objAgain->get('obj')));
- $this->assertEquals('bar', $objAgain->get('obj')['foo']);
- $this->assertEquals('yay', $objAgain->get('obj')['baz']);
- }
-
- public function testDatetimeHandling()
- {
- $date = new \DateTime('2014-04-30T12:34:56.789Z');
- $obj = ParseObject::create('TestObject');
- $obj->set('f8', $date);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $objAgain = $query->get($obj->getObjectId());
- $dateAgain = $objAgain->get('f8');
- $this->assertTrue($date->getTimestamp() == $dateAgain->getTimestamp());
- }
-
- public function testBatchSaveExceptions()
- {
- $obj1 = ParseObject::create('TestObject');
- $obj2 = ParseObject::create('TestObject');
- $obj1->set('fos^^co', 'hi');
- $obj2->set('fo^^mo', 'hi');
- try {
- ParseObject::saveAll([$obj1, $obj2]);
- $this->fail('Save should have failed.');
- } catch (ParseAggregateException $ex) {
- $errors = $ex->getErrors();
- $this->assertEquals('Invalid field name: fos^^co.', $errors[0]['error']);
- $this->assertEquals('Invalid field name: fo^^mo.', $errors[1]['error']);
- }
- }
-
- public function testFetchAll()
- {
- $obj1 = ParseObject::create('TestObject');
- $obj2 = ParseObject::create('TestObject');
- $obj3 = ParseObject::create('TestObject');
- $obj1->set('foo', 'bar');
- $obj2->set('foo', 'bar');
- $obj3->set('foo', 'bar');
- ParseObject::saveAll([$obj1, $obj2, $obj3]);
- $newObj1 = ParseObject::create('TestObject', $obj1->getObjectId());
- $newObj2 = ParseObject::create('TestObject', $obj2->getObjectId());
- $newObj3 = ParseObject::create('TestObject', $obj3->getObjectId());
- $results = ParseObject::fetchAll([$newObj1, $newObj2, $newObj3]);
- $this->assertEquals(3, count($results));
- $this->assertEquals('bar', $results[0]->get('foo'));
- $this->assertEquals('bar', $results[1]->get('foo'));
- $this->assertEquals('bar', $results[2]->get('foo'));
- }
-
- /**
- * @group test-fetch-all-include
- */
- public function testFetchAllWithInclude()
- {
- $child = ParseObject::create('TestObject');
- $child->set('name', 'parse');
- $child->save();
- $obj1 = ParseObject::create('TestObject');
- $obj2 = ParseObject::create('TestObject');
- $obj3 = ParseObject::create('TestObject');
- $obj1->set('foo', 'bar');
- $obj2->set('foo', 'bar');
- $obj3->set('foo', 'bar');
- $obj1->set('child', $child);
- $obj2->set('child', $child);
- $obj3->set('child', $child);
- ParseObject::saveAll([$obj1, $obj2, $obj3]);
- $newObj1 = ParseObject::create('TestObject', $obj1->getObjectId());
- $newObj2 = ParseObject::create('TestObject', $obj2->getObjectId());
- $newObj3 = ParseObject::create('TestObject', $obj3->getObjectId());
- $results = ParseObject::fetchAllWithInclude([$newObj1, $newObj2, $newObj3], ['child']);
- $this->assertEquals(3, count($results));
- $this->assertEquals('bar', $results[0]->get('foo'));
- $this->assertEquals('bar', $results[1]->get('foo'));
- $this->assertEquals('bar', $results[2]->get('foo'));
- $this->assertEquals('parse', $results[0]->get('child')->get('name'));
- $this->assertEquals('parse', $results[1]->get('child')->get('name'));
- $this->assertEquals('parse', $results[2]->get('child')->get('name'));
- }
-
- /**
- * @group test-fetch-include
- */
- public function testFetchWithInclude()
- {
- $child = ParseObject::create('TestObject');
- $child->set('name', 'parse');
- $child->save();
- $obj1 = ParseObject::create('TestObject');
- $obj1->set('foo', 'bar');
- $obj1->set('child', $child);
- $obj1->save();
- $newObj1 = ParseObject::create('TestObject', $obj1->getObjectId());
- $newObj1->fetchWithInclude(['child']);
- $this->assertEquals('bar', $newObj1->get('foo'));
- $this->assertEquals('parse', $newObj1->get('child')->get('name'));
- }
-
- public function testNoRegisteredSubclasses()
- {
- $this->expectException(
- '\Exception',
- 'You must initialize the ParseClient using ParseClient::initialize '.
- 'and your Parse API keys before you can begin working with Objects.'
- );
- ParseUser::_unregisterSubclass();
- ParseRole::_unregisterSubclass();
- ParseInstallation::_unregisterSubclass();
- ParseSession::_unregisterSubclass();
- ParsePushStatus::_unregisterSubclass();
- ParseAudience::_unregisterSubclass();
-
- new ParseObject('TestClass');
- }
-
- public function testMissingClassName()
- {
- Helper::setUp();
-
- $this->expectException(
- '\Exception',
- 'You must specify a Parse class name or register the appropriate '.
- 'subclass when creating a new Object. Use ParseObject::create to '.
- 'create a subclass object.'
- );
-
- new ParseObjectMock();
- }
-
- public function testSettingProperties()
- {
- $obj = new ParseObject('TestClass');
- $obj->key = "value";
-
- $this->assertEquals('value', $obj->get('key'));
- }
-
- public function testSettingProtectedProperty()
- {
- $this->expectException(
- '\Exception',
- 'Protected field could not be set.'
- );
- $obj = new ParseObject('TestClass');
- $obj->updatedAt = "value";
- }
-
- public function testGettingProperties()
- {
- $obj = new ParseObject('TestClass');
- $obj->key = "value";
- $this->assertEquals('value', $obj->key);
- }
-
- public function testNullValues()
- {
- $obj = new ParseObject('TestClass');
- $obj->key1 = 'notnull';
- $obj->key2 = null;
-
- // verify key2 is present
- $this->assertNull($obj->get('key2'));
-
- $obj->save();
- $obj->fetch();
-
- // verify we still have key2 present
- $this->assertNull($obj->get('key2'));
-
- $obj->destroy();
- }
-
- public function testIsset()
- {
- $obj = new ParseObject('TestClass');
- $obj->set('key', 'value');
- $this->assertTrue(isset($obj->key), 'Failed on "value"');
-
- $obj->set('key', 9);
- $this->assertTrue(isset($obj->key), 'Failed on 9');
-
- $obj->set('key', 0);
- $this->assertTrue(isset($obj->key), 'Failed on 0');
-
- $obj->set('key', false);
- $this->assertTrue(isset($obj->key), 'Failed on false');
-
- // null should return false
- $obj->set('key', null);
- $this->assertFalse(isset($obj->key), 'Failed on null');
- }
-
- public function testGetAllKeys()
- {
- $obj = new ParseObject('TestClass');
- $obj->set('key1', 'value1');
- $obj->set('key2', 'value2');
- $obj->set('key3', 'value3');
-
- $estimatedData = $obj->getAllKeys();
-
- $this->assertEquals([
- 'key1' => 'value1',
- 'key2' => 'value2',
- 'key3' => 'value3'
- ], $estimatedData);
- }
-
- /**
- * @group dirty-children
- */
- public function testDirtyChildren()
- {
- $obj = new ParseObject('TestClass');
- $obj->set('key1', 'value1');
- $obj->save();
-
- $obj2 = new ParseObject('TestClass');
- $obj2->set('key2', 'value2');
-
- $this->assertFalse($obj->isDirty());
-
- $obj->set('innerObject', $obj2);
- $this->assertTrue($obj->isDirty());
-
- $this->assertTrue($obj2->isDirty());
-
- $obj->save();
- $this->assertFalse($obj->isDirty());
- $this->assertFalse($obj2->isDirty());
-
-
- // update the child again
- $obj2->set('key2', 'an unsaved value');
- $this->assertTrue($obj->isDirty());
- $obj->save();
-
-
- // test setting a child in child
- $obj3 = new ParseObject('TestClass');
- $obj3->set('key2', 'child of child');
- $obj2->set('innerObject', $obj3);
-
- $this->assertTrue($obj->isDirty());
-
- $obj2->save();
- $this->assertFalse($obj->isDirty());
-
- $obj3->set('key2', 'an unsaved value 2');
- $this->assertTrue($obj->isDirty());
-
-
- // test setting a child in child in child!
- $obj4 = new ParseObject('TestClass');
- $obj4->set('key2', 'child of child of child!');
- $obj3->set('innerObject', $obj4);
-
- $this->assertTrue($obj->isDirty());
-
- $obj3->save();
- $this->assertFalse($obj->isDirty());
-
- $obj4->set('key2', 'an unsaved value 3');
- $this->assertTrue($obj->isDirty());
-
- $obj->destroy();
- $obj2->destroy();
- $obj3->destroy();
- }
-
- public function testSetNullKey()
- {
- $this->expectException(
- '\Exception',
- 'key may not be null.'
- );
- $obj = new ParseObject('TestClass');
- $obj->set(null, 'value');
- }
-
- public function testSetWithArrayValue()
- {
- $this->expectException(
- '\Exception',
- 'Must use setArray() or setAssociativeArray() for this value.'
- );
- $obj = new ParseObject('TestClass');
- $obj->set('key', ['is-an-array' => 'yes']);
- }
-
- public function testSetArrayNullKey()
- {
- $this->expectException(
- '\Exception',
- 'key may not be null.'
- );
- $obj = new ParseObject('TestClass');
- $obj->setArray(null, ['is-an-array' => 'yes']);
- }
-
- public function testSetArrayWithNonArrayValue()
- {
- $this->expectException(
- '\Exception',
- 'Must use set() for non-array values.'
- );
- $obj = new ParseObject('TestClass');
- $obj->setArray('key', 'not-an-array');
- }
-
- public function testAsocSetArrayNullKey()
- {
- $this->expectException(
- '\Exception',
- 'key may not be null.'
- );
- $obj = new ParseObject('TestClass');
- $obj->setAssociativeArray(null, ['is-an-array' => 'yes']);
- }
-
- public function testAsocSetArrayWithNonArrayValue()
- {
- $this->expectException(
- '\Exception',
- 'Must use set() for non-array values.'
- );
- $obj = new ParseObject('TestClass');
- $obj->setAssociativeArray('key', 'not-an-array');
- }
-
- public function testRemovingNullKey()
- {
- $this->expectException(
- '\Exception',
- 'key may not be null.'
- );
- $obj = new ParseObject('TestClass');
- $obj->remove(null, 'value');
- }
-
- public function testRevert()
- {
- $obj = new ParseObject('TestClass');
- $obj->set('key1', 'value1');
- $obj->set('key2', 'value2');
-
- $obj->revert();
-
- $this->assertNull($obj->key1);
- $this->assertNull($obj->key2);
- }
-
- public function testEmptyFetchAll()
- {
- $this->assertEmpty(ParseObject::fetchAll([]));
- }
-
- public function testEmptyFetchAllWithInclude()
- {
- $this->assertEmpty(ParseObject::fetchAllWithInclude([], []));
- }
-
- public function testFetchAllMixedClasses()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'All objects should be of the same class.'
- );
-
- $objs = [];
- $obj = new ParseObject('TestClass1');
- $obj->save();
- $objs[] = $obj;
-
- $obj = new ParseObject('TestClass2');
- $obj->save();
- $objs[] = $obj;
-
- ParseObject::fetchAll($objs);
- }
-
- public function testFetchAllUnsavedWithoutId()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'All objects must have an ID.'
- );
-
- $objs = [];
- $objs[] = new ParseObject('TestClass');
- $objs[] = new ParseObject('TestClass');
-
- ParseObject::fetchAll($objs);
- }
-
- public function testFetchAllUnsavedWithId()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'All objects must exist on the server.'
- );
-
- $objs = [];
- $objs[] = new ParseObject('TestClass', 'objectid1');
- $objs[] = new ParseObject('TestClass', 'objectid2');
-
- ParseObject::fetchAll($objs);
- }
-
- public function testRevertingUnsavedChangesViaFetch()
- {
- $obj = new ParseObject('TestClass');
- $obj->set('montymxb', 'phpguy');
- $obj->save();
-
- $obj->set('montymxb', 'luaguy');
-
- $obj->fetch();
-
- $this->assertEquals('phpguy', $obj->montymxb);
-
- $obj->destroy();
- }
-
- /**
- * @group merge-from-server
- */
- public function testMergeFromServer()
- {
- $obj = new ParseObject('TestClass');
- $obj->set('key', 'value');
- $obj->save();
-
- $obj->_mergeAfterFetch([
- '__type' => 'className',
- 'key' => 'new value',
- 'ACL' => [
- 'u1' => [
- 'write' => false,
- 'read' => true
- ]
- ]
- ]);
-
- $this->assertNull($obj->get('__type'));
- $this->assertEquals('new value', $obj->get('key'));
-
- $obj->destroy();
- }
-
- public function testDestroyingUnsaved()
- {
- $obj = new ParseObject('TestClass');
- $obj->destroy();
- $this->assertTrue(true);
- }
-
- public function testEncodeWithArray()
- {
- $obj = new ParseObject('TestClass');
- $obj->setArray('arraykey', ['value1','value2']);
-
- $encoded = json_decode($obj->_encode(), true);
- $this->assertEquals($encoded['arraykey'], ['value1','value2']);
- }
-
- public function testToPointerWithoutId()
- {
- $this->expectException(
- '\Exception',
- "Can't serialize an unsaved ParseObject"
- );
- (new ParseObject('TestClass'))->_toPointer();
- }
-
- public function testGettingSharedACL()
- {
- $acl = new ParseACL();
- $acl->_setShared(true);
-
- $obj = new ParseObject('TestClass');
- $obj->setACL($acl);
-
- $copy = $obj->getACL();
-
- $this->assertTrue($copy !== $acl);
- $this->assertEquals($copy->_encode(), $acl->_encode());
- }
-
- public function testSubclassRegisterMissingParseClassName()
- {
- $this->expectException(
- '\Exception',
- 'Cannot register a subclass that does not have a parseClassName'
- );
- ParseObjectMock::registerSubclass();
- }
-
- public function testGetRegisteredSubclass()
- {
- $subclass = ParseObject::getRegisteredSubclass('_User');
- $this->assertEquals('Parse\ParseUser', $subclass);
-
- $subclass = ParseObject::getRegisteredSubclass('Unknown');
- $this->assertTrue($subclass instanceof ParseObject);
- $this->assertEquals('Unknown', $subclass->getClassName());
- }
-
- public function testGettingQueryForUnregisteredSubclass()
- {
- $this->expectException(
- '\Exception',
- 'Cannot create a query for an unregistered subclass.'
- );
- ParseObjectMock::query();
- }
-
- /**
- * @group encode-encodable
- */
- public function testEncodeEncodable()
- {
-
- $obj = new ParseObject('TestClass');
- // set an Encodable value
- $encodable1 = new SetOperation(['key'=>'value']);
- $obj->set('key1', $encodable1);
-
- // set an Encodable array value
- $encodable2 = new SetOperation(['anotherkey'=>'anothervalue']);
- $obj->setArray('key2', [$encodable2]);
-
- $encoded = json_decode($obj->_encode(), true);
-
- $this->assertEquals($encoded['key1'], $encodable1->_encode());
- $this->assertEquals($encoded['key2'][0], $encodable2->_encode());
- }
-
- /**
- * Returns an object with one of every type set
- *
- * @return ParseObject
- */
- private function getTestObject()
- {
- $obj = new ParseObject('TestClass');
-
- // setup IVs
- $stringVal = 'this-is-foo';
- $numberVal = 32.23;
-
- // use a 'clean' date value
- $dateVal = new \DateTime();
- $dateVal = ParseClient::_encode($dateVal, false);
- $dateVal = ParseClient::_decode($dateVal);
-
- $boolVal = false;
- $arrayVal = ['bar1','bar2'];
- $assocVal = ['foo1' => 'bar1'];
- $polygon = new ParsePolygon([[0,0],[0,1],[1,1]]);
- $geoPoint = new ParseGeoPoint(1, 0);
-
- $child = new ParseObject('TestClass');
- $child->save();
- $child = ParseObject::create('TestClass', $child->getObjectId());
-
- $file = ParseFile::createFromData('a file', 'test.txt', 'text/plain');
- $file->save();
-
- $acl = new ParseACL();
- $acl->setPublicReadAccess(true);
- $acl->setPublicWriteAccess(true);
- $obj->setACL($acl);
-
- // set IVs
- $obj->set('foo', $stringVal);
- $obj->set('number', $numberVal);
- $obj->set('date', $dateVal);
- $obj->set('bool', $boolVal);
- $obj->setArray('array', $arrayVal);
- $obj->setAssociativeArray('assoc_array', $assocVal);
- $obj->set('pointer', $child);
- $obj->set('file', $file);
- $obj->set('polygon', $polygon);
- $obj->set('geopoint', $geoPoint);
- $relation = $obj->getRelation('relation', 'TestClass');
- $relation->add([$child]);
-
- return $obj;
- }
-
- /**
- * Runs tests on encoding/decoding an unsaved ParseObject
- * @group decode-test
- */
- public function testDecodeOnObject()
- {
- $obj = $this->getTestObject();
-
- $encoded = $obj->encode();
- $decoded = ParseObject::decode($encoded);
-
- // pull out file to compare separately
- $decodedFile = $decoded->get('file');
- $origFile = $obj->get('file');
- $decoded->delete('file');
- $obj->delete('file');
-
- $this->assertEquals($obj, $decoded, 'Objects did not match');
-
- // check files separately
- $this->assertEquals($origFile->_encode(), $decodedFile->_encode(), 'Files did not match');
-
- // check that we can still revert these changes
- $this->assertTrue($obj->has('foo'));
- $obj->revert();
- $this->assertFalse($obj->has('foo'));
- }
-
- /**
- * Runs tests on encoding/decoding a ParseObject that has been saved
- *
- * @group decode-test
- */
- public function testDecodeOnSavedObject()
- {
- // setup IVs
- $stringVal = 'this-is-foo';
- $numberVal = 32.23;
- $boolVal = false;
- $arrayVal = ['bar1','bar2'];
- $assocVal = ['foo1' => 'bar1'];
- $polygon = new ParsePolygon([[0,0],[0,1],[1,1]]);
- $geoPoint = new ParseGeoPoint(1, 0);
-
- $child = new ParseObject('TestClass');
- $child->save();
- $child = ParseObject::create('TestClass', $child->getObjectId());
-
- $obj = $this->getTestObject();
-
- // change to a pointer we can check against
- $obj->set('pointer', $child);
- $relation = $obj->getRelation('relation', 'TestClass');
- $relation->remove([$child]);
-
- // not testing file comparisons, as the the content type differs slightly
- // this is tested above in 'testDecodeOnObject'
- $obj->delete('file');
-
- $obj->save();
-
- // add an unsaved modifications
- $obj->set('unsaved', 'not a saved value');
-
- $encoded = $obj->encode();
-
- $decoded = ParseObject::decode($encoded);
-
- $this->assertNotNull($decoded->getCreatedAt(), 'Created at was not set');
- $this->assertNotNull($decoded->getUpdatedAt(), 'Updated at was not set');
-
- //$this->assertEquals($encoded, $decoded->encode(), 'Encoded strings did not match');
- $this->assertEquals($obj, $decoded, 'Decoded object did not match original');
-
- // verify IVs
- $this->assertEquals($obj->getObjectId(), $decoded->getObjectId(), 'Object ids did not match');
- $this->assertEquals($obj->getCreatedAt(), $decoded->getCreatedAt(), 'Created at did not match');
- $this->assertEquals($obj->getUpdatedAt(), $decoded->getUpdatedAt(), 'Updated at did not match');
- $this->assertEquals($stringVal, $decoded->get('foo'), 'Strings did not match');
- $this->assertEquals($numberVal, $decoded->get('number'), 'Numbers did not match');
- $this->assertEquals(
- ParseClient::getProperDateFormat($obj->get('date')),
- ParseClient::getProperDateFormat($decoded->get('date')),
- 'Dates did not match'
- );
- $this->assertEquals($boolVal, $decoded->get('bool'), 'Booleans did not match');
- $this->assertEquals($arrayVal, $decoded->get('array'), 'Arrays did not match');
- $this->assertEquals($assocVal, $decoded->get('assoc_array'), 'Associative arrays did not match');
- $pointee = $decoded->get('pointer');
- $pointee->fetch();
- $child->fetch();
- $this->assertEquals($child->_encode(), $pointee->_encode(), 'Pointers did not match');
- $this->assertEquals($polygon, $decoded->get('polygon'), 'Polygons did not match');
- $this->assertEquals($geoPoint, $decoded->get('geopoint'), 'Geopoints did not match');
-
- // verify unsaved key/value is present as well
- $this->assertEquals('not a saved value', $decoded->get('unsaved'));
-
- // verify relation
- $relation = $decoded->getRelation('relation', 'TestClass');
- $query = $relation->getQuery();
- $found = $query->find();
- $this->assertEquals(1, count($found));
-
- // attempt to add another object to this relation
- $child2 = new ParseObject('TestClass');
- $child2->save();
- $relation->add([$child2]);
- $decoded->save();
- $this->assertEquals(2, $query->count());
-
- // attempt to remove objects from this relation
- $relation->remove([$found[0], $child2]);
- $decoded->save();
- $this->assertEquals(0, $query->count());
-
- // cleanup
- ParseObject::destroyAll([$decoded,$child]);
- }
-
- /**
- * Tests decoding with various ops
- *
- * @group decode-test
- */
- public function testDecodeWithOps()
- {
- $obj = new ParseObject('TestClass');
- $obj->set('number', 5);
- $obj->setArray('array', ['apples']);
- $obj->setArray('uniquearray', ['apples']);
- $obj->setArray('removearray', ['apples']);
- $obj->save();
-
- // add op
- $obj->add('array', ['bananas']);
-
- // unique op
- $obj->addUnique('uniquearray', ['unique-value']);
-
- // remove op
- $obj->remove('removearray', 'apples');
-
- // delete op
- $obj->delete('foo');
-
- // increment op
- $obj->increment('number', 5);
-
- // remove relation op
- $child = new ParseObject('TestClass');
- $child->save();
- $child = ParseObject::create('TestClass', $child->getObjectId());
-
- $child2 = new ParseObject('TestClass');
- $child2->save();
- $child2 = ParseObject::create('TestClass', $child2->getObjectId());
-
- $relation = $obj->getRelation('relation3', 'TestClass');
- $relation->add([$child]);
- $relation->remove([$child2]);
-
- $relation = $obj->getRelation('relation4', 'TestClass');
- $relation->remove([$child]);
-
- $encoded = $obj->encode();
-
- $decoded = ParseObject::decode($encoded);
-
- $this->assertEquals($obj, $decoded, 'Decoded object did not match');
- }
-
- /**
- * Tests decoding with an unrecognized op
- *
- * @group decode-unrecognized-test
- */
- public function testUnrecognizedOp()
- {
- $this->expectException(
- '\Parse\ParseException',
- "Unrecognized op 'Unrecognized' found during decode."
- );
-
- $obj = new ParseObject('TestClass');
- $encoded = $obj->encode();
- $encoded = json_decode($encoded, true);
- $encoded['operationSet'][] = [
- '__op' => 'Unrecognized'
- ];
- ParseObject::decode($encoded);
- }
-
- /**
- * Tests if object exists
- *
- * @group object-exists
- */
- public function testObjectExists()
- {
- $obj = new ParseObject('TestClass');
- $this->assertEquals($obj->exists(), false);
- $obj->save();
- $this->assertEquals($obj->exists(), true);
- $obj->destroy();
- $this->assertEquals($obj->exists(), false);
- }
-}
diff --git a/tests/Parse/ParsePolygonTest.php b/tests/Parse/ParsePolygonTest.php
deleted file mode 100644
index bc8583ed..00000000
--- a/tests/Parse/ParsePolygonTest.php
+++ /dev/null
@@ -1,177 +0,0 @@
-set('polygon', $polygon);
- $obj->save();
-
- // Query by open points
- $query = new ParseQuery('TestObject');
- $query->equalTo('polygon', $polygon);
-
- $results = $query->find();
- $actualPolygon = $results[0]->get('polygon');
-
- $this->assertEquals(1, count($results));
- $this->assertEquals($closedPoints, $actualPolygon->getCoordinates());
-
- // Query by closed points
- $polygon = new ParsePolygon($closedPoints);
- $query = new ParseQuery('TestObject');
- $query->equalTo('polygon', $polygon);
-
- $results = $query->find();
- $actualPolygon = $results[0]->get('polygon');
-
- $this->assertEquals(1, count($results));
- $this->assertEquals($closedPoints, $actualPolygon->getCoordinates());
- }
-
- public function testPolygonWithGeoPoints()
- {
- $p1 = new ParseGeoPoint(0, 0);
- $p2 = new ParseGeoPoint(0, 1);
- $p3 = new ParseGeoPoint(1, 1);
- $p4 = new ParseGeoPoint(1, 0);
-
- $points = [$p1, $p2, $p3, $p4];
- $closedPoints = [[0,0],[0,1],[1,1],[1,0],[0,0]];
- $polygon = new ParsePolygon($points);
-
- $obj = ParseObject::create('TestObject');
- $obj->set('polygon', $polygon);
- $obj->save();
-
- // Query by open points
- $query = new ParseQuery('TestObject');
- $query->equalTo('polygon', $polygon);
-
- $results = $query->find();
- $actualPolygon = $results[0]->get('polygon');
-
- $this->assertEquals(1, count($results));
- $this->assertEquals($closedPoints, $actualPolygon->getCoordinates());
-
- // Query by closed points
- $polygon = new ParsePolygon($closedPoints);
- $query = new ParseQuery('TestObject');
- $query->equalTo('polygon', $polygon);
-
- $results = $query->find();
- $actualPolygon = $results[0]->get('polygon');
-
- $this->assertEquals(1, count($results));
- $this->assertEquals($closedPoints, $actualPolygon->getCoordinates());
- }
-
- public function testPolygonMinimum()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Polygon must have at least 3 GeoPoints or Points'
- );
- $polygon = new ParsePolygon([[0,0]]);
- $obj = ParseObject::create('TestObject');
- $obj->set('polygon', $polygon);
- $obj->save();
- }
-
- public function testPolygonInvalidInput()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Coordinates must be an Array'
- );
- $polygon = new ParsePolygon(1234);
- $obj = ParseObject::create('TestObject');
- $obj->set('polygon', $polygon);
- $obj->save();
- }
-
- public function testPolygonInvalidArray()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Coordinates must be an Array of GeoPoints or Points'
- );
- $polygon = new ParsePolygon([['str1'],['str2'],['str3']]);
- $obj = ParseObject::create('TestObject');
- $obj->set('polygon', $polygon);
- $obj->save();
- }
-
- public function testPolygonContains()
- {
- $points1 = [[0,0],[0,1],[1,1],[1,0]];
- $points2 = [[0,0],[0,2],[2,2],[2,0]];
- $points3 = [[10,10],[10,15],[15,15],[15,10],[10,10]];
-
- $polygon1 = new ParsePolygon($points1);
- $polygon2 = new ParsePolygon($points2);
- $polygon3 = new ParsePolygon($points3);
-
- $obj1 = ParseObject::create('TestObject');
- $obj2 = ParseObject::create('TestObject');
- $obj3 = ParseObject::create('TestObject');
-
- $obj1->set('polygon', $polygon1);
- $obj2->set('polygon', $polygon2);
- $obj3->set('polygon', $polygon3);
-
- ParseObject::saveAll([$obj1, $obj2, $obj3]);
-
- $point = new ParseGeoPoint(0.5, 0.5);
- $query = new ParseQuery('TestObject');
- $query->polygonContains('polygon', $point);
- $results = $query->find();
- $this->assertEquals(2, count($results));
- }
-
- public function testPolygonContainsInvalidInput()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'bad $geoIntersect value; $point should be GeoPoint'
- );
- $points = [[0,0],[0,1],[1,1],[1,0]];
- $polygon = new ParsePolygon($points);
- $obj = ParseObject::create('TestObject');
- $obj->set('polygon', $polygon);
- $obj->save();
-
- $query = new ParseQuery('TestObject');
- $query->polygonContains('polygon', 1234);
- $query->find();
- }
-}
diff --git a/tests/Parse/ParsePushTest.php b/tests/Parse/ParsePushTest.php
deleted file mode 100644
index 2280a620..00000000
--- a/tests/Parse/ParsePushTest.php
+++ /dev/null
@@ -1,312 +0,0 @@
-expectException('\Parse\ParseException');
-
- ParsePush::send(
- [
- 'channels' => [''],
- 'data' => ['alert' => 'sample message'],
- ]
- );
- }
-
- public function testBasicPush()
- {
- $response = ParsePush::send(
- [
- 'channels' => [''],
- 'data' => ['alert' => 'sample message'],
- ],
- true
- );
- $this->assertEquals($response['result'], 1);
- }
-
- /**
- * @group parse-push
- */
- public function testMissingWhereAndChannels()
- {
- $this->expectException(
- '\Parse\ParseException',
- "Sending a push requires either \"channels\" or a \"where\" query."
- );
-
- ParsePush::send([
- 'data' => [
- 'alert' => 'are we missing something?'
- ]
- ], true);
- }
-
- /**
- * @group parse-push
- */
- public function testWhereAndChannels()
- {
- $this->expectException(
- '\Parse\ParseException',
- "Channels and query can not be set at the same time."
- );
-
- $query = ParseInstallation::query();
- $query->equalTo('key', 'value');
-
- ParsePush::send([
- 'data' => [
- 'alert' => 'too many limits'
- ],
- 'channels' => [
- 'PushFans',
- 'PHPFans'
- ],
- 'where' => $query
- ], true);
- }
-
- public function testPushToQuery()
- {
- $query = ParseInstallation::query();
- $query->equalTo('key', 'value');
- $response = ParsePush::send(
- [
- 'data' => ['alert' => 'iPhone 5 is out!'],
- 'where' => $query,
- ],
- true
- );
- $this->assertEquals($response['result'], 1);
- }
-
- public function testPushToQueryWithoutWhere()
- {
- $query = ParseInstallation::query();
- $response = ParsePush::send(
- [
- 'data' => ['alert' => 'Done without conditions!'],
- 'where' => $query,
- ],
- true
- );
- $this->assertEquals($response['result'], 1);
- }
-
- public function testNonQueryWhere()
- {
- $this->expectException(
- '\Exception',
- 'Where parameter for Parse Push must be of type ParseQuery'
- );
- ParsePush::send(
- [
- 'data' => ['alert' => 'Will this really work?'],
- 'where' => 'not-a-query',
- ],
- true
- );
- }
-
- public function testPushDates()
- {
- $response = ParsePush::send(
- [
- 'data' => ['alert' => 'iPhone 5 is out!'],
- 'push_time' => new \DateTime(),
- 'expiration_time' => new \DateTime(),
- 'channels' => [],
- ],
- true
- );
- $this->assertEquals($response['result'], 1);
- }
-
- public function testExpirationTimeAndIntervalSet()
- {
- $this->expectException(
- '\Exception',
- 'Both expiration_time and expiration_interval can\'t be set.'
- );
- ParsePush::send(
- [
- 'data' => ['alert' => 'iPhone 5 is out!'],
- 'push_time' => new \DateTime(),
- 'expiration_time' => new \DateTime(),
- 'expiration_interval' => 90,
- 'channels' => [],
- ],
- true
- );
- }
-
- /**
- * @group push-status
- */
- public function testPushHasHeaders()
- {
- $response = ParsePush::send(
- [
- 'channels' => [''],
- 'data' => ['alert' => 'sample message'],
- ],
- true
- );
-
- // verify headers are present
- $this->assertArrayHasKey('_headers', $response);
- }
-
- /**
- * @group push-status
- */
- public function testGettingPushStatus()
- {
- $payload = [
- 'alert' => 'sample message'
- ];
-
- $response = ParsePush::send(
- [
- 'channels' => [''],
- 'data' => $payload,
- ],
- true
- );
-
- // verify push status id is present
- $this->assertTrue(isset($response['_headers']['X-Parse-Push-Status-Id']));
-
- // verify ParsePush indicates there is a push status id as well
- $this->assertTrue(ParsePush::hasStatus($response));
-
- // get the _PushStatus object
- $pushStatus = ParsePush::getStatus($response);
-
- $this->assertNotNull($pushStatus);
-
- // verify values
- $this->assertTrue(
- $pushStatus->getPushTime() instanceof \DateTime,
- 'Push time was not as expected'
- );
-
- $query = $pushStatus->getPushQuery();
- $options = $query->_getOptions();
- $this->assertEquals([
- 'where' => [
- 'channels' => [
- '$in' => [
- ''
- ]
- ]
- ]
- ], $options);
-
- // verify payload
- $this->assertEquals(
- $payload,
- $pushStatus->getPushPayload(),
- 'Payload did not match'
- );
-
- // verify source
- $this->assertEquals(
- "rest",
- $pushStatus->getPushSource(),
- 'Source was not rest'
- );
-
- // verify not scheduled
- $this->assertFalse($pushStatus->isScheduled());
-
- // verify not pending
- while ($pushStatus->isPending()) {
- sleep(1);
- $pushStatus = ParsePush::getStatus($response);
- }
- // verify 'running', or 'failed'/'succeeded' on later versions of parse-server
- // both are acceptable
- $this->assertTrue(
- $pushStatus->isRunning() || $pushStatus->hasFailed() || $pushStatus->hasSucceeded(),
- 'Push was not running/succeeded/failed, was '.$pushStatus->getPushStatus()
- );
-
- // verify # sent & failed
- $this->assertEquals(
- 0,
- $pushStatus->getPushesSent(),
- 'More than 0 pushes sent'
- );
- $this->assertEquals(
- 0,
- $pushStatus->getPushesFailed(),
- 'More than 0 pushes failed'
- );
-
- $this->assertNotNull(
- $pushStatus->getPushHash(),
- 'Hash not present'
- );
-
- if ($pushStatus->hasFailed()) {
- // verify we have not succeeded
- $this->assertFalse($pushStatus->hasSucceeded());
- } else {
- // verify we have succeeded (later servers)
- $this->assertTrue($pushStatus->hasSucceeded());
- }
- }
-
- /**
- * @group push-status
- */
- public function testGettingNonExistentPushStatus()
- {
- $pushStatus = ParsePushStatus::getFromId('not-a-real-id');
- $this->assertNull($pushStatus);
- }
-
- public function testDoesNotHaveStatus()
- {
- $this->assertFalse(ParsePush::hasStatus([]));
- }
-
- public function testGetStatus()
- {
- // test no headers
- $this->assertNull(ParsePush::getStatus([]));
-
- // test no push id
- $this->assertNull(ParsePush::getStatus([
- '_headers' => []
- ]));
-
- // test bad push status id
- $this->assertNull(ParsePush::getStatus([
- '_headers' => [
- 'X-Parse-Push-Status-Id' => 'not-a-real-id'
- ]
- ]));
- }
-}
diff --git a/tests/Parse/ParseQueryAggregateTest.php b/tests/Parse/ParseQueryAggregateTest.php
deleted file mode 100644
index 34af5165..00000000
--- a/tests/Parse/ParseQueryAggregateTest.php
+++ /dev/null
@@ -1,277 +0,0 @@
-set('score', 10);
- $obj2->set('score', 10);
- $obj3->set('score', 10);
- $obj4->set('score', 20);
-
- $obj1->set('name', 'foo');
- $obj2->set('name', 'foo');
- $obj3->set('name', 'bar');
- $obj4->set('name', 'dpl');
-
- $objects = [$obj1, $obj2, $obj3, $obj4];
- ParseObject::saveAll($objects);
- }
-
- public function testDistinctQuery()
- {
- $this->loadObjects();
- $query = new ParseQuery('TestObject');
- $results = $query->distinct('score');
-
- $this->assertEquals(2, count($results));
- $this->assertEquals(in_array(10, $results), true);
- $this->assertEquals(in_array(20, $results), true);
- }
-
- public function testDistinctWhereQuery()
- {
- $this->loadObjects();
- $query = new ParseQuery('TestObject');
- $query->equalTo('name', 'foo');
- $results = $query->distinct('score');
-
- $this->assertEquals(1, count($results));
- $this->assertEquals($results[0], 10);
- }
-
- public function testDistinctClassNotExistQuery()
- {
- $this->loadObjects();
- $query = new ParseQuery('UnknownClass');
- $results = $query->distinct('score');
-
- $this->assertEquals(0, count($results));
- }
-
- public function testDistinctFieldNotExistQuery()
- {
- $this->loadObjects();
- $query = new ParseQuery('TestObject');
- $results = $query->distinct('unknown');
-
- $this->assertEquals(0, count($results));
- }
-
- public function testDistinctOnUsers()
- {
- Helper::clearClass(ParseUser::$parseClassName);
- $user1 = new ParseUser();
- $user1->setUsername('foo');
- $user1->setPassword('password');
- $user1->set('score', 10);
- $user1->signUp();
-
- $user2 = new ParseUser();
- $user2->setUsername('bar');
- $user2->setPassword('password');
- $user2->set('score', 10);
- $user2->signUp();
-
- $user3 = new ParseUser();
- $user3->setUsername('hello');
- $user3->setPassword('password');
- $user3->set('score', 20);
- $user3->signUp();
-
- $query = ParseUser::query();
- $results = $query->distinct('score');
-
- $this->assertEquals(2, count($results));
- $this->assertEquals($results[0], 10);
- $this->assertEquals($results[1], 20);
- }
-
- public function testAggregateGroupQuery()
- {
- $pipeline = [
- '$group' => [
- '_id' => '$name'
- ]
- ];
- $this->loadObjects();
- $query = new ParseQuery('TestObject');
- $results = $query->aggregate($pipeline);
-
- $this->assertEquals(3, count($results));
- }
-
- public function testAggregateGroupClassNotExistQuery()
- {
- $pipeline = [
- '$group' => [
- '_id' => '$name'
- ]
- ];
- $this->loadObjects();
- $query = new ParseQuery('UnknownClass');
- $results = $query->aggregate($pipeline);
-
- $this->assertEquals(0, count($results));
- }
-
- public function testAggregateGroupFieldNotExistQuery()
- {
- $pipeline = [
- '$group' => [
- '_id' => '$unknown'
- ]
- ];
- $this->loadObjects();
- $query = new ParseQuery('UnknownClass');
- $results = $query->aggregate($pipeline);
-
- $this->assertEquals(0, count($results));
- }
-
- public function testAggregateMatchQuery()
- {
- $pipeline = [
- '$match' => [
- 'score' => [ '$gt' => 15 ]
- ]
- ];
- $this->loadObjects();
- $query = new ParseQuery('TestObject');
- $results = $query->aggregate($pipeline);
-
- $this->assertEquals(1, count($results));
- $this->assertEquals(20, $results[0]['score']);
- }
-
- public function testAggregateProjectQuery()
- {
- $pipeline = [
- '$project' => [
- 'name' => 1
- ]
- ];
- $this->loadObjects();
- $query = new ParseQuery('TestObject');
- $results = $query->aggregate($pipeline);
-
- foreach ($results as $result) {
- $this->assertEquals(array_key_exists('name', $result), true);
- $this->assertEquals(array_key_exists('objectId', $result), true);
- $this->assertEquals(array_key_exists('score', $result), false);
- }
- }
-
- public function testAggregatePipelineInvalid()
- {
- $this->expectException(
- 'Parse\ParseException',
- "Invalid aggregate state 'unknown'",
- 102
- );
- $pipeline = [
- 'unknown' => []
- ];
- $this->loadObjects();
- $query = new ParseQuery('TestObject');
- $results = $query->aggregate($pipeline);
- $this->assertEquals(0, count($results));
- }
-
- public function testAggregateGroupInvalid()
- {
- $pipeline = [
- 'group' => [
- '_id' => '$name'
- ]
- ];
- $this->loadObjects();
- $query = new ParseQuery('TestObject');
- $this->expectException(
- 'Parse\ParseException',
- 'Invalid parameter for query: group. Please use objectId instead of _id',
- 102
- );
- $results = $query->aggregate($pipeline);
- }
-
- public function testAggregateGroupObjectIdRequired()
- {
- $pipeline = [
- 'group' => []
- ];
- $this->loadObjects();
- $query = new ParseQuery('TestObject');
- $this->expectException(
- 'Parse\ParseException',
- 'Invalid parameter for query: group. objectId is required',
- 102
- );
- $results = $query->aggregate($pipeline);
- }
-
- public function testAggregateOnUsers()
- {
- Helper::clearClass(ParseUser::$parseClassName);
- $user1 = new ParseUser();
- $user1->setUsername('foo');
- $user1->setPassword('password');
- $user1->set('score', 10);
- $user1->signUp();
-
- $user2 = new ParseUser();
- $user2->setUsername('bar');
- $user2->setPassword('password');
- $user2->set('score', 10);
- $user2->signUp();
-
- $user3 = new ParseUser();
- $user3->setUsername('hello');
- $user3->setPassword('password');
- $user3->set('score', 20);
- $user3->signUp();
-
- $pipeline = [
- '$match' => [
- 'score' => [ '$gt' => 15 ]
- ]
- ];
-
- $query = ParseUser::query();
- $results = $query->aggregate($pipeline);
-
- $this->assertEquals(1, count($results));
- $this->assertEquals($results[0]['score'], 20);
- }
-}
diff --git a/tests/Parse/ParseQueryFullTextTest.php b/tests/Parse/ParseQueryFullTextTest.php
deleted file mode 100644
index fc9f7a7d..00000000
--- a/tests/Parse/ParseQueryFullTextTest.php
+++ /dev/null
@@ -1,82 +0,0 @@
-set('subject', $subjects[$i]);
- $allObjects[] = $obj;
- }
- ParseObject::saveAll($allObjects);
- }
-
- public function testFullTextQuery()
- {
- $this->provideTestObjects();
- $query = new ParseQuery('TestObject');
- $query->fullText('subject', 'coffee');
- $results = $query->find();
- $this->assertEquals(
- 3,
- count($results),
- 'Did not return correct objects.'
- );
- }
-
- public function testFullTextSort()
- {
- $this->provideTestObjects();
- $query = new ParseQuery('TestObject');
- $query->fullText('subject', 'coffee');
- $query->ascending('$score');
- $query->select('$score');
- $results = $query->find();
- $this->assertEquals(
- 3,
- count($results),
- 'Did not return correct number of objects.'
- );
- $this->assertEquals(1, $results[0]->get('score'));
- $this->assertEquals(0.75, $results[1]->get('score'));
- $this->assertEquals(0.75, $results[2]->get('score'));
- }
-}
diff --git a/tests/Parse/ParseQueryRelativeTimeTest.php b/tests/Parse/ParseQueryRelativeTimeTest.php
deleted file mode 100644
index 1198e0ae..00000000
--- a/tests/Parse/ParseQueryRelativeTimeTest.php
+++ /dev/null
@@ -1,505 +0,0 @@
-save();
-
- // use server date
- $baselineDate = $obj->getCreatedAt()->format('m/d/Y H:i:s');
-
- // 4 days ago
- $date = \DateTime::createFromFormat('m/d/Y H:i:s', $baselineDate);
- $date->sub((new \DateInterval('P4D')));
- $obj->set('date', $date);
- $obj->set('name', 'obj1');
- $obj->save();
-
- // 4 hours ago
- $obj = new ParseObject('TestObject');
- $date = \DateTime::createFromFormat('m/d/Y H:i:s', $baselineDate);
- $date->sub((new \DateInterval('PT4H')));
- $obj->set('date', $date);
- $obj->set('name', 'obj2');
- $obj->save();
-
- // 4 hours from now
- $obj = new ParseObject('TestObject');
- $date = \DateTime::createFromFormat('m/d/Y H:i:s', $baselineDate);
- $date->add((new \DateInterval('PT4H')));
- $obj->set('date', $date);
- $obj->set('name', 'obj3');
- $obj->save();
-
- // 4 days from now
- $obj = new ParseObject('TestObject');
- $date = \DateTime::createFromFormat('m/d/Y H:i:s', $baselineDate);
- $date->add((new \DateInterval('P4D')));
- $obj->set('date', $date);
- $obj->set('name', 'obj4');
- $obj->save();
- }
-
- public function provideExtendedDateTestObjects()
- {
- $obj = new ParseObject('TestObject');
- $obj->save();
-
- // use server date
- $baselineDate = $obj->getCreatedAt()->format('m/d/Y H:i:s');
-
- // 1 year 20 days ago
- $date = \DateTime::createFromFormat('m/d/Y H:i:s', $baselineDate);
- $date->sub((new \DateInterval('P01Y20D')));
- $obj->set('date', $date);
- $obj->set('name', 'obj1');
- $obj->save();
-
- // 1 year 8 days ago
- $obj = new ParseObject('TestObject');
- $date = \DateTime::createFromFormat('m/d/Y H:i:s', $baselineDate);
- $date->sub((new \DateInterval('P01Y8D')));
- $obj->set('date', $date);
- $obj->set('name', 'obj2');
- $obj->save();
-
- // 1 year 8 days from now
- $obj = new ParseObject('TestObject');
- $date = \DateTime::createFromFormat('m/d/Y H:i:s', $baselineDate);
- $date->add((new \DateInterval('P01Y8D')));
- $obj->set('date', $date);
- $obj->set('name', 'obj3');
- $obj->save();
-
- // 1 year 20 days from now
- $obj = new ParseObject('TestObject');
- $date = \DateTime::createFromFormat('m/d/Y H:i:s', $baselineDate);
- $date->add((new \DateInterval('P01Y20D')));
- $obj->set('date', $date);
- $obj->set('name', 'obj4');
- $obj->save();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testGreaterThanRelativeTime()
- {
- $this->provideDateTestObjects();
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', '5 days ago');
- $this->assertEquals(4, $query->count());
-
- $query->equalTo('name', 'obj1');
- $this->assertEquals(1, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', '1 day ago');
- $this->assertEquals(3, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 1 hour');
- $this->assertEquals(2, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 1 day');
- $this->assertEquals(1, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 5 days');
- $this->assertEquals(0, $query->count());
- }
-
- /**
- * @group relative-time-queries
- */
- public function testLessThanRelativeTime()
- {
- $this->provideDateTestObjects();
-
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', '5 days ago');
- $this->assertEquals(0, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', '1 day ago');
- $this->assertEquals(1, $query->count());
-
- $query->equalTo('name', 'obj1');
- $this->assertEquals(1, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', 'in 1 hour');
- $this->assertEquals(2, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', 'in 1 day');
- $this->assertEquals(3, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', 'in 5 days');
- $this->assertEquals(4, $query->count());
- }
-
- /**
- * @group relative-time-queries
- */
- public function testGreaterThanEqualToRelativeTime()
- {
- $this->provideDateTestObjects();
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanOrEqualToRelativeTime('date', '5 days ago');
- $this->assertEquals(4, $query->count());
-
- $query->equalTo('name', 'obj1');
- $this->assertEquals(1, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanOrEqualToRelativeTime('date', '1 day ago');
- $this->assertEquals(3, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanOrEqualToRelativeTime('date', 'in 1 hour');
- $this->assertEquals(2, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanOrEqualToRelativeTime('date', 'in 1 day');
- $this->assertEquals(1, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanOrEqualToRelativeTime('date', 'in 5 days');
- $this->assertEquals(0, $query->count());
- }
-
- /**
- * @group relative-time-queries
- */
- public function testLessThanEqualToRelativeTime()
- {
- $this->provideDateTestObjects();
-
- $query = new ParseQuery('TestObject');
- $query->lessThanOrEqualToRelativeTime('date', '5 days ago');
- $this->assertEquals(0, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanOrEqualToRelativeTime('date', '1 day ago');
- $this->assertEquals(1, $query->count());
-
- $query->equalTo('name', 'obj1');
- $this->assertEquals(1, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanOrEqualToRelativeTime('date', 'in 1 hour');
- $this->assertEquals(2, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanOrEqualToRelativeTime('date', 'in 1 day');
- $this->assertEquals(3, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanOrEqualToRelativeTime('date', 'in 5 days');
- $this->assertEquals(4, $query->count());
- }
-
- /**
- * @group relative-time-queries
- */
- public function testRelativeTimeUnits()
- {
- $this->provideDateTestObjects();
-
- // with full units
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 3 days 2 hours 15 minutes 30 seconds');
- $this->assertEquals(1, $query->count());
-
- // shorthand units
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 3 d 2 hrs 15 mins 30 secs');
- $this->assertEquals(1, $query->count());
-
- // singular units
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 3 days 1 hour 1 minute 1 second');
- $this->assertEquals(1, $query->count());
-
- // singular shorthand units
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 3 d 1 hr 1 min 1 sec');
- $this->assertEquals(1, $query->count());
- }
-
- /**
- * @group relative-time-queries
- */
- public function testLongRelativeTime()
- {
- $this->provideExtendedDateTestObjects();
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 1 year 2 weeks');
- $this->assertEquals(1, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', '1 yr 2 wks ago');
- $this->assertEquals(1, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', '1 year 2 weeks ago');
- $this->assertEquals(1, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 1 year 3 weeks');
- $this->assertEquals(0, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', '1 year 4 weeks ago');
- $this->assertEquals(4, $query->count());
- }
-
- /**
- * @group relative-time-queries
- */
- public function testNowRelativeTime()
- {
- $this->provideDateTestObjects();
-
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'now');
- $this->assertEquals(2, $query->count());
-
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', 'now');
- $this->assertEquals(2, $query->count());
- }
-
- /**
- * @group relative-time-queries
- */
- public function testBetweenRelativeTimes()
- {
- $this->provideDateTestObjects();
-
- // test within bounds
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', '1 day ago');
- $query->lessThanRelativeTime('date', 'in 1 day');
- $this->assertEquals(2, $query->count());
-
- // try getting 2 weeks ago up until NOW
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', '14 days ago');
- $query->lessThanOrEqualToRelativeTime('date', 'in 0 day');
- $this->assertEquals(2, $query->count());
- }
-
- /**
- * @group relative-time-queries
- */
- public function testBadRelativeTimeString()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'bad $relativeTime ($lt) value. Time should either start with \'in\' or end with \'ago\''
- );
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', 'asdf');
- $query->count();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testRelativeTimeStringDanglingNumber()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'bad $relativeTime ($lt) value. Invalid time string. Dangling unit or number.'
- );
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', 'in 4 days 13');
- $query->count();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testRelativeTimeStringDanglingUnit()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'bad $relativeTime ($gt) value. Invalid time string. Dangling unit or number.'
- );
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 4 days minutes');
- $query->count();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testRelativeTimeCannotUseBothInAndAgo()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'bad $relativeTime ($lt) value. Time cannot have both \'in\' and \'ago\''
- );
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', 'in 4 days ago');
- $query->count();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testRelativeTimeNotOnDateField()
- {
- $this->expectException(
- 'Parse\ParseException',
- '$relativeTime can only be used with Date field'
- );
-
- $obj = new ParseObject('TestObject');
- $obj->set('not_a_date', 'string');
- $obj->save();
-
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('not_a_date', 'in 4 days');
- $query->count();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testRelativeTimeOnNonExistantField()
- {
- $this->provideDateTestObjects();
-
- // should NOT throw an exception
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('not_an_actual_field', '4 days ago');
- // nothing should match
- $this->assertEquals(0, $query->count());
- }
-
- /**
- * @group relative-time-queries
- */
- public function testRelativeTimeEqualTo()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'bad constraint: $relativeTime'
- );
-
-
- $query = new ParseQuery('TestObject');
- $query->equalTo('date', [
- '$relativeTime' => '4 days ago'
- ]);
- $query->count();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testRelativeTimeNotEqualTo()
- {
- $this->expectException(
- 'Parse\ParseException',
- '$relativeTime can only be used with the $lt, $lte, $gt, and $gte operators'
- );
-
- $query = new ParseQuery('TestObject');
- $query->notEqualTo('date', [
- '$relativeTime' => '4 days ago'
- ]);
- $query->count();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testRelativeTimeMissingAgoAndIn()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'bad $relativeTime ($lt) value. Time should either start with \'in\' or end with \'ago\''
- );
- $query = new ParseQuery('TestObject');
- $query->lessThanRelativeTime('date', '32 hrs');
- $query->count();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testEmptyRelativeTime()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'bad atom: {"$relativeTime":""}'
- );
- $query = new ParseQuery('TestObject');
- $query->lessThanOrEqualToRelativeTime('date', '');
- $query->count();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testFractionalRelativeTime()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'bad $relativeTime ($gte) value. \'2.5\' is not an integer'
- );
- $query = new ParseQuery('TestObject');
- $query->greaterThanOrEqualToRelativeTime('date', 'in 2.5 days');
- $query->count();
- }
-
- /**
- * @group relative-time-queries
- */
- public function testBadRelativeTimeUnit()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'bad $relativeTime ($gt) value. Invalid interval: \'zorks\''
- );
- $query = new ParseQuery('TestObject');
- $query->greaterThanRelativeTime('date', 'in 8 zorks');
- $query->count();
- }
-}
diff --git a/tests/Parse/ParseQueryTest.php b/tests/Parse/ParseQueryTest.php
deleted file mode 100644
index ae251ab1..00000000
--- a/tests/Parse/ParseQueryTest.php
+++ /dev/null
@@ -1,2814 +0,0 @@
-saveObjects(
- $numberOfObjects,
- function ($i) {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar'.$i);
-
- return $obj;
- }
- );
- }
-
- public function testBasicQuery()
- {
- $baz = new ParseObject('TestObject');
- $baz->set('foo', 'baz');
- $qux = new ParseObject('TestObject');
- $qux->set('foo', 'qux');
- $baz->save();
- $qux->save();
-
- $query = new ParseQuery('TestObject');
- $query->equalTo('foo', 'baz');
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not find object.'
- );
- $this->assertEquals(
- 'baz',
- $results[0]->get('foo'),
- 'Did not return the correct object.'
- );
- }
-
- public function testQueryWithLimit()
- {
- $baz = new ParseObject('TestObject');
- $baz->set('foo', 'baz');
- $qux = new ParseObject('TestObject');
- $qux->set('foo', 'qux');
- $baz->save();
- $qux->save();
-
- $query = new ParseQuery('TestObject');
- $query->limit(1);
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testEqualTo()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('objectId', $obj->getObjectId());
- $results = $query->find();
- $this->assertTrue(count($results) == 1, 'Did not find object.');
- }
-
- public function testNotEqualTo()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->notEqualTo('foo', 'bar9');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 9,
- 'Did not find 9 objects, found '.count($results)
- );
- }
-
- public function testLessThan()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->lessThan('foo', 'bar1');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'LessThan function did not return correct number of objects.'
- );
- $this->assertEquals(
- $results[0]->get('foo'),
- 'bar0',
- 'LessThan function did not return the correct object'
- );
- }
-
- public function testLessThanOrEqualTo()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->lessThanOrEqualTo('foo', 'bar0');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'LessThanOrEqualTo function did not return correct number of objects.'
- );
- $this->assertEquals(
- $results[0]->get('foo'),
- 'bar0',
- 'LessThanOrEqualTo function did not return the correct object.'
- );
- }
-
- public function testEndsWithSingle()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->endsWith('foo', 'r0');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'EndsWith function did not return correct number of objects.'
- );
- $this->assertEquals(
- $results[0]->get('foo'),
- 'bar0',
- 'EndsWith function did not return the correct object.'
- );
- }
-
- public function testStartsWithSingle()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->startsWith('foo', 'bar0');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'StartsWith function did not return correct number of objects.'
- );
- $this->assertEquals(
- $results[0]->get('foo'),
- 'bar0',
- 'StartsWith function did not return the correct object.'
- );
- }
-
- public function testStartsWithMultiple()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->startsWith('foo', 'bar');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 10,
- 'StartsWith function did not return correct number of objects.'
- );
- }
-
- public function testStartsWithMiddle()
- {
-
- $user = ParseUser::getCurrentUser();
- if (isset($user)) {
- // logout the current user
- ParseUser::logOut();
- }
-
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->startsWith('foo', 'ar');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 0,
- 'StartsWith function did not return correct number of objects.'
- );
- }
-
- public function testStartsWithRegexDelimiters()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', "foob\E");
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->startsWith('foo', 'foob\E');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'StartsWith function did not return correct number of objects.'
- );
- $query->startsWith('foo', 'foobE');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 0,
- 'StartsWith function did not return correct number of objects.'
- );
- }
-
- public function testStartsWithRegexDot()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', 'foobarfoo');
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->startsWith('foo', 'foo(.)*');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 0,
- 'StartsWith function did not return correct number of objects.'
- );
- $query->startsWith('foo', 'foo.*');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 0,
- 'StartsWith function did not return correct number of objects.'
- );
- $query->startsWith('foo', 'foo');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'StartsWith function did not return correct number of objects.'
- );
- }
-
- public function testStartsWithRegexSlash()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', 'foobarfoo');
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->startsWith('foo', 'foo/bar');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 0,
- 'StartsWith function did not return correct number of objects.'
- );
- $query->startsWith('foo', 'foobar');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'StartsWith function did not return correct number of objects.'
- );
- }
-
- public function testStartsWithRegexQuestionmark()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', 'foobarfoo');
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->startsWith('foo', 'foox?bar');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 0,
- 'StartsWith function did not return correct number of objects.'
- );
- $query->startsWith('foo', 'foo(x)?bar');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 0,
- 'StartsWith function did not return correct number of objects.'
- );
- $query->startsWith('foo', 'foobar');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'StartsWith function did not return correct number of objects.'
- );
- }
-
- public function testMatchesSingle()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->matches('foo', 'bar0');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'Matches function did not return correct number of objects.'
- );
- $this->assertEquals(
- $results[0]->get('foo'),
- 'bar0',
- 'Matches function did not return the correct object.'
- );
- }
-
- public function testMatchesMultiple()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->matches('foo', 'bar');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 10,
- 'Matches function did not return correct number of objects.'
- );
- }
-
- public function testMatchesRegexDelimiters()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', "foob\E");
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->matches('foo', 'foob\E');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'Matches function did not return correct number of objects.'
- );
- $query->matches('foo', 'foobE');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 0,
- 'Matches function did not return correct number of objects.'
- );
- }
-
- public function testMatchesCaseInsensitiveModifier()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', 'FOOBAR');
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->matches('foo', 'foo', 'i');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'Matches function did not return correct number of objects.'
- );
- $this->assertEquals(
- $results[0]->get('foo'),
- 'FOOBAR',
- 'Matches function did not return correct number of objects.'
- );
- }
-
- public function testMatchesMultilineModifier()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', 'foo\nbar');
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->matches('foo', 'bar', 'm');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'Matches function did not return correct number of objects.'
- );
- }
-
- public function testMatchesBadOptions()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->matches('foo', 'bar', 'not-a-real-modifier');
- $this->expectException('Parse\ParseException', 'Bad $options value for query: not-a-real-modifier', 102);
- $query->find();
- }
-
- public function testContainsSingle()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', 'foobarfoo');
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->contains('foo', 'bar');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'Contains should find the string.'
- );
- }
-
- public function testContainsMultiple()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->contains('foo', 'bar');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 10,
- 'Contains function did not return correct number of objects.'
- );
-
- $query = new ParseQuery('TestObject');
- $query->contains('foo', '8');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'Contains function did not return correct number of objects.'
- );
- }
-
- public function testContainsNonExistent()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', 'foobarfoo');
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->contains('foo', 'baz');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 0,
- 'Contains should not find.'
- );
- }
-
- public function testGreaterThan()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->greaterThan('foo', 'bar8');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'GreaterThan function did not return correct number of objects.'
- );
- $this->assertEquals(
- $results[0]->get('foo'),
- 'bar9',
- 'GreaterThan function did not return the correct object.'
- );
- }
-
- public function testGreaterThanOrEqualTo()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->greaterThanOrEqualTo('foo', 'bar9');
- $results = $query->find();
- $this->assertEquals(
- count($results),
- 1,
- 'GreaterThanOrEqualTo function did not return correct number of objects.'
- );
- $this->assertEquals(
- $results[0]->get('foo'),
- 'bar9',
- 'GreaterThanOrEqualTo function did not return the correct object.'
- );
- }
-
- public function testLessThanOrEqualGreaterThanOrEqual()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->lessThanOrEqualTo('foo', 'bar4');
- $query->greaterThanOrEqualTo('foo', 'bar2');
- $results = $query->find();
- $this->assertEquals(
- 3,
- count($results),
- 'LessThanGreaterThan did not return correct number of objects.'
- );
- }
-
- public function testLessThanGreaterThan()
- {
- $this->provideTestObjects(10);
- $query = new ParseQuery('TestObject');
- $query->lessThan('foo', 'bar5');
- $query->greaterThan('foo', 'bar3');
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'LessThanGreaterThan did not return correct number of objects.'
- );
- $this->assertEquals(
- 'bar4',
- $results[0]->get('foo'),
- 'LessThanGreaterThan did not return the correct object.'
- );
- }
-
- public function testObjectIdEqualTo()
- {
- Helper::clearClass('BoxedNumber');
- $boxedNumberArray = [];
- $this->saveObjects(
- 5,
- function ($i) use (&$boxedNumberArray) {
- $boxedNumber = new ParseObject('BoxedNumber');
- $boxedNumber->set('number', $i);
- $boxedNumberArray[] = $boxedNumber;
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->equalTo('objectId', $boxedNumberArray[4]->getObjectId());
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not find object.'
- );
- $this->assertEquals(
- 4,
- $results[0]->get('number'),
- 'Did not return the correct object.'
- );
- }
-
- public function testFindNoElements()
- {
- Helper::clearClass('BoxedNumber');
- $this->saveObjects(
- 5,
- function ($i) {
- $boxedNumber = new ParseObject('BoxedNumber');
- $boxedNumber->set('number', $i);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->equalTo('number', 17);
- $results = $query->find();
- $this->assertEquals(
- 0,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testFindWithError()
- {
- $query = new ParseQuery('TestObject');
- $this->expectException('Parse\ParseException', 'Invalid key name: $foo', 105);
- $query->equalTo('$foo', 'bar');
- $query->find();
- }
-
- public function testGet()
- {
- $testObj = ParseObject::create('TestObject');
- $testObj->set('foo', 'bar');
- $testObj->save();
- $query = new ParseQuery('TestObject');
- $result = $query->get($testObj->getObjectId());
- $this->assertEquals(
- $testObj->getObjectId(),
- $result->getObjectId(),
- 'Did not return the correct object.'
- );
- $this->assertEquals(
- 'bar',
- $result->get('foo'),
- 'Did not return the correct object.'
- );
- }
-
- public function testGetError()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $query = new ParseQuery('TestObject');
- $this->expectException('Parse\ParseException', 'Object not found', 101);
- $query->get('InvalidObjectID');
- }
-
- public function testGetNull()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'bar');
- $obj->save();
- $query = new ParseQuery('TestObject');
- $this->expectException('Parse\ParseException', 'Object not found', 101);
- $query->get(null);
- }
-
- public function testFirst()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', 'bar');
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('foo', 'bar');
- $result = $query->first();
- $this->assertEquals(
- 'bar',
- $result->get('foo'),
- 'Did not return the correct object.'
- );
- }
-
- public function testFirstWithError()
- {
- $query = new ParseQuery('TestObject');
- $query->equalTo('$foo', 'bar');
- $this->expectException('Parse\ParseException', 'Invalid key name: $foo', 105);
- $query->first();
- }
-
- public function testFirstNoResult()
- {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', 'bar');
- $testObject->save();
- $query = new ParseQuery('TestObject');
- $query->equalTo('foo', 'baz');
- $result = $query->first();
- $this->assertTrue(
- empty($result),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testFirstWithTwoResults()
- {
- $this->saveObjects(
- 2,
- function () {
- $testObject = ParseObject::create('TestObject');
- $testObject->set('foo', 'bar');
-
- return $testObject;
- }
- );
- $query = new ParseQuery('TestObject');
- $query->equalTo('foo', 'bar');
- $result = $query->first();
- $this->assertEquals(
- 'bar',
- $result->get('foo'),
- 'Did not return the correct object.'
- );
- }
-
- public function testNotEqualToObject()
- {
- Helper::clearClass('Container');
- Helper::clearClass('Item');
- $items = [];
- $this->saveObjects(
- 2,
- function ($i) use (&$items) {
- $items[] = ParseObject::create('Item');
-
- return $items[$i];
- }
- );
- $this->saveObjects(
- 2,
- function ($i) use ($items) {
- $container = ParseObject::create('Container');
- $container->set('item', $items[$i]);
-
- return $container;
- }
- );
- $query = new ParseQuery('Container');
- $query->notEqualTo('item', $items[0]);
- $result = $query->find();
- $this->assertEquals(
- 1,
- count($result),
- 'Did not return the correct object.'
- );
- }
-
- public function testSkip()
- {
- $this->saveObjects(
- 2,
- function () {
- return ParseObject::create('TestObject');
- }
- );
- $query = new ParseQuery('TestObject');
- $query->skip(1);
- $result = $query->find();
- $this->assertEquals(
- 1,
- count($result),
- 'Did not return the correct object.'
- );
- $query->skip(3);
- $result = $query->find();
- $this->assertEquals(
- 0,
- count($result),
- 'Did not return the correct object.'
- );
- }
-
- public function testSkipDoesNotAffectCount()
- {
- $this->saveObjects(
- 2,
- function () {
- return ParseObject::create('TestObject');
- }
- );
- $query = new ParseQuery('TestObject');
- $count = $query->count();
- $this->assertEquals(
- 2,
- $count,
- 'Did not return correct number of objects.'
- );
- $query->skip(1);
- $this->assertEquals(
- 2,
- $count,
- 'Did not return correct number of objects.'
- );
- $query->skip(3);
- $this->assertEquals(
- 2,
- $count,
- 'Did not return correct number of objects.'
- );
- }
-
- public function testCount()
- {
- Helper::clearClass('BoxedNumber');
- $this->saveObjects(
- 3,
- function ($i) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('x', $i + 1);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->greaterThan('x', 1);
- $count = $query->count();
- $this->assertEquals(
- 2,
- $count,
- 'Did not return correct number of objects.'
- );
- }
-
- /**
- * @group withCount
- */
- public function testWithCount()
- {
- Helper::clearClass('BoxedNumber');
- $this->saveObjects(
- 3,
- function ($i) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('x', $i + 1);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->withCount();
- $response = $query->find();
- $this->assertEquals($response['count'], 3);
- $this->assertEquals(count($response['results']), 3);
- }
-
- /**
- * @group withCount
- */
- public function testWithCountDestructure()
- {
- Helper::clearClass('BoxedNumber');
- $this->saveObjects(
- 3,
- function ($i) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('x', $i + 1);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->withCount();
- ['count' => $count, 'results' => $results] = $query->find();
- $this->assertEquals($count, 3);
- $this->assertEquals(count($results), 3);
- }
-
- /**
- * @group withCount
- */
- public function testWithCountFalse()
- {
- Helper::clearClass('BoxedNumber');
- $this->saveObjects(
- 3,
- function ($i) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('x', $i + 1);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->withCount(false);
- $response = $query->find();
- $this->assertEquals(isset($response['count']), false);
- $this->assertEquals(count($response), 3);
- }
-
- /**
- * @group withCount
- */
- public function testWithCountEmptyClass()
- {
- Helper::clearClass('BoxedNumber');
- $query = new ParseQuery('BoxedNumber');
- $query->withCount();
- $response = $query->find();
- $this->assertEquals($response['count'], 0);
- $this->assertEquals(count($response['results']), 0);
- }
-
- /**
- * @group withCount
- */
- public function testWithCountAndLimit()
- {
- Helper::clearClass('BoxedNumber');
- $this->saveObjects(
- 4,
- function ($i) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('x', $i + 1);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->withCount();
- $query->limit(2);
- $response = $query->find();
- $this->assertEquals($response['count'], 4);
- $this->assertEquals(count($response['results']), 2);
- }
-
- /**
- * @group withCount
- */
- public function testWithCountAndSkip()
- {
- Helper::clearClass('BoxedNumber');
- $this->saveObjects(
- 4,
- function ($i) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('x', $i + 1);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->withCount();
- $query->skip(3);
- $response = $query->find();
- $this->assertEquals($response['count'], 4);
- $this->assertEquals(count($response['results']), 1);
- }
-
- public function testCountError()
- {
- $query = new ParseQuery('Test');
- $query->equalTo('$foo', 'bar');
- $this->expectException('Parse\ParseException', 'Invalid key name: $foo', 105);
- $query->count();
- }
-
- /**
- * @group query-equalTo-Zero-Count
- */
- public function testEqualToCountZero()
- {
- Helper::clearClass('BoxedNumber');
- $this->saveObjects(
- 5,
- function ($i) {
- $boxedNumber = new ParseObject('BoxedNumber');
- $boxedNumber->set('Number', 0);
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->equalTo('Number', 0);
- $result = $query->count();
- $this->assertEquals(
- 5,
- $result,
- 'Did not return correct number of objects.'
- );
- }
-
- public function testOrderByAscendingNumber()
- {
- Helper::clearClass('BoxedNumber');
- $numbers = [3, 1, 2];
- $this->saveObjects(
- 3,
- function ($i) use ($numbers) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('number', $numbers[$i]);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->ascending('number');
- $results = $query->find();
- $this->assertEquals(
- 3,
- count($results),
- 'Did not return correct number of objects.'
- );
- for ($i = 0; $i < 3; ++$i) {
- $this->assertEquals(
- $i + 1,
- $results[$i]->get('number'),
- 'Did not return the correct object.'
- );
- }
- }
-
- public function testOrderByDescendingNumber()
- {
- Helper::clearClass('BoxedNumber');
- $numbers = [3, 1, 2];
- $this->saveObjects(
- 3,
- function ($i) use ($numbers) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('number', $numbers[$i]);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->descending('number');
- $results = $query->find();
- $this->assertEquals(
- 3,
- count($results),
- 'Did not return correct number of objects.'
- );
- for ($i = 0; $i < 3; ++$i) {
- $this->assertEquals(
- 3 - $i,
- $results[$i]->get('number'),
- 'Did not return the correct object.'
- );
- }
- }
-
- public function provideTestObjectsForQuery($numberOfObjects)
- {
- $this->saveObjects(
- $numberOfObjects,
- function ($i) {
- $parent = ParseObject::create('ParentObject');
- $child = ParseObject::create('ChildObject');
- $child->set('x', $i);
- $parent->set('x', 10 + $i);
- $parent->set('child', $child);
-
- return $parent;
- }
- );
- }
-
- public function testMatchesQuery()
- {
- Helper::clearClass('ChildObject');
- Helper::clearClass('ParentObject');
- $this->provideTestObjectsForQuery(10);
- $subQuery = new ParseQuery('ChildObject');
- $subQuery->greaterThan('x', 5);
- $query = new ParseQuery('ParentObject');
- $query->matchesQuery('child', $subQuery);
- $results = $query->find();
-
- $this->assertEquals(
- 4,
- count($results),
- 'Did not return correct number of objects.'
- );
- foreach ($results as $parentObj) {
- $this->assertGreaterThan(
- 15,
- $parentObj->get('x'),
- 'Did not return the correct object.'
- );
- }
- }
-
- public function testDoesNotMatchQuery()
- {
- Helper::clearClass('ChildObject');
- Helper::clearClass('ParentObject');
- $this->provideTestObjectsForQuery(10);
- $subQuery = new ParseQuery('ChildObject');
- $subQuery->greaterThan('x', 5);
- $query = new ParseQuery('ParentObject');
- $query->doesNotMatchQuery('child', $subQuery);
- $results = $query->find();
-
- $this->assertEquals(
- 6,
- count($results),
- 'Did not return the correct object.'
- );
- foreach ($results as $parentObj) {
- $this->assertLessThanOrEqual(
- 15,
- $parentObj->get('x'),
- 'Did not return the correct object.'
- );
- $this->assertGreaterThanOrEqual(
- 10,
- $parentObj->get('x'),
- 'Did not return the correct object.'
- );
- }
- }
-
- public function provideTestObjectsForKeyInQuery()
- {
- Helper::clearClass('Restaurant');
- Helper::clearClass('Person');
- $restaurantLocations = ['Djibouti', 'Ouagadougou'];
- $restaurantRatings = [5, 3];
- $numberOFRestaurantObjects = count($restaurantLocations);
-
- $personHomeTown = ['Djibouti', 'Ouagadougou', 'Detroit'];
- $personName = ['Bob', 'Tom', 'Billy'];
- $numberOfPersonObjects = count($personHomeTown);
-
- $this->saveObjects(
- $numberOFRestaurantObjects,
- function ($i) use ($restaurantRatings, $restaurantLocations) {
- $restaurant = ParseObject::create('Restaurant');
- $restaurant->set('ratings', $restaurantRatings[$i]);
- $restaurant->set('location', $restaurantLocations[$i]);
-
- return $restaurant;
- }
- );
-
- $this->saveObjects(
- $numberOfPersonObjects,
- function ($i) use ($personHomeTown, $personName) {
- $person = ParseObject::create('Person');
- $person->set('hometown', $personHomeTown[$i]);
- $person->set('name', $personName[$i]);
-
- return $person;
- }
- );
- }
-
- public function testMatchesKeyInQuery()
- {
- $this->provideTestObjectsForKeyInQuery();
- $subQuery = new ParseQuery('Restaurant');
- $subQuery->greaterThan('ratings', 4);
-
- $query = new ParseQuery('Person');
- $query->matchesKeyInQuery('hometown', 'location', $subQuery);
- $results = $query->find();
-
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- $this->assertEquals(
- 'Bob',
- $results[0]->get('name'),
- 'Did not return the correct object.'
- );
- }
-
- public function testDoesNotMatchKeyInQuery()
- {
- $this->provideTestObjectsForKeyInQuery();
- $subQuery = new ParseQuery('Restaurant');
- $subQuery->greaterThanOrEqualTo('ratings', 3);
-
- $query = new ParseQuery('Person');
- $query->doesNotmatchKeyInQuery('hometown', 'location', $subQuery);
- $results = $query->find();
-
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- $this->assertEquals(
- 'Billy',
- $results[0]->get('name'),
- 'Did not return the correct object.'
- );
- }
-
- public function testOrQueries()
- {
- $this->provideTestObjects(10);
- $subQuery1 = new ParseQuery('TestObject');
- $subQuery1->lessThan('foo', 'bar2');
- $subQuery2 = new ParseQuery('TestObject');
- $subQuery2->greaterThan('foo', 'bar5');
-
- $mainQuery = ParseQuery::orQueries([$subQuery1, $subQuery2]);
- $results = $mainQuery->find();
- $length = count($results);
- $this->assertEquals(
- 6,
- $length,
- 'Did not return correct number of objects.'
- );
- for ($i = 0; $i < $length; ++$i) {
- $this->assertTrue(
- $results[$i]->get('foo') < 'bar2' ||
- $results[$i]->get('foo') > 'bar5',
- 'Did not return the correct object.'
- );
- }
- }
-
- public function testNorQueries()
- {
- $this->provideTestObjects(10);
- $subQuery1 = new ParseQuery('TestObject');
- $subQuery1->lessThan('foo', 'bar3');
- $subQuery2 = new ParseQuery('TestObject');
- $subQuery2->greaterThan('foo', 'bar5');
-
- $mainQuery = ParseQuery::norQueries([$subQuery1, $subQuery2]);
- $results = $mainQuery->find();
- $length = count($results);
- $this->assertEquals(
- 3,
- $length,
- 'Did not return correct number of objects.'
- );
- for ($i = 0; $i < $length; ++$i) {
- $this->assertTrue(
- $results[$i]->get('foo') >= 'bar3' ||
- $results[$i]->get('foo') <= 'bar5',
- 'Did not return the correct object.'
- );
- }
- }
-
- public function testAndQueries()
- {
- Helper::clearClass('ChildObject');
- Helper::clearClass('ParentObject');
- $this->provideTestObjectsForQuery(10);
- $subQuery = new ParseQuery('ChildObject');
- $subQuery->equalTo('x', 4);
- $q1 = new ParseQuery('ParentObject');
- $q1->matchesQuery('child', $subQuery);
- $q2 = new ParseQuery('ParentObject');
- $q2->equalTo('x', 14);
-
- $mainQuery = ParseQuery::andQueries([$q1, $q2]);
- $results = $mainQuery->find();
- $length = count($results);
- $this->assertEquals(
- 1,
- $length,
- 'Did not return correct number of objects.'
- );
- $this->assertTrue($results[0]->get('x') == 14);
- }
-
- public function testComplexQueries()
- {
- Helper::clearClass('Child');
- Helper::clearClass('Parent');
- $this->saveObjects(
- 10,
- function ($i) {
- $child = new ParseObject('Child');
- $child->set('x', $i);
- $parent = new ParseObject('Parent');
- $parent->set('y', $i);
- $parent->set('child', $child);
-
- return $parent;
- }
- );
- $subQuery = new ParseQuery('Child');
- $subQuery->equalTo('x', 4);
- $query1 = new ParseQuery('Parent');
- $query1->matchesQuery('child', $subQuery);
- $query2 = new ParseQuery('Parent');
- $query2->lessThan('y', 2);
-
- $orQuery = ParseQuery::orQueries([$query1, $query2]);
- $results = $orQuery->find();
- $this->assertEquals(
- 3,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testEach()
- {
- Helper::clearClass('Object');
- $total = 50;
- $count = 25;
- $this->saveObjects(
- $total,
- function ($i) {
- $obj = new ParseObject('Object');
- $obj->set('x', $i + 1);
-
- return $obj;
- }
- );
- $query = new ParseQuery('Object');
- $query->lessThanOrEqualTo('x', $count);
-
- $values = [];
- $query->each(
- function ($obj) use (&$values) {
- $values[] = $obj->get('x');
- },
- 10
- );
-
- $valuesLength = count($values);
- $this->assertEquals(
- $count,
- $valuesLength,
- 'Did not return correct number of objects.'
- );
- sort($values);
- for ($i = 0; $i < $valuesLength; ++$i) {
- $this->assertEquals(
- $i + 1,
- $values[$i],
- 'Did not return the correct object.'
- );
- }
- }
-
- public function testEachFailsWithOrder()
- {
- Helper::clearClass('Object');
- $total = 50;
- $count = 25;
- $this->saveObjects(
- $total,
- function ($i) {
- $obj = new ParseObject('Object');
- $obj->set('x', $i + 1);
-
- return $obj;
- }
- );
- $query = new ParseQuery('Object');
- $query->lessThanOrEqualTo('x', $count);
- $query->ascending('x');
- $this->expectException('\Exception', 'sort');
- $query->each(
- function ($obj) {
- }
- );
- }
-
- public function testEachFailsWithSkip()
- {
- $total = 50;
- $count = 25;
- $this->saveObjects(
- $total,
- function ($i) {
- $obj = new ParseObject('Object');
- $obj->set('x', $i + 1);
-
- return $obj;
- }
- );
- $query = new ParseQuery('Object');
- $query->lessThanOrEqualTo('x', $count);
- $query->skip(5);
- $this->expectException('\Exception', 'skip');
- $query->each(
- function ($obj) {
- }
- );
- }
-
- public function testEachFailsWithLimit()
- {
- $total = 50;
- $count = 25;
- $this->saveObjects(
- $total,
- function ($i) {
- $obj = new ParseObject('Object');
- $obj->set('x', $i + 1);
-
- return $obj;
- }
- );
- $query = new ParseQuery('Object');
- $query->lessThanOrEqualTo('x', $count);
- $query->limit(5);
- $this->expectException('\Exception', 'limit');
- $query->each(
- function ($obj) {
- }
- );
- }
-
- public function testContainsAllNumberArrayQueries()
- {
- Helper::clearClass('NumberSet');
- $numberSet1 = new ParseObject('NumberSet');
- $numberSet1->setArray('numbers', [1, 2, 3, 4, 5]);
- $numberSet2 = new ParseObject('NumberSet');
- $numberSet2->setArray('numbers', [1, 3, 4, 5]);
- $numberSet1->save();
- $numberSet2->save();
-
- $query = new ParseQuery('NumberSet');
- $query->containsAll('numbers', [1, 2, 3]);
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testContainsAllStringArrayQueries()
- {
- Helper::clearClass('StringSet');
- $stringSet1 = new ParseObject('StringSet');
- $stringSet1->setArray('strings', ['a', 'b', 'c', 'd', 'e']);
- $stringSet1->save();
- $stringSet2 = new ParseObject('StringSet');
- $stringSet2->setArray('strings', ['a', 'c', 'd', 'e']);
- $stringSet2->save();
-
- $query = new ParseQuery('StringSet');
- $query->containsAll('strings', ['a', 'b', 'c']);
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testContainsAllDateArrayQueries()
- {
- Helper::clearClass('DateSet');
- $dates1 = [
- new \DateTime('2013-02-01T00:00:00Z'),
- new \DateTime('2013-02-02T00:00:00Z'),
- new \DateTime('2013-02-03T00:00:00Z'),
- new \DateTime('2013-02-04T00:00:00Z'),
- ];
- $dates2 = [
- new \DateTime('2013-02-01T00:00:00Z'),
- new \DateTime('2013-02-03T00:00:00Z'),
- new \DateTime('2013-02-04T00:00:00Z'),
- ];
-
- $obj1 = ParseObject::create('DateSet');
- $obj1->setArray('dates', $dates1);
- $obj1->save();
- $obj2 = ParseObject::create('DateSet');
- $obj2->setArray('dates', $dates2);
- $obj2->save();
-
- $query = new ParseQuery('DateSet');
- $query->containsAll(
- 'dates',
- [
- new \DateTime('2013-02-01T00:00:00Z'),
- new \DateTime('2013-02-02T00:00:00Z'),
- new \DateTime('2013-02-03T00:00:00Z'),
- ]
- );
- $result = $query->find();
- $this->assertEquals(
- 1,
- count($result),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testContainedByQuery()
- {
- Helper::clearClass('NumberSet');
- $obj1 = ParseObject::create('TestObject');
- $obj2 = ParseObject::create('TestObject');
- $obj3 = ParseObject::create('TestObject');
- $obj1->setArray('numbers', [0, 1, 2]);
- $obj2->setArray('numbers', [2, 0]);
- $obj3->setArray('numbers', [1, 2, 3, 4]);
- $numberSet = [$obj1, $obj2, $obj3];
-
- ParseObject::saveAll($numberSet);
-
- $query = new ParseQuery('TestObject');
- $query->containedBy('numbers', [1, 2, 3, 4, 5]);
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testContainsAllObjectArrayQueries()
- {
- Helper::clearClass('MessageSet');
- $messageList = [];
- $this->saveObjects(
- 4,
- function ($i) use (&$messageList) {
- $messageList[] = ParseObject::create('TestObject');
- $messageList[$i]->set('i', $i);
-
- return $messageList[$i];
- }
- );
- $messageSet1 = ParseObject::create('MessageSet');
- $messageSet1->setArray('messages', $messageList);
- $messageSet1->save();
- $messageSet2 = ParseObject::create('MessageSet');
- $messageSet2->setArray(
- 'message',
- [$messageList[0], $messageList[1], $messageList[3]]
- );
- $messageSet2->save();
-
- $query = new ParseQuery('MessageSet');
- $query->containsAll('messages', [$messageList[0], $messageList[2]]);
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testContainsAllStartingWithQueries()
- {
- $obj1 = ParseObject::create('TestObject');
- $obj2 = ParseObject::create('TestObject');
- $obj3 = ParseObject::create('TestObject');
- $obj1->setArray('strings', ['the', 'brown', 'lazy', 'fox', 'jumps']);
- $obj2->setArray('strings', ['the', 'brown', 'fox', 'jumps']);
- $obj3->setArray('strings', ['over', 'the', 'lazy', 'dogs']);
-
- ParseObject::saveAll([$obj1, $obj2, $obj3]);
-
- $query = new ParseQuery('TestObject');
- $query->containsAllStartingWith('strings', ['the', 'fox', 'lazy']);
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testContainedInObjectArrayQueries()
- {
- $messageList = [];
- $this->saveObjects(
- 4,
- function ($i) use (&$messageList) {
- $message = ParseObject::create('TestObject');
- if ($i > 0) {
- $message->set('prior', $messageList[$i - 1]);
- }
- $messageList[] = $message;
-
- return $message;
- }
- );
- $query = new ParseQuery('TestObject');
- $query->containedIn('prior', [$messageList[0], $messageList[2]]);
- $results = $query->find();
- $this->assertEquals(
- 2,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testContainedInQueries()
- {
- Helper::clearClass('BoxedNumber');
- $this->saveObjects(
- 10,
- function ($i) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('number', $i);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->containedIn('number', [3, 5, 7, 9, 11]);
- $results = $query->find();
- $this->assertEquals(
- 4,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testNotContainedInQueries()
- {
- Helper::clearClass('BoxedNumber');
- $this->saveObjects(
- 10,
- function ($i) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('number', $i);
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->notContainedIn('number', [3, 5, 7, 9, 11]);
- $results = $query->find();
- $this->assertEquals(
- 6,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testObjectIdContainedInQueries()
- {
- Helper::clearClass('BoxedNumber');
- $objects = [];
- $this->saveObjects(
- 5,
- function ($i) use (&$objects) {
- $boxedNumber = ParseObject::create('BoxedNumber');
- $boxedNumber->set('number', $i);
- $objects[] = $boxedNumber;
-
- return $boxedNumber;
- }
- );
- $query = new ParseQuery('BoxedNumber');
- $query->containedIn(
- 'objectId',
- [
- $objects[2]->getObjectId(),
- $objects[3]->getObjectId(),
- $objects[0]->getObjectId(),
- 'NONSENSE',
- ]
- );
- $query->ascending('number');
- $results = $query->find();
- $this->assertEquals(
- 3,
- count($results),
- 'Did not return correct number of objects.'
- );
- $this->assertEquals(
- 0,
- $results[0]->get('number'),
- 'Did not return the correct object.'
- );
- $this->assertEquals(
- 2,
- $results[1]->get('number'),
- 'Did not return the correct object.'
- );
- $this->assertEquals(
- 3,
- $results[2]->get('number'),
- 'Did not return the correct object.'
- );
- }
-
- public function testStartsWith()
- {
- $someAscii = "\\E' !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU".
- "VWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'";
- $prefixes = ['zax', 'start', '', ''];
- $suffixes = ['qub', '', 'end', ''];
- $this->saveObjects(
- 4,
- function ($i) use ($prefixes, $suffixes, $someAscii) {
- $obj = ParseObject::create('TestObject');
- $obj->set('myString', $prefixes[$i].$someAscii.$suffixes[$i]);
-
- return $obj;
- }
- );
- $query = new ParseQuery('TestObject');
- $query->startsWith('myString', $someAscii);
- $results = $query->find();
- $this->assertEquals(
- 2,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function provideTestObjectsForOrderBy()
- {
- Helper::clearClass('BoxedNumber');
- $strings = ['a', 'b', 'c', 'd'];
- $numbers = [3, 1, 3, 2];
- for ($i = 0; $i < 4; ++$i) {
- $obj = ParseObject::create('BoxedNumber');
- $obj->set('string', $strings[$i]);
- $obj->set('number', $numbers[$i]);
- $obj->save();
- }
- }
-
- public function testOrderByAscNumberThenDescString()
- {
- $this->provideTestObjectsForOrderBy();
- $query = new ParseQuery('BoxedNumber');
- $query->ascending('number')->addDescending('string');
- $results = $query->find();
- $expected = [[1, 'b'], [2, 'd'], [3, 'c'], [3, 'a']];
- $this->assertEquals(
- 4,
- count($results),
- 'Did not return correct number of objects.'
- );
- for ($i = 0; $i < 4; ++$i) {
- $this->assertEquals(
- $expected[$i][0],
- $results[$i]->get('number'),
- 'Did not return the correct object.'
- );
- $this->assertEquals(
- $expected[$i][1],
- $results[$i]->get('string'),
- 'Did not return the correct object.'
- );
- }
- }
-
- public function testOrderByDescNumberThenAscString()
- {
- $this->provideTestObjectsForOrderBy();
- $query = new ParseQuery('BoxedNumber');
- $query->descending('number')->addAscending('string');
- $results = $query->find();
- $expected = [[3, 'a'], [3, 'c'], [2, 'd'], [1, 'b']];
- $this->assertEquals(
- 4,
- count($results),
- 'Did not return correct number of objects.'
- );
- for ($i = 0; $i < 4; ++$i) {
- $this->assertEquals(
- $expected[$i][0],
- $results[$i]->get('number'),
- 'Did not return the correct object.'
- );
- $this->assertEquals(
- $expected[$i][1],
- $results[$i]->get('string'),
- 'Did not return the correct object.'
- );
- }
- }
-
- public function testOrderByDescNumberAndString()
- {
- $this->provideTestObjectsForOrderBy();
- $query = new ParseQuery('BoxedNumber');
- $query->descending(['number', 'string']);
- $results = $query->find();
- $expected = [[3, 'c'], [3, 'a'], [2, 'd'], [1, 'b']];
- $this->assertEquals(
- 4,
- count($results),
- 'Did not return correct number of objects.'
- );
- for ($i = 0; $i < 4; ++$i) {
- $this->assertEquals(
- $expected[$i][0],
- $results[$i]->get('number'),
- 'Did not return the correct object.'
- );
- $this->assertEquals(
- $expected[$i][1],
- $results[$i]->get('string'),
- 'Did not return the correct object.'
- );
- }
- }
-
- public function testCannotOrderByPassword()
- {
- $this->provideTestObjectsForOrderBy();
- $query = new ParseQuery('BoxedNumber');
- $query->ascending('_password');
- $this->expectException('Parse\ParseException', '', 105);
- $query->find();
- }
-
- public function testOrderByCreatedAtAsc()
- {
- $this->provideTestObjectsForOrderBy();
- $query = new ParseQuery('BoxedNumber');
- $query->ascending('createdAt');
- $query->find();
- $results = $query->find();
- $this->assertEquals(
- 4,
- count($results),
- 'Did not return correct number of objects.'
- );
- $expected = [3, 1, 3, 2];
- for ($i = 0; $i < 4; ++$i) {
- $this->assertEquals(
- $expected[$i],
- $results[$i]->get('number'),
- 'Did not return the correct object.'
- );
- }
- }
-
- public function testOrderByCreatedAtDesc()
- {
- $this->provideTestObjectsForOrderBy();
- $query = new ParseQuery('BoxedNumber');
- $query->descending('createdAt');
- $query->find();
- $results = $query->find();
- $this->assertEquals(
- 4,
- count($results),
- 'Did not return correct number of objects.'
- );
- $expected = [2, 3, 1, 3];
- for ($i = 0; $i < 4; ++$i) {
- $this->assertEquals(
- $expected[$i],
- $results[$i]->get('number'),
- 'Did not return the correct object.'
- );
- }
- }
-
- /**
- * @group order-by-updated-at
- */
- public function testOrderByUpdatedAtAsc()
- {
- $numbers = [3, 1, 2];
- $objects = [];
-
- foreach ($numbers as $num) {
- $obj = ParseObject::create('TestObject');
- $obj->set('number', $num);
- $obj->save();
- $objects[] = $obj;
- sleep(1);
- }
-
- $objects[1]->set('number', 4);
- $objects[1]->save();
- $query = new ParseQuery('TestObject');
- $query->ascending('updatedAt');
- $results = $query->find();
- $this->assertEquals(
- 3,
- count($results),
- 'Did not return correct number of objects.'
- );
- $expected = [3, 2, 4];
- for ($i = 0; $i < 3; ++$i) {
- $this->assertEquals(
- $expected[$i],
- $results[$i]->get('number'),
- 'Did not return the correct object.'
- );
- }
- }
-
- /**
- * @throws ParseException
- * @group order-by-updated-at-desc
- */
- public function testOrderByUpdatedAtDesc()
- {
- $numbers = [3, 1, 2];
- $objects = [];
-
- foreach ($numbers as $num) {
- $obj = ParseObject::create('TestObject');
- $obj->set('number', $num);
- $obj->save();
- $objects[] = $obj;
- sleep(1);
- }
-
- $objects[1]->set('number', 4);
- $objects[1]->save();
- $query = new ParseQuery('TestObject');
- $query->descending('updatedAt');
- $results = $query->find();
- $this->assertEquals(
- 3,
- count($results),
- 'Did not return correct number of objects.'
- );
-
- $expected = [4, 2, 3];
- for ($i = 0; $i < 3; ++$i) {
- $this->assertEquals(
- $expected[$i],
- $results[$i]->get('number'),
- 'Did not return the correct object.'
- );
- }
- }
-
- public function testSelectKeysQuery()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'baz');
- $obj->set('bar', 1);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->select('foo');
- $result = $query->first();
- $this->assertEquals(
- 'baz',
- $result->get('foo'),
- 'Did not return the correct object.'
- );
- $this->expectException('\Exception', 'Call fetch()');
- $result->get('bar');
- }
-
- public function testGetWithoutError()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'baz');
- $obj->set('bar', 1);
- $this->assertEquals(
- 'baz',
- $obj->get('foo'),
- 'Did not return the correct object.'
- );
- $this->assertEquals(
- 1,
- $obj->get('bar'),
- 'Did not return the correct object.'
- );
- $obj->save();
- }
-
- public function testSelectKeysQueryArrayArg()
- {
- $obj = ParseObject::create('TestObject');
- $obj->set('foo', 'baz');
- $obj->set('bar', 1);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $query->select(['foo', 'bar']);
- $result = $query->first();
- $this->assertEquals(
- 'baz',
- $result->get('foo'),
- 'Did not return the correct object.'
- );
- $this->assertEquals(
- 1,
- $result->get('bar'),
- 'Did not return the correct object.'
- );
- }
-
- public function testExists()
- {
- $this->saveObjects(
- 9,
- function ($i) {
- $obj = ParseObject::create('TestObject');
- if ($i & 1) {
- $obj->set('y', $i);
- } else {
- $obj->set('x', $i);
- }
-
- return $obj;
- }
- );
- $query = new ParseQuery('TestObject');
- $query->exists('x');
- $results = $query->find();
- $this->assertEquals(
- 5,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testDoesNotExist()
- {
- $this->saveObjects(
- 9,
- function ($i) {
- $obj = ParseObject::create('TestObject');
- if ($i & 1) {
- $obj->set('y', $i);
- } else {
- $obj->set('x', $i);
- }
-
- return $obj;
- }
- );
- $query = new ParseQuery('TestObject');
- $query->doesNotExist('x');
- $results = $query->find();
- $this->assertEquals(
- 4,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testExistsRelation()
- {
- Helper::clearClass('Item');
- $this->saveObjects(
- 9,
- function ($i) {
- $obj = ParseObject::create('TestObject');
- if ($i & 1) {
- $obj->set('y', $i);
- } else {
- $item = ParseObject::create('Item');
- $item->set('e', $i);
- $obj->set('e', $item);
- }
-
- return $obj;
- }
- );
- $query = new ParseQuery('TestObject');
- $query->exists('e');
- $results = $query->find();
- $this->assertEquals(
- 5,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testDoesNotExistRelation()
- {
- Helper::clearClass('Item');
- $this->saveObjects(
- 9,
- function ($i) {
- $obj = ParseObject::create('TestObject');
- if ($i & 1) {
- $obj->set('y', $i);
- } else {
- $item = ParseObject::create('Item');
- $item->set('x', $i);
- $obj->set('x', $i);
- }
-
- return $obj;
- }
- );
- $query = new ParseQuery('TestObject');
- $query->doesNotExist('x');
- $results = $query->find();
- $this->assertEquals(
- 4,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testDoNotIncludeRelation()
- {
- $child = ParseObject::create('Child');
- $child->set('x', 1);
- $child->save();
- $parent = ParseObject::create('Parent');
- $parent->set('child', $child);
- $parent->set('y', 1);
- $parent->save();
- $query = new ParseQuery('Parent');
- $result = $query->first();
- $this->expectException('\Exception', 'Call fetch()');
- $result->get('child')->get('x');
- }
-
- public function testIncludeRelation()
- {
- Helper::clearClass('Child');
- Helper::clearClass('Parent');
- $child = ParseObject::create('Child');
- $child->set('x', 1);
- $child->save();
- $parent = ParseObject::create('Parent');
- $parent->set('child', $child);
- $parent->set('y', 1);
- $parent->save();
- $query = new ParseQuery('Parent');
- $query->includeKey('child');
- $result = $query->first();
- $this->assertEquals(
- $result->get('y'),
- $result->get('child')->get('x'),
- 'Object should be fetched.'
- );
- $this->assertEquals(
- 1,
- $result->get('child')->get('x'),
- 'Object should be fetched.'
- );
- }
-
- public function testIncludeAllKeys()
- {
- Helper::clearClass('Child');
- Helper::clearClass('Parent');
- $child1 = ParseObject::create('Child');
- $child2 = ParseObject::create('Child');
- $child3 = ParseObject::create('Child');
- $child1->set('foo', 'bar');
- $child2->set('foo', 'baz');
- $child3->set('foo', 'bin');
- $parent = ParseObject::create('Parent');
- $parent->set('child1', $child1);
- $parent->set('child2', $child2);
- $parent->set('child3', $child3);
- $parent->save();
- $query = new ParseQuery('Parent');
- $query->includeAllKeys();
- $result = $query->first();
- $this->assertEquals($result->get('child1')->get('foo'), 'bar');
- $this->assertEquals($result->get('child2')->get('foo'), 'baz');
- $this->assertEquals($result->get('child3')->get('foo'), 'bin');
- }
-
- public function testExcludeKeys()
- {
- $object = ParseObject::create('TestObject');
- $object->set('foo', 'bar');
- $object->set('hello', 'world');
- $object->save();
- $query = new ParseQuery('TestObject');
- $query->excludeKey('foo');
- $result = $query->get($object->getObjectId());
- $this->assertEquals($result->get('foo'), null);
- $this->assertEquals($result->get('hello'), 'world');
- }
-
- public function testNestedIncludeRelation()
- {
- Helper::clearClass('Child');
- Helper::clearClass('Parent');
- Helper::clearClass('GrandParent');
- $child = ParseObject::create('Child');
- $child->set('x', 1);
- $child->save();
- $parent = ParseObject::create('Parent');
- $parent->set('child', $child);
- $parent->set('y', 1);
- $parent->save();
- $grandParent = ParseObject::create('GrandParent');
- $grandParent->set('parent', $parent);
- $grandParent->set('z', 1);
- $grandParent->save();
-
- $query = new ParseQuery('GrandParent');
- $query->includeKey('parent.child');
- $result = $query->first();
- $this->assertEquals(
- $result->get('z'),
- $result->get('parent')->get('y'),
- 'Object should be fetched.'
- );
- $this->assertEquals(
- $result->get('z'),
- $result->get('parent')->get('child')->get('x'),
- 'Object should be fetched.'
- );
- }
-
- public function testIncludeArrayRelation()
- {
- Helper::clearClass('Child');
- Helper::clearClass('Parent');
- $children = [];
- $this->saveObjects(
- 5,
- function ($i) use (&$children) {
- $child = ParseObject::create('Child');
- $child->set('x', $i);
- $children[] = $child;
-
- return $child;
- }
- );
- $parent = ParseObject::create('Parent');
- $parent->setArray('children', $children);
- $parent->save();
-
- $query = new ParseQuery('Parent');
- $query->includeKey('children');
- $result = $query->find();
- $this->assertEquals(
- 1,
- count($result),
- 'Did not return correct number of objects.'
- );
- $children = $result[0]->get('children');
- $length = count($children);
- for ($i = 0; $i < $length; ++$i) {
- $this->assertEquals(
- $i,
- $children[$i]->get('x'),
- 'Object should be fetched.'
- );
- }
- }
-
- public function testIncludeWithNoResults()
- {
- Helper::clearClass('Child');
- Helper::clearClass('Parent');
- $query = new ParseQuery('Parent');
- $query->includeKey('children');
- $result = $query->find();
- $this->assertEquals(
- 0,
- count($result),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testIncludeWithNonExistentKey()
- {
- Helper::clearClass('Child');
- Helper::clearClass('Parent');
- $parent = ParseObject::create('Parent');
- $parent->set('foo', 'bar');
- $parent->save();
-
- $query = new ParseQuery('Parent');
- $query->includeKey('child');
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testIncludeOnTheWrongKeyType()
- {
- Helper::clearClass('Child');
- Helper::clearClass('Parent');
- $parent = ParseObject::create('Parent');
- $parent->set('foo', 'bar');
- $parent->save();
-
- $query = new ParseQuery('Parent');
- $query->includeKey('foo');
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testIncludeWhenOnlySomeObjectsHaveChildren()
- {
- Helper::clearClass('Child');
- Helper::clearClass('Parent');
- $child = ParseObject::create('Child');
- $child->set('foo', 'bar');
- $child->save();
- $this->saveObjects(
- 4,
- function ($i) use ($child) {
- $parent = ParseObject::create('Parent');
- $parent->set('num', $i);
- if ($i & 1) {
- $parent->set('child', $child);
- }
-
- return $parent;
- }
- );
-
- $query = new ParseQuery('Parent');
- $query->includeKey(['child']);
- $query->ascending('num');
- $results = $query->find();
- $this->assertEquals(
- 4,
- count($results),
- 'Did not return correct number of objects.'
- );
- $length = count($results);
- for ($i = 0; $i < $length; ++$i) {
- if ($i & 1) {
- $this->assertEquals(
- 'bar',
- $results[$i]->get('child')->get('foo'),
- 'Object should be fetched'
- );
- } else {
- $this->assertEquals(
- null,
- $results[$i]->get('child'),
- 'Should not have child'
- );
- }
- }
- }
-
- public function testIncludeMultipleKeys()
- {
- Helper::clearClass('Foo');
- Helper::clearClass('Bar');
- Helper::clearClass('Parent');
- $foo = ParseObject::create('Foo');
- $foo->set('rev', 'oof');
- $foo->save();
- $bar = ParseObject::create('Bar');
- $bar->set('rev', 'rab');
- $bar->save();
-
- $parent = ParseObject::create('Parent');
- $parent->set('foofoo', $foo);
- $parent->set('barbar', $bar);
- $parent->save();
-
- $query = new ParseQuery('Parent');
- $query->includeKey(['foofoo', 'barbar']);
- $result = $query->first();
- $this->assertEquals(
- 'oof',
- $result->get('foofoo')->get('rev'),
- 'Object should be fetched'
- );
- $this->assertEquals(
- 'rab',
- $result->get('barbar')->get('rev'),
- 'Object should be fetched'
- );
- }
-
- public function testEqualToObject()
- {
- Helper::clearClass('Item');
- Helper::clearClass('Container');
- $items = [];
- $this->saveObjects(
- 2,
- function ($i) use (&$items) {
- $items[] = ParseObject::create('Item');
- $items[$i]->set('x', $i);
-
- return $items[$i];
- }
- );
- $this->saveObjects(
- 2,
- function ($i) use ($items) {
- $container = ParseObject::create('Container');
- $container->set('item', $items[$i]);
-
- return $container;
- }
- );
- $query = new ParseQuery('Container');
- $query->equalTo('item', $items[0]);
- $result = $query->find();
- $this->assertEquals(
- 1,
- count($result),
- 'Did not return the correct object.'
- );
- }
-
- public function testEqualToNull()
- {
- $this->saveObjects(
- 10,
- function ($i) {
- $obj = ParseObject::create('TestObject');
- $obj->set('num', $i);
-
- return $obj;
- }
- );
- $this->saveObjects(
- 2,
- function ($i) {
- $obj = ParseObject::create('TestObject');
- $obj->set('num', null);
-
- return $obj;
- }
- );
- $query = new ParseQuery('TestObject');
- $query->equalTo('num', null);
- $results = $query->find();
- $this->assertEquals(
- 2,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function provideTimeTestObjects()
- {
- Helper::clearClass('TimeObject');
- $items = [];
- $this->saveObjects(
- 3,
- function ($i) use (&$items) {
- $timeObject = ParseObject::create('TimeObject');
- $timeObject->set('name', 'item'.$i);
- $timeObject->set('time', new \DateTime());
- sleep(1);
- $items[] = $timeObject;
-
- return $timeObject;
- }
- );
-
- return $items;
- }
-
- public function testTimeEquality()
- {
- $items = $this->provideTimeTestObjects();
- $query = new ParseQuery('TimeObject');
- $query->equalTo('time', $items[1]->get('time'));
- $results = $query->find();
- $this->assertEquals(
- 1,
- count($results),
- 'Did not return correct number of objects.'
- );
- $this->assertEquals('item1', $results[0]->get('name'));
- }
-
- public function testTimeLessThan()
- {
- $items = $this->provideTimeTestObjects();
- $query = new ParseQuery('TimeObject');
- $query->lessThan('time', $items[2]->get('time'));
- $results = $query->find();
- $this->assertEquals(
- 2,
- count($results),
- 'Did not return correct number of objects.'
- );
- }
-
- public function testRestrictedGetFailsWithoutMasterKey()
- {
- $obj = ParseObject::create('TestObject');
- $restrictedACL = new ParseACL();
- $obj->setACL($restrictedACL);
- $obj->save();
- $query = new ParseQuery('TestObject');
- $this->expectException('Parse\ParseException', 'not found');
- $query->get($obj->getObjectId());
- }
-
- public function testRestrictedGetWithMasterKey()
- {
- $obj = ParseObject::create('TestObject');
- $restrictedACL = new ParseACL();
- $obj->setACL($restrictedACL);
- $obj->save();
-
- $query = new ParseQuery('TestObject');
- $objAgain = $query->get($obj->getObjectId(), true);
- $this->assertEquals($obj->getObjectId(), $objAgain->getObjectId());
- }
-
- public function testRestrictedCount()
- {
- $obj = ParseObject::create('TestObject');
- $restrictedACL = new ParseACL();
- $obj->setACL($restrictedACL);
- $obj->save();
-
- $query = new ParseQuery('TestObject');
- $count = $query->count();
- $this->assertEquals(0, $count);
- $count = $query->count(true);
- $this->assertEquals(1, $count);
- }
-
- public function testAscendingByArray()
- {
- $obj = new ParseObject('TestObject');
- $obj->set('name', 'John');
- $obj->set('country', 'US');
- $obj->save();
-
- $obj = new ParseObject('TestObject');
- $obj->set('name', 'Bob');
- $obj->set('country', 'US');
- $obj->save();
-
- $obj = new ParseObject('TestObject');
- $obj->set('name', 'Joel');
- $obj->set('country', 'CA');
- $obj->save();
-
- $query = new ParseQuery('TestObject');
- $query->ascending(['country','name']);
- $results = $query->find();
-
- $this->assertEquals(3, count($results));
-
- $this->assertEquals('Joel', $results[0]->name);
- $this->assertEquals('Bob', $results[1]->name);
- $this->assertEquals('John', $results[2]->name);
- }
-
- public function testOrQueriesVaryingClasses()
- {
- $this->expectException(
- '\Exception',
- 'All queries must be for the same class'
- );
- ParseQuery::orQueries([
- new ParseQuery('Class1'),
- new ParseQuery('Class2')
- ]);
- }
-
- public function testNorQueriesVaryingClasses()
- {
- $this->expectException(
- '\Exception',
- 'All queries must be for the same class'
- );
- ParseQuery::norQueries([
- new ParseQuery('Class1'),
- new ParseQuery('Class2')
- ]);
- }
-
- public function testAndQueriesVaryingClasses()
- {
- $this->expectException(
- '\Exception',
- 'All queries must be for the same class'
- );
- ParseQuery::andQueries([
- new ParseQuery('Class1'),
- new ParseQuery('Class2')
- ]);
- }
-
- public function testQueryFindEncoded()
- {
- $obj = new ParseObject('TestObject');
- $obj->set('name', 'John');
- $obj->set('country', 'US');
- $obj->save();
-
- $obj = new ParseObject('TestObject');
- $obj->set('name', 'Bob');
- $obj->set('country', 'US');
- $obj->save();
-
- $obj = new ParseObject('TestObject');
- $obj->set('name', 'Joel');
- $obj->set('country', 'CA');
- $obj->save();
-
- $query = new ParseQuery('TestObject');
- $query->ascending(['country', 'name']);
- $results = $query->find(false, false);
-
- $this->assertEquals(3, count($results));
-
- $this->assertEquals('Joel', $results[0]['name']);
- $this->assertEquals('Bob', $results[1]['name']);
- $this->assertEquals('John', $results[2]['name']);
- }
-
- public function testQueryNullResponse()
- {
- $obj = new ParseObject('TestObject');
- $obj->set('name', 'John');
- $obj->set('country', 'US');
- $obj->save();
-
- ParseClient::initialize(
- Helper::$appId,
- Helper::$restKey,
- Helper::$masterKey,
- false,
- );
- ParseClient::setServerURL('http://localhost:1337', 'parse');
-
- $httpClient = new HttpClientMock();
- $httpClient->setResponse('{}');
- ParseClient::setHttpClient($httpClient);
-
- $query = new ParseQuery('TestObject');
- $results = $query->find(false);
-
- $this->assertEquals(0, count($results));
-
- // Reset HttpClient
- Helper::setUp();
- }
-
- /**
- * @group query-set-conditions
- */
- public function testSetConditions()
- {
- $query = new ParseQuery('TestObject');
- $query->_setConditions([
- 'where' => [
- 'key' => 'value'
- ]
- ]);
-
- $this->assertEquals([
- 'where' => [
- 'key' => 'value'
- ]
- ], $query->_getOptions());
- }
-
- /**
- * @group query-set-conditions
- */
- public function testGetAndSetConditions()
- {
- $query = new ParseQuery('TestObject');
- $query->equalTo('key', 'value');
- $query->notEqualTo('key2', 'value2');
- $query->includeKey(['include1','include2']);
- $query->excludeKey(['excludeMe','excludeMeToo']);
- $query->readPreference('PRIMARY', 'SECONDARY', 'SECONDARY_PREFERRED');
- $query->contains('container', 'item');
- $query->addDescending('desc');
- $query->addAscending('asc');
- $query->select(['select1','select2']);
- $query->skip(24);
-
- // sets count = 1
- $query->withCount();
- // reset limit up to 42
- $query->limit(42);
-
- $conditions = $query->_getOptions();
-
- $this->assertEquals([
- 'where' => [
- 'key' => [
- '$eq' => 'value',
- ],
- 'key2' => [
- '$ne' => 'value2',
- ],
- 'container' => [
- '$regex' => '\Qitem\E'
- ]
- ],
- 'include' => 'include1,include2',
- 'excludeKeys' => 'excludeMe,excludeMeToo',
- 'keys' => 'select1,select2',
- 'limit' => 42,
- 'skip' => 24,
- 'order' => '-desc,asc',
- 'count' => 1,
- 'readPreference' => 'PRIMARY',
- 'includeReadPreference' => 'SECONDARY',
- 'subqueryReadPreference' => 'SECONDARY_PREFERRED',
- ], $conditions, 'Conditions were different than expected');
-
- $query2 = new ParseQuery('TestObject');
- $query2->_setConditions($conditions);
-
- $this->assertEquals(
- $query,
- $query2,
- 'Conditions set on query did not give the expected result'
- );
- }
-
- /**
- * @group query-count-conditions
- */
- public function testCountDoesNotOverrideConditions()
- {
- $obj = new ParseObject('TestObject');
- $obj->set('name', 'John');
- $obj->set('country', 'US');
- $obj->save();
-
- $obj = new ParseObject('TestObject');
- $obj->set('name', 'Bob');
- $obj->set('country', 'US');
- $obj->save();
-
- $obj = new ParseObject('TestObject');
- $obj->set('name', 'Mike');
- $obj->set('country', 'CA');
- $obj->save();
-
- $query = new ParseQuery('TestObject');
- $query->equalTo('country', 'US');
- $query->limit(1);
- $count = $query->count();
- $results = $query->find();
-
- $this->assertEquals(1, count($results));
- $this->assertEquals(2, $count);
-
- $this->assertSame([
- 'where' => [
- 'country' => [
- '$eq' => 'US'
- ]
- ],
- 'limit' => 1,
- ], $query->_getOptions());
- }
-
- public function testNotArrayConditions()
- {
- $this->expectException(
- '\Parse\ParseException',
- "Conditions must be in an array"
- );
-
- $query = new ParseQuery('TestObject');
- $query->_setConditions('not-an-array');
- }
-
- /**
- * @group query-set-conditions
- */
- public function testUnknownCondition()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Unknown condition to set'
- );
-
- $query = new ParseQuery('TestObject');
- $query->_setConditions([
- 'unrecognized' => 1
- ]);
- }
-
- /**
- * @group query-equalTo-conditions
- */
- public function testEqualToWithSameKeyDoesNotOverrideOtherConditions()
- {
- $baz = new ParseObject('TestObject');
- $baz->setArray('fooStack', [
- [
- 'status' => 'baz'
- ],
- [
- 'status' => 'bar'
- ]
- ]);
- $baz->save();
-
- $bar = new ParseObject('TestObject');
- $bar->setArray('fooStack', [
- [
- 'status' => 'bar'
- ]
- ]);
- $bar->save();
-
- $qux = new ParseObject('TestObject');
- $qux->setArray('fooStack', [
- [
- 'status' => 'bar',
- ],
- [
- 'status' => 'qux'
- ]
- ]);
- $qux->save();
-
- $query = new ParseQuery('TestObject');
- $query->notEqualTo('fooStack.status', 'baz');
- $query->equalTo('fooStack.status', 'bar');
-
- $this->assertEquals(2, $query->count(true));
-
- $this->assertSame([
- 'where' => [
- 'fooStack.status' => [
- '$ne' => 'baz',
- '$eq' => 'bar',
- ]
- ],
- ], $query->_getOptions());
- }
-}
diff --git a/tests/Parse/ParseRelationOperationTest.php b/tests/Parse/ParseRelationOperationTest.php
deleted file mode 100644
index 86f20a16..00000000
--- a/tests/Parse/ParseRelationOperationTest.php
+++ /dev/null
@@ -1,177 +0,0 @@
-expectException(
- '\Exception',
- 'Cannot create a ParseRelationOperation with no objects.'
- );
- new ParseRelationOperation(null, null);
- }
-
- /**
- * @group parse-relation-op
- */
- public function testMixedClasses()
- {
- $this->expectException(
- '\Exception',
- 'All objects in a relation must be of the same class.'
- );
-
- $objects = [];
- $objects[] = new ParseObject('Class1');
- $objects[] = new ParseObject('Class2');
-
- new ParseRelationOperation($objects, null);
- }
-
- /**
- * @group parse-relation-op
- */
- public function testSingleObjects()
- {
- $addObj = new ParseObject('Class1');
- $addObj->save();
- $delObj = new ParseObject('Class1');
- $delObj->save();
-
- $op = new ParseRelationOperation($addObj, $delObj);
-
- $encoded = $op->_encode();
-
- $this->assertEquals('AddRelation', $encoded['ops'][0]['__op']);
- $this->assertEquals('RemoveRelation', $encoded['ops'][1]['__op']);
-
- ParseObject::destroyAll([$addObj, $delObj]);
- }
-
- /**
- * @group parse-relation-op
- */
- public function testApplyDifferentClassRelation()
- {
- $this->expectException(
- '\Exception',
- 'Related object object must be of class '
- .'Class1, but DifferentClass'
- .' was passed in.'
- );
-
- // create one op
- $addObj = new ParseObject('Class1');
- $relOp1 = new ParseRelationOperation($addObj, null);
-
- $relOp1->_apply(new ParseRelation(null, null, 'DifferentClass'), null, null);
- }
-
- /**
- * @group parse-relation-op
- */
- public function testInvalidApply()
- {
- $this->expectException(
- '\Exception',
- 'Operation is invalid after previous operation.'
- );
- $addObj = new ParseObject('Class1');
- $op = new ParseRelationOperation($addObj, null);
- $op->_apply('bad value', null, null);
- }
-
- /**
- * @group parse-relation-op
- */
- public function testMergeNone()
- {
- $addObj = new ParseObject('Class1');
- $op = new ParseRelationOperation($addObj, null);
- $this->assertEquals($op, $op->_mergeWithPrevious(null));
- }
-
- /**
- * @group parse-relation-op
- */
- public function testMergeDifferentClass()
- {
- $this->expectException(
- '\Exception',
- 'Related object must be of class '
- .'Class1, but AnotherClass'
- .' was passed in.'
- );
-
- $addObj = new ParseObject('Class1');
- $op = new ParseRelationOperation($addObj, null);
-
- $diffObj = new ParseObject('AnotherClass');
- $mergeOp = new ParseRelationOperation($diffObj, null);
-
- $this->assertEquals($op, $op->_mergeWithPrevious($mergeOp));
- }
-
- /**
- * @group parse-relation-op
- */
- public function testInvalidMerge()
- {
- $this->expectException(
- '\Exception',
- 'Operation is invalid after previous operation.'
- );
- $obj = new ParseObject('Class1');
- $op = new ParseRelationOperation($obj, null);
- $op->_mergeWithPrevious('not a relational op');
- }
-
- /**
- * @group parse-relation-op
- */
- public function testRemoveElementsFromArray()
- {
- // test without passing an array
- $array = [
- 'removeThis'
- ];
- ParseRelationOperation::removeElementsFromArray('removeThis', $array);
-
- $this->assertEmpty($array);
- }
-
- /**
- * @group relation-remove-missing-object-id
- */
- public function testRemoveMissingObjectId()
- {
- $obj = new ParseObject('Class1');
- $op = new ParseRelationOperation(null, $obj);
- $op->_mergeWithPrevious(new ParseRelationOperation(null, $obj));
- $this->assertTrue(true);
- }
-}
diff --git a/tests/Parse/ParseRelationTest.php b/tests/Parse/ParseRelationTest.php
deleted file mode 100644
index bcff4049..00000000
--- a/tests/Parse/ParseRelationTest.php
+++ /dev/null
@@ -1,224 +0,0 @@
-saveObjects(
- 10,
- function ($i) use (&$children) {
- $child = ParseObject::create('ChildObject');
- $child->set('x', $i);
- $children[] = $child;
-
- return $child;
- }
- );
- $parent = ParseObject::create('ParentObject');
- $relation = $parent->getRelation('children');
- $relation->add($children[0]);
- $parent->set('foo', 1);
- $parent->save();
-
- $results = $relation->getQuery()->find();
- $this->assertEquals(1, count($results));
- $this->assertEquals($children[0]->getObjectId(), $results[0]->getObjectId());
- $this->assertFalse($parent->isDirty());
-
- $parentAgain = (new ParseQuery('ParentObject'))->get($parent->getObjectId());
- $relationAgain = $parentAgain->get('children');
- $this->assertNotNull($relationAgain, 'Error');
-
- $results = $relation->getQuery()->find();
- $this->assertEquals(1, count($results));
- $this->assertEquals($children[0]->getObjectId(), $results[0]->getObjectId());
-
- $relation->remove($children[0]);
- $relation->add([$children[4], $children[5]]);
- $parent->set('bar', 3);
- $parent->save();
-
- $results = $relation->getQuery()->find();
- $this->assertEquals(2, count($results));
- $this->assertFalse($parent->isDirty());
-
- $relation->remove($children[5]);
- $relation->add(
- [
- $children[5],
- $children[6],
- $children[7],
- $children[8],
- ]
- );
- $parent->save();
-
- $results = $relation->getQuery()->find();
- $this->assertEquals(5, count($results));
- $this->assertFalse($parent->isDirty());
-
- $relation->remove($children[8]);
- $parent->save();
- $results = $relation->getQuery()->find();
- $this->assertEquals(4, count($results));
- $this->assertFalse($parent->isDirty());
-
- $query = $relation->getQuery();
- $query->lessThan('x', 5);
- $results = $query->find();
- $this->assertEquals(1, count($results));
- $this->assertEquals($children[4]->getObjectId(), $results[0]->getObjectId());
- }
-
- public function testQueriesOnRelationFields()
- {
- $children = [];
- $this->saveObjects(
- 10,
- function ($i) use (&$children) {
- $child = ParseObject::create('ChildObject');
- $child->set('x', $i);
- $children[] = $child;
-
- return $child;
- }
- );
-
- $parent = ParseObject::create('ParentObject');
- $parent->set('x', 4);
- $relation = $parent->getRelation('children');
- $relation->add(
- [
- $children[0],
- $children[1],
- $children[2],
- ]
- );
- $parent->save();
- $parent2 = ParseObject::create('ParentObject');
- $parent2->set('x', 3);
- $relation2 = $parent2->getRelation('children');
- $relation2->add(
- [
- $children[4],
- $children[5],
- $children[6],
- ]
- );
- $parent2->save();
- $query = new ParseQuery('ParentObject');
- $query->containedIn('children', [$children[4], $children[9]]);
- $results = $query->find();
- $this->assertEquals(1, count($results));
- $this->assertEquals($results[0]->getObjectId(), $parent2->getObjectId());
- }
-
- /**
- * @group relation-parent-set
- */
- public function testSwitchingParent()
- {
- // setup parent 1
- $parent1 = new ParseObject('ParentObject');
- $relation = $parent1->getRelation('children');
-
- $child1 = new ParseObject('ChildObject');
- $child1->set('name', 'child1');
- $child1->save();
-
- $child2 = new ParseObject('ChildObject');
- $child2->set('name', 'child2');
- $child2->save();
- $relation->add([$child1, $child2]);
- $parent1->save();
-
- // setup parent 2
- $parent2 = new ParseObject('ParentObject');
- $relation = $parent2->getRelation('children');
-
- $child = new ParseObject('ChildObject');
- $child->set('name', 'child3');
- $child->save();
- $relation->add([$child]);
- $parent2->save();
-
- // get relation for parent one
- $relation = $parent1->getRelation('children');
-
- // switch parent to parent 2
- $relation->setParent($parent2);
-
- // get query for parent 2 instead now
- $query = $relation->getQuery();
- $children = $query->find();
-
- $this->assertEquals(1, count($children));
- $this->assertEquals('child3', $children[0]->get('name'));
- }
-
- /**
- * Verifies bi directional relations can be saved when an array of pointers is used and is in dirty state
- * @author zeliard91
- * @group bidir-test
- */
- public function testBiDirectionalRelations()
- {
- Helper::clearClass('BiParent');
- Helper::clearClass('BiChild');
-
- $parent = new ParseObject('BiParent');
-
- $child = new ParseObject('BiChild');
- $child->set('name', 'Child');
- $child->set('parent', $parent);
-
- $child->save();
- $parent->save();
-
- $child2 = new ParseObject('BiChild');
- $child2->set('name', 'Child 2');
- $child2->set('parent', $parent);
-
- $parent->setArray('children', [$child, $child2]);
-
- $child2->save();
- $parent->save();
- $this->assertEquals($parent->get('children'), [$child, $child2]);
- $this->assertEquals($child->get('parent'), $parent);
- $this->assertEquals($child2->get('parent'), $parent);
- }
-}
diff --git a/tests/Parse/ParseRoleTest.php b/tests/Parse/ParseRoleTest.php
deleted file mode 100644
index 09d2c5fc..00000000
--- a/tests/Parse/ParseRoleTest.php
+++ /dev/null
@@ -1,278 +0,0 @@
-aclPublic());
- $role->save();
- $this->assertNotNull($role->getObjectId(), 'Role should have objectId.');
- }
-
- public function testRoleWithoutACLFails()
- {
- $role = new ParseRole();
- $role->setName('Admin');
- $this->expectException('Parse\ParseException', 'ACL');
- $role->save();
- }
-
- public function testNameValidation()
- {
- $role = ParseRole::createRole('Admin', $this->aclPublic());
- $this->assertEquals('Admin', $role->getName());
- $role->setName('Superuser');
- $this->assertEquals('Superuser', $role->getName());
- $role->setName('Super-Users');
- $this->assertEquals('Super-Users', $role->getName());
- $role->setName('A1234');
- $this->assertEquals('A1234', $role->getName());
- $role->save();
- $this->expectException('Parse\ParseException', 'has been saved');
- $role->setName('Moderators');
- }
-
- public function testGetCreatedRole()
- {
- $role = ParseRole::createRole('Admin', $this->aclPublic());
- $role->save();
- $query = ParseRole::query();
- $obj = $query->get($role->getObjectId());
- $this->assertTrue($obj instanceof ParseRole);
- $this->assertEquals($role->getObjectId(), $obj->getObjectId());
- }
-
- public function testFindRolesByName()
- {
- $admin = ParseRole::createRole('Admin', $this->aclPublic());
- $mod = ParseRole::createRole('Moderator', $this->aclPublic());
- ParseObject::saveAll([$admin, $mod]);
- $query1 = ParseRole::query();
- $query1->equalTo('name', 'Admin');
- $this->assertEquals(1, $query1->count(), 'Count should be 1.');
- $query2 = ParseRole::query();
- $query2->equalTo('name', 'Moderator');
- $this->assertEquals(1, $query2->count(), 'Count should be 1.');
- $query3 = ParseRole::query();
- $this->assertEquals(2, $query3->count());
- }
-
- /**
- * @group role-name-duplicate
- */
- public function testRoleNameUnique()
- {
- $role = ParseRole::createRole('Admin', $this->aclPublic());
- $role->save();
- $role2 = ParseRole::createRole('Admin', $this->aclPublic());
- $this->expectException(
- 'Parse\ParseException',
- "Cannot add duplicate role name of 'Admin'"
- );
- $role2->save();
- }
-
- /**
- * @group explicit-role-acl
- */
- public function testExplicitRoleACL()
- {
- $eden = $this->createEden();
-
- // verify adam can get the apple
- ParseUser::logIn('adam', 'adam');
- $query = new ParseQuery('Things');
- $query->get($eden['apple']->getObjectId());
-
- // verify eve can get the apple
- ParseUser::logIn('eve', 'eve');
- $query->get($eden['apple']->getObjectId());
-
- // verify the snake cannot get the apple
- ParseUser::logIn('snake', 'snake');
- $this->expectException('Parse\ParseException', 'not found');
- $query->get($eden['apple']->getObjectId());
- }
-
- public function testRoleHierarchyAndPropagation()
- {
- $eden = $this->createEden();
-
- // verify adam can enter the garden
- ParseUser::logIn('adam', 'adam');
- $query = new ParseQuery('Things');
- $query->get($eden['garden']->getObjectId());
-
- // verify adam can enter the garden
- ParseUser::logIn('eve', 'eve');
- $query->get($eden['garden']->getObjectId());
-
- // verify the snake can enter the garden
- ParseUser::logIn('snake', 'snake');
- $query->get($eden['garden']->getObjectId());
-
- // make it so humans can no longer enter the garden
- $eden['edenkin']->getRoles()->remove($eden['humans']);
- $eden['edenkin']->save();
-
- // verify adam can no longer enter the garden
- ParseUser::logIn('adam', 'adam');
- try {
- $query->get($eden['garden']->getObjectId());
- $this->fail('Get should have failed.');
- } catch (ParseException $ex) {
- if ($ex->getMessage() != 'Object not found.') {
- throw $ex;
- }
- }
-
- // verify eve can no longer enter the garden
- ParseUser::logIn('eve', 'eve');
- try {
- $query->get($eden['garden']->getObjectId());
- $this->fail('Get should have failed.');
- } catch (ParseException $ex) {
- if ($ex->getMessage() != 'Object not found.') {
- throw $ex;
- }
- }
-
- // verify the snake can still enter the garden
- ParseUser::logIn('snake', 'snake');
- $garden = $query->get($eden['garden']->getObjectId());
- $this->assertEquals($garden->getObjectId(), $eden['garden']->getObjectId());
- ParseUser::logOut();
- }
-
- public function testAddUserAfterFetch()
- {
- $user = new ParseUser();
- $user->setUsername('bob');
- $user->setPassword('barker');
- $user->signUp();
- $role = ParseRole::createRole('MyRole', ParseACL::createACLWithUser($user));
- $role->save();
- $query = ParseRole::query();
- $roleAgain = $query->get($role->getObjectId());
- $roleAgain->getUsers()->add($user);
- $roleAgain->save();
- $users = $roleAgain->getUsers()->getQuery()->find();
- $this->assertEquals($user->getObjectId(), $users[0]->getObjectId());
- ParseUser::logOut();
- }
-
- public function aclPrivateTo($someone)
- {
- $acl = new ParseACL();
- $acl->setReadAccess($someone, true);
- $acl->setWriteAccess($someone, true);
-
- return $acl;
- }
-
- public function aclPublic()
- {
- $acl = new ParseACL();
- $acl->setPublicReadAccess(true);
- $acl->setPublicWriteAccess(true);
-
- return $acl;
- }
-
- public function createUser($username)
- {
- $user = new ParseUser();
- $user->setUsername($username);
- $user->setPassword($username);
-
- return $user;
- }
-
- public function createEden()
- {
- $eden = [];
- $eden['adam'] = $this->createUser('adam');
- $eden['eve'] = $this->createUser('eve');
- $eden['snake'] = $this->createUser('snake');
- $eden['adam']->signUp();
- $eden['eve']->signUp();
- $eden['snake']->signUp();
- $eden['humans'] = ParseRole::createRole('humans', $this->aclPublic());
- $eden['humans']->getUsers()->add($eden['adam']);
- $eden['humans']->getUsers()->add($eden['eve']);
- $eden['creatures'] = ParseRole::createRole(
- 'creatures',
- $this->aclPublic()
- );
- $eden['creatures']->getUsers()->add($eden['snake']);
- ParseObject::saveAll([$eden['humans'], $eden['creatures']]);
- $eden['edenkin'] = ParseRole::createRole('edenkin', $this->aclPublic());
- $eden['edenkin']->getRoles()->add($eden['humans']);
- $eden['edenkin']->getRoles()->add($eden['creatures']);
- $eden['edenkin']->save();
-
- $eden['apple'] = ParseObject::create('Things');
- $eden['apple']->set('name', 'apple');
- $eden['apple']->set('ACL', $this->aclPrivateTo($eden['humans']));
-
- $eden['garden'] = ParseObject::create('Things');
- $eden['garden']->set('name', 'garden');
- $eden['garden']->set('ACL', $this->aclPrivateTo($eden['edenkin']));
-
- ParseObject::saveAll([$eden['apple'], $eden['garden']]);
-
- return $eden;
- }
-
- public function testSettingNonStringAsName()
- {
- $this->expectException(
- '\Parse\ParseException',
- "A role's name must be a string."
- );
- $role = new ParseRole();
- $role->setName(12345);
- }
-
- /**
- * @group role-save-noname
- */
- public function testSavingWithoutName()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Roles must have a name.'
- );
- $role = new ParseRole();
- $role->setACL(new ParseACL());
- $role->save();
- }
-}
diff --git a/tests/Parse/ParseSchemaTest.php b/tests/Parse/ParseSchemaTest.php
deleted file mode 100644
index 24a3fbe2..00000000
--- a/tests/Parse/ParseSchemaTest.php
+++ /dev/null
@@ -1,539 +0,0 @@
-
- */
-namespace Parse\Test;
-
-use Parse\HttpClients\ParseCurlHttpClient;
-use Parse\HttpClients\ParseStreamHttpClient;
-use Parse\ParseClient;
-use Parse\ParseException;
-use Parse\ParseObject;
-use Parse\ParseQuery;
-use Parse\ParseSchema;
-use Parse\ParseUser;
-
-use PHPUnit\Framework\TestCase;
-
-class ParseSchemaTest extends TestCase
-{
- /**
- * @var ParseSchema
- */
- private static $schema;
-
- /**
- * @var string
- */
- private static $badClassName = "";
-
- public static function setUpBeforeClass() : void
- {
- Helper::setUp();
- }
-
- public function setup() : void
- {
- self::$schema = new ParseSchema('SchemaTest');
- Helper::clearClass('_User');
- Helper::setHttpClient();
- }
-
- public function tearDown() : void
- {
- Helper::tearDown();
- self::$schema->delete();
-
- ParseUser::logOut();
- }
-
- public function testSaveSchema()
- {
- $schema = self::$schema;
-
- $schema->save();
-
- $this->assertEquals('SchemaTest', $schema->get()['className']);
- }
-
- public function testGetFieldsSchema()
- {
- self::createFieldsOfSchema();
-
- // get schema
- $getSchema = new ParseSchema('SchemaTest');
- $result = $getSchema->get();
-
- $this->assertEquals(ParseSchema::$STRING, $result['fields']['defaultFieldString']['type']);
- $this->assertEquals(ParseSchema::$STRING, $result['fields']['stringField']['type']);
- $this->assertEquals(ParseSchema::$NUMBER, $result['fields']['numberField']['type']);
- $this->assertEquals(ParseSchema::$BOOLEAN, $result['fields']['booleanField']['type']);
- $this->assertEquals(ParseSchema::$DATE, $result['fields']['dateField']['type']);
- $this->assertEquals(ParseSchema::$FILE, $result['fields']['fileField']['type']);
- $this->assertEquals(ParseSchema::$GEO_POINT, $result['fields']['geoPointField']['type']);
- $this->assertEquals(ParseSchema::$POLYGON, $result['fields']['polygonField']['type']);
- $this->assertEquals(ParseSchema::$ARRAY, $result['fields']['arrayField']['type']);
- $this->assertEquals(ParseSchema::$OBJECT, $result['fields']['objectField']['type']);
- $this->assertEquals(ParseSchema::$POINTER, $result['fields']['pointerField']['type']);
- $this->assertEquals(ParseSchema::$RELATION, $result['fields']['relationField']['type']);
- }
-
- private static function createFieldsOfSchema()
- {
- $schema = self::$schema;
- // add fields
- $schema
- ->addField('defaultFieldString')
- ->addString('stringField')
- ->addNumber('numberField')
- ->addBoolean('booleanField')
- ->addDate('dateField')
- ->addFile('fileField')
- ->addGeoPoint('geoPointField')
- ->addPolygon('polygonField')
- ->addArray('arrayField')
- ->addObject('objectField')
- ->addPointer('pointerField', '_User')
- ->addRelation('relationField', '_User');
- // save schema
- $schema->save();
- }
-
- public function testAllSchema()
- {
- $schema_1 = new ParseSchema('SchemaTest_1');
- $schema_2 = new ParseSchema('SchemaTest_2');
- $schema_1->save();
- $schema_2->save();
-
- $schemas = new ParseSchema();
- $results = $schemas->all();
-
- $this->assertGreaterThanOrEqual(2, count($results));
-
- $schema_1->delete();
- $schema_2->delete();
- }
-
- public function testAllSchemaWithUserLoggedIn()
- {
- $user = new ParseUser();
- $user->setUsername('schema-user');
- $user->setPassword('basicpassword');
- $user->signUp();
-
- $schema_1 = new ParseSchema('SchemaTest_1');
- $schema_2 = new ParseSchema('SchemaTest_2');
- $schema_1->save();
- $schema_2->save();
-
- $schemas = new ParseSchema();
- $results = $schemas->all();
-
- $this->assertGreaterThanOrEqual(2, count($results));
-
- $schema_1->delete();
- $schema_2->delete();
- }
-
- public function testUpdateSchemaStream()
- {
- ParseClient::setHttpClient(new ParseStreamHttpClient());
-
- // create
- $schema = self::$schema;
- $schema->addString('name');
- $schema->save();
- // update
- $schema->deleteField('name');
- $schema->addNumber('quantity');
- $schema->addField('status', 'Boolean');
- $schema->update();
- // get
- $getSchema = new ParseSchema('SchemaTest');
- $result = $getSchema->get();
-
- if (isset($result['fields']['name'])) {
- $this->fail('Field not deleted in update action');
- }
- $this->assertNotNull($result['fields']['quantity']);
- $this->assertNotNull($result['fields']['status']);
- }
-
- public function testUpdateSchemaCurl()
- {
- if (function_exists('curl_init')) {
- ParseClient::setHttpClient(new ParseCurlHttpClient());
-
- // create
- $schema = self::$schema;
- $schema->addString('name');
- $schema->save();
- // update
- $schema->deleteField('name');
- $schema->addNumber('quantity');
- $schema->addField('status', 'Boolean');
- $schema->update();
- // get
- $getSchema = new ParseSchema('SchemaTest');
- $result = $getSchema->get();
-
- if (isset($result['fields']['name'])) {
- $this->fail('Field not deleted in update action');
- }
- $this->assertNotNull($result['fields']['quantity']);
- $this->assertNotNull($result['fields']['status']);
- }
- }
-
- public function testUpdateMultipleNoDuplicateFields()
- {
- $schema = self::$schema;
- $schema->save();
- $schema->addString('name');
- $schema->update();
-
- $getSchema = new ParseSchema('SchemaTest');
- $result = $getSchema->get();
- $this->assertEquals(count($result['fields']), 5);
-
- $schema->update();
-
- $getSchema = new ParseSchema('SchemaTest');
- $result = $getSchema->get();
- $this->assertEquals(count($result['fields']), 5);
- }
-
- public function testUpdateWrongFieldType()
- {
- $this->expectException('Exception', 'WrongType is not a valid type.');
-
- $schema = new ParseSchema();
- $schema->addField('NewTestField', 'WrongType');
- $schema->update();
- }
-
- /**
- * @group schema-purge
- */
- public function testPurgeSchema()
- {
- // get a handle to this schema
- $schema = new ParseSchema('SchemaTest');
-
- // create an object in this schema
- $obj = new ParseObject('SchemaTest');
- $obj->set('field', 'the_one_and_only');
- $obj->save();
-
- // attempt to delete this schema (expecting to fail)
- try {
- $schema->delete();
- $this->assertTrue(false, 'Did not fail on delete as expected');
- } catch (ParseException $pe) {
- $this->assertEquals(
- 'Class SchemaTest is not empty, contains 1 objects, cannot drop schema.',
- $pe->getMessage()
- );
- }
-
- // purge this schema
- $schema->purge();
-
- // verify no more objects are present
- $query = new ParseQuery('SchemaTest');
- $this->assertEquals(0, $query->count());
-
- // delete again
- $schema->delete();
- }
-
- /**
- * @group schema-purge
- */
- public function testPurgingNonexistentSchema()
- {
- try {
- $schema = new ParseSchema('NotARealSchema');
- $schema->purge();
- } catch (\Exception $e) {
- // exception on earlier versions > 2.8, no exception on >= 2.8
- // thus hard to test for this unless version detection is utilized here
- }
- $this->assertTrue(true);
- }
-
- public function testDeleteSchema()
- {
- $createSchema = new ParseSchema('SchemaDeleteTest');
- $createSchema->addField('newField01');
- $createSchema->save();
-
- $deleteSchema = new ParseSchema('SchemaDeleteTest');
- $deleteSchema->delete();
-
- $getSchema = new ParseSchema('SchemaDeleteTest');
- $this->expectException(
- 'Parse\ParseException',
- 'Class SchemaDeleteTest does not exist.'
- );
- $getSchema->get();
- }
-
- public function testAssertClassName()
- {
- $schema = new ParseSchema();
- $this->expectException('\Exception', 'You must set a Class Name before making any request.');
- $schema->assertClassName();
- }
-
- public function testFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addField(null, '_Type');
- }
-
- public function testStringFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addString();
- }
-
- public function testNumberFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addNumber();
- }
-
- public function testBooleanFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addBoolean();
- }
-
- public function testDateFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addDate();
- }
-
- public function testFileFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addFile();
- }
-
- public function testGeoPointFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addGeoPoint();
- }
-
- public function testPolygonFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addPolygon();
- }
-
- public function testArrayFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addArray();
- }
-
- public function testObjectFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addObject();
- }
-
- public function testPointFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addPointer(null, '_Type');
- }
-
- public function testRelationFieldNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'field name may not be null.');
- $schema->addRelation(null, '_Type');
- }
-
- public function testPointerTargetClassException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'You need to set the targetClass of the Pointer.');
- $schema->addPointer('field', null);
- }
-
- public function testRelationTargetClassException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'You need to set the targetClass of the Relation.');
- $schema->addRelation('field', null);
- }
-
- public function testTypeNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'Type name may not be null.');
- $schema->addField('field', null);
- }
-
- public function testSchemaNotExistException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'Class SchemaTest does not exist');
- $schema->get();
- }
-
- public function testInvalidTypeException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'StringFormatter is not a valid type.');
- $schema->assertTypes('StringFormatter');
- }
-
- /**
- * @group schema-test-errors
- */
- public function testBadSchemaGet()
- {
- $this->expectException('\Parse\ParseException');
-
- $user = new ParseUser();
- $user->setUsername('schema-user');
- $user->setPassword('basicpassword');
- $user->signUp();
-
- $schema = new ParseSchema(self::$badClassName);
- $schema->get();
- }
-
- /**
- * @group schema-test-errors
- */
- public function testBadSchemaSave()
- {
- $this->expectException('\Exception');
-
- $user = new ParseUser();
- $user->setUsername('schema-user');
- $user->setPassword('basicpassword');
- $user->signUp();
-
- $schema = new ParseSchema(self::$badClassName);
- $schema->save();
- }
-
- /**
- * @group schema-test-errors
- */
- public function testBadSchemaUpdate()
- {
- $this->expectException('\Exception');
-
- $user = new ParseUser();
- $user->setUsername('schema-user');
- $user->setPassword('basicpassword');
- $user->signUp();
-
- $schema = new ParseSchema(self::$badClassName);
- $schema->update();
- }
-
- /**
- * @group schema-test-errors
- */
- public function testBadSchemaDelete()
- {
- $this->markTestSkipped('Curl is not sending the request and does not complain.');
-
- $this->expectException('\Parse\ParseException');
-
- $user = new ParseUser();
- $user->setUsername('schema-user');
- $user->setPassword('basicpassword');
- $user->signUp();
- $schema = new ParseSchema(self::$badClassName);
- $schema->delete();
- }
-
- public function testCreateIndexSchema()
- {
- $schema = self::$schema;
- $schema->addString('name');
- $index = [ 'name' => 1 ];
- $schema->addIndex('test_index', $index);
- $schema->save();
-
- $getSchema = new ParseSchema('SchemaTest');
- $result = $getSchema->get();
- $this->assertNotNull($result['indexes']['test_index']);
- }
-
- public function testUpdateIndexSchema()
- {
- $schema = self::$schema;
- $schema->save();
- $schema->addString('name');
- $index = [ 'name' => 1 ];
- $schema->addIndex('test_index', $index);
- $schema->update();
-
- $getSchema = new ParseSchema('SchemaTest');
- $result = $getSchema->get();
- $this->assertNotNull($result['indexes']['test_index']);
- }
-
- public function testDeleteIndexSchema()
- {
- $schema = self::$schema;
- $schema->save();
- $schema->addString('name');
- $index = [ 'name' => 1 ];
- $schema->addIndex('test_index', $index);
- $schema->update();
-
- $getSchema = new ParseSchema('SchemaTest');
- $result = $getSchema->get();
- $this->assertNotNull($result['indexes']['test_index']);
-
- $schema->deleteIndex('test_index');
- $schema->update();
- $result = $getSchema->get();
- $this->assertEquals(array_key_exists('text_index', $result['indexes']), false);
- }
-
- public function testIndexNameException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'index name may not be null.');
- $schema->addIndex(null, null);
- }
-
- public function testIndexException()
- {
- $schema = self::$schema;
- $this->expectException('\Exception', 'index may not be null.');
- $schema->addIndex('name', null);
- }
-}
diff --git a/tests/Parse/ParseServerInfoTest.php b/tests/Parse/ParseServerInfoTest.php
deleted file mode 100644
index 69f34482..00000000
--- a/tests/Parse/ParseServerInfoTest.php
+++ /dev/null
@@ -1,184 +0,0 @@
-assertNotNull($logs);
- }
-
- public function testGetFeatures()
- {
- $features = ParseServerInfo::getFeatures();
- $this->assertNotEmpty($features);
- }
-
- /**
- * @group test-get-version
- */
- public function testGetVersion()
- {
- ParseServerInfo::_setServerVersion(null);
- $version = ParseServerInfo::getVersion();
- $this->assertNotNull($version);
- }
-
- public function testSetVersion()
- {
- /**
- * Tests setting the version.
- * /health may return the version in the future as well.
- * Rather than fetch that information again we can always have the option
- * to set it from wherever we happen to get it.
- */
- $version = '1.2.3';
- ParseServerInfo::_setServerVersion($version);
- $this->assertEquals($version, ParseServerInfo::getVersion());
- }
-
- /**
- * @group server-info-missing-features
- */
- public function testMissingFeatures()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Missing features in server info.'
- );
-
- $httpClient = ParseClient::getHttpClient();
-
- // create a mock of the current http client
- $stubClient = $this->getMockBuilder(get_class($httpClient))
- ->getMock();
-
- // stub the response type to return
- // something we will try to work with
- $stubClient
- ->method('getResponseContentType')
- ->willReturn('application/octet-stream');
-
- $stubClient
- ->method('send')
- ->willReturn(json_encode([
- 'empty' => true
- ]));
-
- // replace the client with our stub
- ParseClient::setHttpClient($stubClient);
-
- ParseServerInfo::_setServerVersion(null);
- ParseServerInfo::getFeatures();
- }
-
- /**
- * @group server-info-missing-version
- */
- public function testMissingVersion()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Missing version in server info.'
- );
-
- $httpClient = ParseClient::getHttpClient();
-
- // create a mock of the current http client
- $stubClient = $this->getMockBuilder(get_class($httpClient))
- ->getMock();
-
- // stub the response type to return
- // something we will try to work with
- $stubClient
- ->method('getResponseContentType')
- ->willReturn('application/octet-stream');
-
- $stubClient
- ->method('send')
- ->willReturn(json_encode([
- 'features' => []
- ]));
-
- // replace the client with our stub
- ParseClient::setHttpClient($stubClient);
-
- ParseServerInfo::_setServerVersion(null);
- ParseServerInfo::getFeatures();
- }
-
- public function testGlobalConfigFeatures()
- {
- $globalConfigFeatures = ParseServerInfo::getGlobalConfigFeatures();
- $this->assertTrue(isset($globalConfigFeatures['create']));
- $this->assertTrue(isset($globalConfigFeatures['read']));
- $this->assertTrue(isset($globalConfigFeatures['update']));
- $this->assertTrue(isset($globalConfigFeatures['delete']));
- }
-
- public function testHooksFeatures()
- {
- $hooksFeatures = ParseServerInfo::getHooksFeatures();
- $this->assertTrue(isset($hooksFeatures['create']));
- $this->assertTrue(isset($hooksFeatures['read']));
- $this->assertTrue(isset($hooksFeatures['update']));
- $this->assertTrue(isset($hooksFeatures['delete']));
- }
-
- public function testCloudCodeFeatures()
- {
- $cloudCodeFeatures = ParseServerInfo::getCloudCodeFeatures();
- $this->assertTrue($cloudCodeFeatures['jobs']);
- }
-
- public function testLogsFeatures()
- {
- $logsFeatures = ParseServerInfo::getLogsFeatures();
- $this->assertTrue(isset($logsFeatures['level']));
- $this->assertTrue(isset($logsFeatures['size']));
- $this->assertTrue(isset($logsFeatures['order']));
- $this->assertTrue(isset($logsFeatures['until']));
- $this->assertTrue(isset($logsFeatures['from']));
- }
-
- public function testPushFeatures()
- {
- $pushFeatures = ParseServerInfo::getPushFeatures();
-
- // these may change depending on the server being tested against
- $this->assertTrue(isset($pushFeatures['immediatePush']));
- $this->assertTrue(isset($pushFeatures['scheduledPush']));
- $this->assertTrue(isset($pushFeatures['storedPushData']));
-
- $this->assertTrue(isset($pushFeatures['pushAudiences']));
- $this->assertTrue(isset($pushFeatures['localization']));
- }
-
- public function testSchemasFeatures()
- {
- $schemasFeatures = ParseServerInfo::getSchemasFeatures();
- $this->assertTrue(isset($schemasFeatures['addField']));
- $this->assertTrue(isset($schemasFeatures['removeField']));
- $this->assertTrue(isset($schemasFeatures['addClass']));
- $this->assertTrue(isset($schemasFeatures['removeClass']));
- $this->assertTrue(isset($schemasFeatures['clearAllDataFromClass']));
- $this->assertTrue(isset($schemasFeatures['exportClass']));
- $this->assertTrue(isset($schemasFeatures['editClassLevelPermissions']));
- $this->assertTrue(isset($schemasFeatures['editPointerPermissions']));
- }
-}
diff --git a/tests/Parse/ParseSessionFixationTest.php b/tests/Parse/ParseSessionFixationTest.php
deleted file mode 100644
index 8a77a678..00000000
--- a/tests/Parse/ParseSessionFixationTest.php
+++ /dev/null
@@ -1,68 +0,0 @@
-set('test', 'hi');
- $noUserSessionId = session_id();
- $user = ParseUser::loginWithAnonymous();
- $anonymousSessionId = session_id();
- $this->assertNotEquals($noUserSessionId, $anonymousSessionId);
- $this->assertEquals(ParseClient::getStorage()->get('test'), 'hi');
- }
-
- public function testCookieIdChangedForAnonymousToRegistered()
- {
- $user = ParseUser::loginWithAnonymous();
- $anonymousSessionId = session_id();
- ParseClient::getStorage()->set('test', 'hi');
- $user->setUsername('testy');
- $user->setPassword('testy');
- $user->save();
- $user->login('testy', 'testy');
- $registeredSessionId = session_id();
- $this->assertNotEquals($anonymousSessionId, $registeredSessionId);
- $this->assertEquals(ParseClient::getStorage()->get('test'), 'hi');
- }
-}
diff --git a/tests/Parse/ParseSessionStorageAltTest.php b/tests/Parse/ParseSessionStorageAltTest.php
deleted file mode 100644
index 9913c0f2..00000000
--- a/tests/Parse/ParseSessionStorageAltTest.php
+++ /dev/null
@@ -1,25 +0,0 @@
-expectException(
- '\Parse\ParseException',
- 'PHP session_start() must be called first.'
- );
- new ParseSessionStorage();
- }
-}
diff --git a/tests/Parse/ParseSessionStorageTest.php b/tests/Parse/ParseSessionStorageTest.php
deleted file mode 100644
index 2047099c..00000000
--- a/tests/Parse/ParseSessionStorageTest.php
+++ /dev/null
@@ -1,105 +0,0 @@
-clear();
- }
-
- public static function tearDownAfterClass() : void
- {
- @session_destroy();
- }
-
- public function testIsUsingParseSession()
- {
- $this->assertTrue(self::$parseStorage instanceof ParseSessionStorage);
- }
-
- public function testSetAndGet()
- {
- self::$parseStorage->set('foo', 'bar');
- $this->assertEquals('bar', self::$parseStorage->get('foo'));
- }
-
- public function testRemove()
- {
- self::$parseStorage->set('foo', 'bar');
- self::$parseStorage->remove('foo');
- $this->assertNull(self::$parseStorage->get('foo'));
- }
-
- public function testClear()
- {
- self::$parseStorage->set('foo', 'bar');
- self::$parseStorage->set('foo2', 'bar');
- self::$parseStorage->set('foo3', 'bar');
- self::$parseStorage->clear();
- $this->assertEmpty(self::$parseStorage->getKeys());
- }
-
- public function testGetAll()
- {
- self::$parseStorage->set('foo', 'bar');
- self::$parseStorage->set('foo2', 'bar');
- self::$parseStorage->set('foo3', 'bar');
- $result = self::$parseStorage->getAll();
- $this->assertEquals('bar', $result['foo']);
- $this->assertEquals('bar', $result['foo2']);
- $this->assertEquals('bar', $result['foo3']);
- $this->assertEquals(3, count($result));
- }
-
- public function testSave()
- {
- // does nothing
- self::$parseStorage->save();
- $this->assertTrue(true);
- }
-
- /**
- * @group session-recreate-storage
- */
- public function testRecreatingSessionStorage()
- {
- unset($_SESSION['parseData']);
-
- $this->assertFalse(isset($_SESSION['parseData']));
-
- new ParseSessionStorage();
-
- $this->assertEmpty($_SESSION['parseData']);
- }
-}
diff --git a/tests/Parse/ParseSessionTest.php b/tests/Parse/ParseSessionTest.php
deleted file mode 100644
index fc383dee..00000000
--- a/tests/Parse/ParseSessionTest.php
+++ /dev/null
@@ -1,94 +0,0 @@
-setUsername('username');
- $user->setPassword('password');
- $user->signUp();
- $session = ParseSession::getCurrentSession();
- $this->assertEquals($user->getSessionToken(), $session->getSessionToken());
- $this->assertTrue($session->isCurrentSessionRevocable());
-
- ParseUser::logOut();
-
- $this->assertFalse(ParseSession::isCurrentSessionRevocable());
-
- ParseUser::logIn('username', 'password');
- $session = ParseSession::getCurrentSession();
- $this->assertEquals(ParseUser::getCurrentUser()->getSessionToken(), $session->getSessionToken());
- $this->assertTrue($session->isCurrentSessionRevocable());
-
- $sessionToken = $session->getSessionToken();
-
- ParseUser::logOut();
-
- $this->expectException('Parse\ParseException', 'Invalid session token');
- ParseUser::become($sessionToken);
- }
-
- /**
- * @group upgrade-to-revocable-session
- */
- public function testUpgradeToRevocableSession()
- {
- $user = new ParseUser();
- $user->setUsername('revocable_username');
- $user->setPassword('revocable_password');
- $user->signUp();
-
- $session = ParseSession::getCurrentSession();
- $this->assertEquals($user->getSessionToken(), $session->getSessionToken());
-
- // upgrade the current session (changes our session as well)
- ParseSession::upgradeToRevocableSession();
-
- // verify that our session has changed, and our updated current user matches it
- $session = ParseSession::getCurrentSession();
- $user = ParseUser::getCurrentUser();
- $this->assertEquals($user->getSessionToken(), $session->getSessionToken());
- $this->assertTrue($session->isCurrentSessionRevocable());
- }
-
- /**
- * @group upgrade-to-revocable-session
- */
- public function testBadUpgradeToRevocableSession()
- {
- // upgrade the current session (changes our session as well)
- $this->expectException('Parse\ParseException', 'No session to upgrade.');
- ParseSession::upgradeToRevocableSession();
- }
-}
diff --git a/tests/Parse/ParseStreamHttpClientTest.php b/tests/Parse/ParseStreamHttpClientTest.php
deleted file mode 100644
index 03b4ca5b..00000000
--- a/tests/Parse/ParseStreamHttpClientTest.php
+++ /dev/null
@@ -1,65 +0,0 @@
-send('https://example.org');
-
- // get response code
- $this->assertEquals(200, $client->getResponseStatusCode());
-
- // get response headers
- $headers = $client->getResponseHeaders();
-
- $this->assertTrue(preg_match('|HTTP/1\.\d\s200\sOK|', $headers['http_code']) === 1);
- }
-
- public function testInvalidUrl()
- {
- $url = 'http://example.com/lots of spaces here';
-
- $this->expectException(
- '\Parse\ParseException',
- 'Url may not contain spaces for stream client: '
- .$url
- );
-
- $client = new ParseStreamHttpClient();
- $client->send($url);
- }
-
- /**
- * @group test-stream-context-error
- */
- public function testStreamContextError()
- {
- $client = $this->getMockBuilder(ParseStream::class)
- ->onlyMethods(['getFileContents'])
- ->getMock();
-
- $client->expects($this->once())
- ->method('getFileContents')
- ->willThrowException(new ParseException('Cannot retrieve data.', 1));
-
- $client->get('https://example.org');
-
- $this->assertEquals('Cannot retrieve data.', $client->getErrorMessage());
- $this->assertEquals('1', $client->getErrorCode());
- }
-}
diff --git a/tests/Parse/ParseSubclassTest.php b/tests/Parse/ParseSubclassTest.php
deleted file mode 100644
index eb534ff8..00000000
--- a/tests/Parse/ParseSubclassTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-assertTrue($install instanceof ParseInstallation);
- $this->assertTrue(is_subclass_of($install, 'Parse\ParseObject'));
- }
-
- public function testCreateFromParseObject()
- {
- $install = ParseObject::create('_Installation');
- $this->assertTrue($install instanceof ParseInstallation);
- $this->assertTrue(is_subclass_of($install, 'Parse\ParseObject'));
- }
-}
diff --git a/tests/Parse/ParseUserTest.php b/tests/Parse/ParseUserTest.php
deleted file mode 100644
index 1041ad3e..00000000
--- a/tests/Parse/ParseUserTest.php
+++ /dev/null
@@ -1,841 +0,0 @@
-setUsername('asdf');
- $user->setPassword('zxcv');
- $user->setEmail('asds@mail.com');
- $this->assertEquals('asdf', $user->getUsername());
- $this->assertEquals('asds@mail.com', $user->getEmail());
- }
-
- public function testUserSignUp()
- {
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->signUp();
- $this->assertTrue($user->isAuthenticated());
- }
-
- public function testLoginSuccess()
- {
- $this->testUserSignUp();
- $user = ParseUser::logIn('asdf', 'zxcv');
- $this->assertTrue($user->isAuthenticated());
- $this->assertEquals('asdf', $user->get('username'));
-
- ParseUser::logOut();
- }
-
- public function testLoginEmptyUsername()
- {
- $this->expectException('Parse\ParseException', 'empty name');
- ParseUser::logIn('', 'bogus');
- }
-
- public function testLoginEmptyPassword()
- {
- $this->expectException('Parse\ParseException', 'empty password');
- ParseUser::logIn('asdf', '');
- }
-
- public function testLoginWrongUsername()
- {
- $this->expectException('Parse\ParseException', 'Invalid username/password.');
- ParseUser::logIn('non_existent_user', 'bogus');
- }
-
- public function testLoginWrongPassword()
- {
- $this->testUserSignUp();
- $this->expectException('Parse\ParseException', 'Invalid username/password.');
- ParseUser::logIn('asdf', 'bogus');
- }
-
- public function testLoginAsSuccess()
- {
- $user = new ParseUser();
- $user->setUsername('plainusername');
- $user->setPassword('plainpassword');
- $user->signUp();
-
- $id = $user->getObjectId();
- $loggedInUser = ParseUser::logInAs($id);
- $this->assertTrue($loggedInUser->isAuthenticated());
- $this->assertEquals('plainusername', $loggedInUser->get('username'));
-
- ParseUser::logOut();
- }
-
- public function testLoginAsEmptyUsername()
- {
- $this->expectException('Parse\ParseException', 'Cannot log in as user with an empty user id.');
- ParseUser::logInAs('');
- }
-
- public function testLoginAsNonexistentUser()
- {
- $this->expectException('Parse\ParseException', 'user not found.');
- ParseUser::logInAs('a1b2c3d4e5');
- }
-
- public function testLoginWithFacebook()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Facebook auth is invalid for this user.'
- );
- ParseUser::logInWithFacebook('asdf', 'zxcv');
- }
-
- public function testLoginWithFacebookNoId()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot log in Facebook user without an id.'
- );
- ParseUser::logInWithFacebook(null, 'asdf');
- }
-
- public function testLoginWithFacebookNoAccessToken()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot log in Facebook user without an access token.'
- );
- ParseUser::logInWithFacebook('asdf', null);
- }
-
- public function testLoginWithTwitter()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Twitter auth is invalid for this user.'
- );
- ParseUser::logInWithTwitter('asdf', 'asdf', 'asdf', null, 'bogus', 'bogus');
- }
-
- public function testLoginWithTwitterNoId()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot log in Twitter user without an id.'
- );
- ParseUser::logInWithTwitter(null, 'asdf', 'asdf', null, 'bogus', 'bogus');
- }
-
- public function testLoginWithTwitterNoScreenName()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot log in Twitter user without Twitter screen name.'
- );
- ParseUser::logInWithTwitter('asdf', null, 'asdf', null, 'bogus', 'bogus');
- }
-
- public function testLoginWithTwitterNoConsumerKey()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot log in Twitter user without a consumer key.'
- );
- ParseUser::logInWithTwitter('asdf', 'asdf', null, null, 'bogus', 'bogus');
- }
-
- public function testLoginWithTwitterNoAuthToken()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot log in Twitter user without an auth token.'
- );
- ParseUser::logInWithTwitter('asdf', 'asdf', 'asdf', null, null, 'bogus');
- }
-
- public function testLoginWithTwitterNoAuthTokenSecret()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot log in Twitter user without an auth token secret.'
- );
- ParseUser::logInWithTwitter('asdf', 'asdf', 'asdf', null, 'bogus', null);
- }
-
- public function testLoginWithAnonymous()
- {
- $user = ParseUser::loginWithAnonymous();
- $this->assertTrue($user->isAuthenticated());
- }
-
- public function testLinkWithFacebook()
- {
- $this->expectException('Parse\ParseException');
- $this->testUserSignUp();
- $user = ParseUser::logIn('asdf', 'zxcv');
- $user->linkWithFacebook('asdf', 'zxcv');
- }
-
- public function testLinkWithFacebookUnsavedUser()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot link an unsaved user, use ParseUser::logInWithFacebook'
- );
- $user = new ParseUser();
- $user->linkWithFacebook('asdf', 'zxcv');
- }
-
- public function testLinkWithFacebookNoId()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot link Facebook user without an id.'
- );
- $this->testUserSignUp();
- $user = ParseUser::logIn('asdf', 'zxcv');
- $user->linkWithFacebook(null, 'zxcv');
- }
-
- public function testLinkWithFacebookNoAccessToken()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot link Facebook user without an access token.'
- );
- $this->testUserSignUp();
- $user = ParseUser::logIn('asdf', 'zxcv');
- $user->linkWithFacebook('asdf', null);
- }
-
- public function testLinkWithTwitter()
- {
- $this->expectException('Parse\ParseException');
- $this->testUserSignUp();
- $user = ParseUser::logIn('asdf', 'zxcv');
- $user->linkWithTwitter('qwer', 'asdf', 'zxcv', null, 'bogus', 'bogus');
- }
-
- public function testLinkWithTwitterUnsavedUser()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot link an unsaved user, use ParseUser::logInWithTwitter'
- );
- $user = new ParseUser();
- $user->linkWithTwitter('qwer', 'asdf', 'zxcv', null, 'bogus', 'bogus');
- }
-
- public function testLinkWithTwitterNoId()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot link Twitter user without an id.'
- );
- $this->testUserSignUp();
- $user = ParseUser::logIn('asdf', 'zxcv');
- $user->linkWithTwitter(null, 'asdf', 'zxcv', null, 'bogus', 'bogus');
- }
-
- public function testLinkWithTwitterNoScreenName()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot link Twitter user without Twitter screen name.'
- );
- $this->testUserSignUp();
- $user = ParseUser::logIn('asdf', 'zxcv');
- $user->linkWithTwitter('qwer', null, 'zxcv', null, 'bogus', 'bogus');
- }
-
- public function testLinkWithTwitterNoConsumerKey()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot link Twitter user without a consumer key.'
- );
- $this->testUserSignUp();
- $user = ParseUser::logIn('asdf', 'zxcv');
- $user->linkWithTwitter('qwer', 'asdf', null, null, 'bogus', 'bogus');
- }
-
- public function testLinkWithTwitterNoAuthToken()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot link Twitter user without an auth token.'
- );
- $this->testUserSignUp();
- $user = ParseUser::logIn('asdf', 'zxcv');
- $user->linkWithTwitter('qwer', 'asdf', 'zxcv', null, null, 'bogus');
- }
-
- public function testLinkWithTwitterNoAuthTokenSecret()
- {
- $this->expectException(
- 'Parse\ParseException',
- 'Cannot link Twitter user without an auth token secret.'
- );
- $this->testUserSignUp();
- $user = ParseUser::logIn('asdf', 'zxcv');
- $user->linkWithTwitter('qwer', 'asdf', 'zxcv', null, 'bogus', null);
- }
-
- public function testBecome()
- {
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->signUp();
- $this->assertEquals(ParseUser::getCurrentUser(), $user);
-
- $sessionToken = $user->getSessionToken();
-
- $newUser = ParseUser::become($sessionToken);
- $this->assertEquals(ParseUser::getCurrentUser(), $newUser);
- $this->assertEquals('asdf', $newUser->get('username'));
-
- $this->expectException('Parse\ParseException', 'Invalid session token');
- ParseUser::become('garbage_token');
- }
-
- public function testBecomeFromCloudCode()
- {
- $sessionToken = ParseCloud::run('createTestUser', []);
-
- $user = ParseUser::become($sessionToken);
- $this->assertEquals(ParseUser::getCurrentUser(), $user);
- $this->assertEquals('harry', $user->get('username'));
- $this->assertEquals($user->getSessionToken(), $sessionToken);
- }
-
- public function testCannotSingUpAlreadyExistingUser()
- {
- $this->testUserSignUp();
- $user = ParseUser::getCurrentUser();
- $user->setPassword('zxcv');
- $this->expectException('Parse\ParseException', 'already existing user');
- $user->signUp();
- }
-
- public function testCannotAlterOtherUser()
- {
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->signUp();
-
- $otherUser = new ParseUser();
- $otherUser->setUsername('hacker');
- $otherUser->setPassword('password');
- $otherUser->signUp();
-
- $this->assertEquals(ParseUser::getCurrentUser(), $otherUser);
-
- $this->expectException('Parse\ParseException');
- $user->setUsername('changed');
- $user->save();
- }
-
- public function testCannotDeleteOtherUser()
- {
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->signUp();
-
- $otherUser = new ParseUser();
- $otherUser->setUsername('hacker');
- $otherUser->setPassword('password');
- $otherUser->signUp();
-
- $this->assertEquals(ParseUser::getCurrentUser(), $otherUser);
-
- $this->expectException('Parse\ParseException');
- $user->destroy();
- }
-
- public function testCannotSaveAllWithOtherUser()
- {
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->signUp();
-
- $otherUser = new ParseUser();
- $otherUser->setUsername('hacker');
- $otherUser->setPassword('password');
- $otherUser->signUp();
-
- $this->assertEquals(ParseUser::getCurrentUser(), $otherUser);
-
- $obj = ParseObject::create('TestObject');
- $obj->set('user', $otherUser);
- $obj->save();
-
- $item1 = ParseObject::create('TestObject');
- $item1->set('num', 0);
- $item1->save();
-
- $item1->set('num', 1);
- $item2 = ParseObject::create('TestObject');
- $item2->set('num', 2);
- $user->setUsername('changed');
- $this->expectException(
- 'Parse\ParseAggregateException',
- 'Errors during batch save.'
- );
- ParseObject::saveAll([$item1, $item2, $user]);
- }
-
- public function testCurrentUser()
- {
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->signUp();
-
- $current = ParseUser::getCurrentUser();
- $this->assertEquals($current->getObjectId(), $user->getObjectId());
- $this->assertNotNull($user->getSessionToken());
-
- $currentAgain = ParseUser::getCurrentUser();
- $this->assertEquals($current, $currentAgain);
-
- ParseUser::logOut();
- $this->assertNull(ParseUser::getCurrentUser());
- }
-
- public function testIsCurrent()
- {
- $user1 = new ParseUser();
- $user2 = new ParseUser();
- $user3 = new ParseUser();
-
- $user1->setUsername('a');
- $user2->setUsername('b');
- $user3->setUsername('c');
-
- $user1->setPassword('password');
- $user2->setPassword('password');
- $user3->setPassword('password');
-
- $user1->signUp();
- $this->assertTrue($user1->isCurrent());
- $this->assertFalse($user2->isCurrent());
- $this->assertFalse($user3->isCurrent());
-
- $user2->signUp();
- $this->assertTrue($user2->isCurrent());
- $this->assertFalse($user1->isCurrent());
- $this->assertFalse($user3->isCurrent());
-
- $user3->signUp();
- $this->assertTrue($user3->isCurrent());
- $this->assertFalse($user1->isCurrent());
- $this->assertFalse($user2->isCurrent());
-
- ParseUser::logIn('a', 'password');
- $this->assertTrue($user1->isCurrent());
- $this->assertFalse($user2->isCurrent());
- $this->assertFalse($user3->isCurrent());
-
- ParseUser::logIn('b', 'password');
- $this->assertTrue($user2->isCurrent());
- $this->assertFalse($user1->isCurrent());
- $this->assertFalse($user3->isCurrent());
-
- ParseUser::logIn('c', 'password');
- $this->assertTrue($user3->isCurrent());
- $this->assertFalse($user1->isCurrent());
- $this->assertFalse($user2->isCurrent());
-
- ParseUser::logOut();
- $this->assertFalse($user1->isCurrent());
- $this->assertFalse($user2->isCurrent());
- $this->assertFalse($user3->isCurrent());
- }
-
- public function testPasswordReset()
- {
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->set('email', 'asdf@example.com');
- $user->signUp();
-
- ParseUser::requestPasswordReset('asdf@example.com');
- $this->assertTrue(true);
- }
-
- public function testUserAssociations()
- {
- $child = ParseObject::create('TestObject');
- $child->save();
-
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->set('child', $child);
- $user->signUp();
-
- $object = ParseObject::create('TestObject');
- $object->set('user', $user);
- $object->save();
-
- $query = new ParseQuery('TestObject');
- $objectAgain = $query->get($object->getObjectId());
- $userAgain = $objectAgain->get('user');
- $userAgain->fetch();
-
- $this->assertEquals($userAgain->getObjectId(), $user->getObjectId());
- $this->assertEquals(
- $userAgain->get('child')->getObjectId(),
- $child->getObjectId()
- );
- }
-
- /**
- * @group test-fetch-include
- */
- public function testUserFetchWithInclude()
- {
- $child = ParseObject::create('TestObject');
- $child->set('name', 'parsephp');
- $child->save();
-
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->set('child', $child);
- $user->signUp();
-
- $object = ParseObject::create('TestObject');
- $object->set('user', $user);
- $object->save();
-
- $query = new ParseQuery('TestObject');
- $objectAgain = $query->get($object->getObjectId());
- $userAgain = $objectAgain->get('user');
- $userAgain->fetchWithInclude(['child']);
-
- $this->assertEquals($userAgain->getObjectId(), $user->getObjectId());
- $this->assertEquals(
- $userAgain->get('child')->getObjectId(),
- $child->getObjectId()
- );
- $this->assertEquals(
- $userAgain->get('child')->get('name'),
- $child->get('name')
- );
- }
-
- public function testUserQueries()
- {
- Helper::clearClass(ParseUser::$parseClassName);
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->set('email', 'asdf@example.com');
- $user->signUp();
-
- $query = ParseUser::query();
- $users = $query->find();
-
- $this->assertEquals(1, count($users));
- $this->assertEquals($user->getObjectId(), $users[0]->getObjectId());
- $this->assertEquals('asdf@example.com', $users[0]->get('email'));
- }
-
- public function testContainedInUserArrayQueries()
- {
- Helper::clearClass(ParseUser::$parseClassName);
- Helper::clearClass('TestObject');
- $userList = [];
- for ($i = 0; $i < 4; $i++) {
- $user = new ParseUser();
- $user->setUsername('user_num_'.$i);
- $user->setPassword('password');
- $user->set('email', 'asdf_'.$i.'@example.com');
- $user->signUp();
- $userList[] = $user;
- }
- $messageList = [];
- for ($i = 0; $i < 5; $i++) {
- $message = ParseObject::create('TestObject');
- $toUser = ($i + 1) % 4;
- $fromUser = $i % 4;
- $message->set('to', $userList[$toUser]);
- $message->set('from', $userList[$fromUser]);
- $message->save();
- $messageList[] = $message;
- }
-
- $inList = [$userList[0], $userList[3], $userList[3]];
- $query = new ParseQuery('TestObject');
- $query->containedIn('from', $inList);
- $results = $query->find();
-
- $this->assertEquals(3, count($results));
- }
-
- public function testSavingUserThrows()
- {
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $this->expectException('Parse\ParseException', 'You must call signUp');
- $user->save();
- }
-
- public function testUserUpdates()
- {
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->set('email', 'asdf@example.com');
- $user->signUp();
- $this->assertNotNull(ParseUser::getCurrentUser());
- $user->setUsername('test');
- $user->save();
- $this->assertNotNull($user->get('username'));
- $this->assertNotNull($user->get('email'));
- $user->destroy();
-
- $query = ParseUser::query();
- $this->expectException('Parse\ParseException', 'Object not found.');
- $query->get($user->getObjectId(), true);
- }
-
- public function testCountUsers()
- {
- Helper::clearClass(ParseUser::$parseClassName);
- $ilya = new ParseUser();
- $ilya->setUsername('ilya');
- $ilya->setPassword('password');
- $ilya->signUp();
-
- $kevin = new ParseUser();
- $kevin->setUsername('kevin');
- $kevin->setPassword('password');
- $kevin->signUp();
-
- $james = new ParseUser();
- $james->setUsername('james');
- $james->setPassword('password');
- $james->signUp();
-
- $query = ParseUser::query();
- $result = $query->count(true);
- $this->assertEquals(3, $result);
- }
-
- public function testUserLoadedFromStorageFromSignUp()
- {
- Helper::clearClass(ParseUser::$parseClassName);
- $fosco = new ParseUser();
- $fosco->setUsername('fosco');
- $fosco->setPassword('password');
- $fosco->signUp();
- $id = $fosco->getObjectId();
- $this->assertNotNull($id);
- $current = ParseUser::getCurrentUser();
- $this->assertEquals($id, $current->getObjectId());
- ParseUser::_clearCurrentUserVariable();
- $current = ParseUser::getCurrentUser();
- $this->assertEquals($id, $current->getObjectId());
- }
-
- public function testUserLoadedFromStorageFromLogIn()
- {
- Helper::clearClass(ParseUser::$parseClassName);
- $fosco = new ParseUser();
- $fosco->setUsername('fosco');
- $fosco->setPassword('password');
- $fosco->signUp();
- $id = $fosco->getObjectId();
- $this->assertNotNull($id);
- ParseUser::logOut();
- ParseUser::_clearCurrentUserVariable();
- $current = ParseUser::getCurrentUser();
- $this->assertNull($current);
- ParseUser::logIn('fosco', 'password');
- $current = ParseUser::getCurrentUser();
- $this->assertEquals($id, $current->getObjectId());
- ParseUser::_clearCurrentUserVariable();
- $current = ParseUser::getCurrentUser();
- $this->assertEquals($id, $current->getObjectId());
- }
-
- public function testUserWithMissingUsername()
- {
- $user = new ParseUser();
- $user->setPassword('test');
- $this->expectException('Parse\ParseException', 'empty name');
- $user->signUp();
- }
-
- public function testUserWithMissingPassword()
- {
- $user = new ParseUser();
- $user->setUsername('test');
- $this->expectException('Parse\ParseException', 'empty password');
- $user->signUp();
- }
-
- public function testCurrentUserIsNotDirty()
- {
- $user = new ParseUser();
- $user->setUsername('asdf');
- $user->setPassword('zxcv');
- $user->set('bleep', 'bloop');
- $user->signUp();
- $this->assertFalse($user->isKeyDirty('bleep'));
- $userAgain = ParseUser::getCurrentUser();
- $this->assertFalse($userAgain->isKeyDirty('bleep'));
- }
-
- /**
- * @group anon-login
- */
- public function testAnonymousLogin()
- {
- $user = ParseUser::loginWithAnonymous();
- $this->assertEquals(ParseUser::getCurrentUser(), $user);
- ParseUser::logOut();
- }
-
- /**
- * @group user-by-id-session
- */
- public function testGetCurrentUserByIdAndSession()
- {
- $user = new ParseUser();
- $user->setUsername('plainusername');
- $user->setPassword('plainpassword');
- $user->signUp();
-
- $id = $user->getObjectId();
- $sessionToken = $user->getSessionToken();
-
- $storage = ParseClient::getStorage();
- ParseUser::_clearCurrentUserVariable();
- $storage->remove('user');
-
- $this->assertNull(ParseUser::getCurrentUser());
-
- $storage->set('user', [
- 'id' => $id,
- '_sessionToken' => $sessionToken,
- 'moredata' => 'moredata'
- ]);
-
- $currentUser = ParseUser::getCurrentUser();
- $this->assertNotNull($currentUser);
-
- $this->assertFalse($currentUser->isDataAvailable());
- $currentUser->fetch();
-
- $this->assertEquals('plainusername', $currentUser->getUsername());
-
- // check our additional userdata as well
- $this->assertEquals('moredata', $currentUser->get('moredata'));
-
- ParseUser::logOut();
- }
-
- /**
- * @group verification-email
- */
- public function testRequestVerificationEmail()
- {
- $email = 'example@example.com';
- $user = new ParseUser();
- $user->setUsername('verification_email_user');
- $user->setPassword('password');
- $user->setEmail($email);
- $user->signUp();
- ParseUser::requestVerificationEmail($email);
- $this->assertTrue(true);
- }
-
- /**
- * @group verification-email
- */
- public function testEmailAlreadyVerified()
- {
- $email = 'example2@example.com';
- $this->expectException('Parse\ParseException', "Email {$email} is already verified.");
-
- $user = new ParseUser();
- $user->setUsername('another_verification_email_user');
- $user->setPassword('password');
- $user->setEmail($email);
- $user->signUp();
-
- // forcibly update emailVerification status
- $user->set('emailVerified', true);
- $user->save(true);
-
- ParseUser::requestVerificationEmail($email);
- }
-
- /**
- * @group verification-email
- */
- public function testRequestVerificationEmailEmpty()
- {
- $this->expectException('Parse\ParseException', 'you must provide an email');
- ParseUser::requestVerificationEmail('');
- }
-
- /**
- * @group verification-email
- */
- public function testRequestVerificationEmailBad()
- {
- $this->expectException('Parse\ParseException', 'No user found with email not_a_known_email');
- ParseUser::requestVerificationEmail('not_a_known_email');
- }
-
- public function testRegisteringAnonymousClearsAuthData()
- {
- $user = ParseUser::loginWithAnonymous();
- $response = ParseClient::_request('GET', 'users', null, null, true);
- $this->assertNotNull($response['results'][0]['authData']['anonymous']);
- $user->setUsername('Mary');
- $user->save();
- $response = ParseClient::_request('GET', 'users', null, null, true);
- $this->assertArrayNotHasKey('authData', $response['results'][0]) ;
- }
-}
diff --git a/tests/Parse/RemoveOperationTest.php b/tests/Parse/RemoveOperationTest.php
deleted file mode 100644
index 794d9989..00000000
--- a/tests/Parse/RemoveOperationTest.php
+++ /dev/null
@@ -1,85 +0,0 @@
-expectException(
- '\Parse\ParseException',
- 'RemoveOperation requires an array.'
- );
- new RemoveOperation('not an array');
- }
-
- /**
- * @group remove-op-merge
- */
- public function testMergePrevious()
- {
- $removeOp = new RemoveOperation([
- 'key1' => 'value1'
- ]);
-
- $this->assertEquals($removeOp, $removeOp->_mergeWithPrevious(null));
-
- // check delete op
- $merged = $removeOp->_mergeWithPrevious(new DeleteOperation());
- $this->assertTrue($merged instanceof DeleteOperation);
-
- // check set op
- $merged = $removeOp->_mergeWithPrevious(new SetOperation('newvalue'));
- $this->assertTrue($merged instanceof SetOperation);
- $this->assertEquals([
- 'newvalue'
- ], $merged->getValue(), 'Value was not as expected');
-
- // check self
- $merged = $removeOp->_mergeWithPrevious(new RemoveOperation(['key2' => 'value2']));
- $this->assertTrue($merged instanceof RemoveOperation);
- $this->assertEquals([
- 'key2' => 'value2',
- 'key1' => 'value1'
- ], $merged->getValue(), 'Value was not as expected');
- }
-
- /**
- * @group remove-op
- */
- public function testInvalidMerge()
- {
- $this->expectException(
- '\Parse\ParseException',
- 'Operation is invalid after previous operation.'
- );
- $removeOp = new RemoveOperation([
- 'key1' => 'value1'
- ]);
- $removeOp->_mergeWithPrevious(new AddOperation(['key'=>'value']));
- }
-
- /**
- * @group remove-op
- */
- public function testEmptyApply()
- {
- $removeOp = new RemoveOperation([
- 'key1' => 'value1'
- ]);
- $this->assertEmpty($removeOp->_apply([], null, null));
- }
-}
diff --git a/tests/bootstrap-stream.php b/tests/bootstrap-stream.php
deleted file mode 100644
index e285c8ed..00000000
--- a/tests/bootstrap-stream.php
+++ /dev/null
@@ -1,26 +0,0 @@
- {
- if (request.params.key2 === 'value1') {
- return 'Foo';
- } else {
- throw 'bad stuff happened';
- }
-});
-
-Parse.Cloud.define('createTestUser', async (request) => {
- const user = new Parse.User();
- user.set('username', 'harry');
- user.set('password', 'potter');
- await user.signUp();
- const loggedIn = await Parse.User.logIn('harry', 'potter');
- return loggedIn.getSessionToken();
-});
-
-Parse.Cloud.define('foo', (request) => {
- var key1 = request.params.key1;
- var key2 = request.params.key2;
- if (key1 === "value1" && key2
- && key2.length === 3 && key2[0] === 1
- && key2[1] === 2 && key2[2] === 3) {
- result = {
- object: {
- __type: 'Object',
- className: 'Foo',
- objectId: '1',
- x: 2,
- relation: {
- __type: 'Object',
- className: 'Bar',
- objectId: '2',
- x: 3
- }
- },
- array:[
- {
- __type: 'Object',
- className: 'Bar',
- objectId: '10',
- x: 2
- }
- ]
- };
- return result;
- } else if (key1 === 'value1') {
- return { a: 2 };
- } else {
- throw 'invalid!';
- }
-});
-
-Parse.Cloud.job('CloudJob1', () => {
- return {
- status: 'cloud job completed'
- };
-});
-
-Parse.Cloud.job('CloudJob2', () => {
- return new Promise((resolve) => {
- setTimeout(function() {
- resolve({
- status: 'cloud job completed'
- })
- }, 3000);
- });
-});
-
-Parse.Cloud.job('CloudJobFailing', () => {
- throw 'cloud job failed';
-});
\ No newline at end of file
diff --git a/tests/gencerts.sh b/tests/gencerts.sh
deleted file mode 100755
index cf31ceb5..00000000
--- a/tests/gencerts.sh
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/bash
-# https://gist.github.com/ryankurte/bc0d8cff6e73a6bb1950
-# https://curl.se/libcurl/c/CURLOPT_PINNEDPUBLICKEY.html
-# ./gencerts.sh parseca localhost parsephp keys/
-# ./gencerts.sh parseca client parsephp keys/
-
-set -e
-
-if [ "$#" -ne 3 ] && [ "$#" -ne 4 ]; then
- echo "Usage: $0 CA NAME ORG"
- echo "CA - name of fake CA"
- echo "NAME - name of fake client"
- echo "ORG - organisation for both"
- echo "[DIR] - directory for cert output"
- exit
-fi
-
-CA=$1
-NAME=$2
-ORG=$3
-
-if [ -z "$4" ]; then
- DIR=./
-else
- DIR=$4
-fi
-
-if [ ! -d "$DIR" ]; then
- mkdir -p $DIR
-fi
-
-LENGTH=4096
-DAYS=1000
-
-SUBJECT=/C=NZ/ST=AKL/L=Auckland/O=$ORG
-
-if [ ! -f "$DIR/$CA.key" ]; then
-
- echo Generating CA
- openssl genrsa -out $DIR/$CA.key $LENGTH
-
- echo Signing CA
- openssl req -x509 -new -nodes -key $DIR/$CA.key -sha256 -days 1024 -out $DIR/$CA.crt -subj $SUBJECT/CN=$CA
-
- openssl x509 -in $DIR/$CA.crt -out $DIR/$CA.pem -text
- openssl x509 -sha1 -noout -in $DIR/$CA.pem -fingerprint | sed 's/SHA1 Fingerprint=//g' >> $DIR/$CA.fp
-
-else
- echo Located existing CA
-fi
-
-if [ ! -f "$DIR/$NAME.key" ]; then
-
-echo Generating keys
-openssl genrsa -out $DIR/$NAME.key $LENGTH
-
-echo Generating CSR
-openssl req -new -out $DIR/$NAME.csr -key $DIR/$NAME.key -subj $SUBJECT/CN=$NAME
-
-echo Signing cert
-openssl x509 -req -days $DAYS -in $DIR/$NAME.csr -out $DIR/$NAME.crt -CA $DIR/$CA.crt -CAkey $DIR/$CA.key -CAcreateserial
-
-echo Generating PEM
-openssl x509 -in $DIR/$NAME.crt -out $DIR/$NAME.pem -text
-
-openssl x509 -sha1 -noout -in $DIR/$NAME.pem -fingerprint | sed 's/SHA1 Fingerprint=//g' > $DIR/$NAME.fp
-
-echo Cleaning Up
-rm $DIR/*.csr
-
-else
- echo Located existing client certificate
-fi
-
-echo Done
diff --git a/tests/keys/client.crt b/tests/keys/client.crt
deleted file mode 100644
index 761f775e..00000000
--- a/tests/keys/client.crt
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFITCCAwkCCQDEwoQengRnzDANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJO
-WjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhBdWNrbGFuZDERMA8GA1UECgwIcGFy
-c2VwaHAxEDAOBgNVBAMMB3BhcnNlY2EwHhcNMjMwNTEyMjA0MzAzWhcNMjYwMjA1
-MjA0MzAzWjBSMQswCQYDVQQGEwJOWjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhB
-dWNrbGFuZDERMA8GA1UECgwIcGFyc2VwaHAxDzANBgNVBAMMBmNsaWVudDCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMlKDLogZSNxm5S4h97XM8A1+MsP
-RaK15g8ebVEP7OGrwX1bvLVis0U/ixwHs0mqjQ9tbuefMZyiRgdds+8tpRCCuqGo
-dwSk8YMmOlrF5xIpBT2cXJLhGvDyY0F0RLFZYBoioTYFth4i91DkzhmBaL6vjyB7
-dXduR1JQbzTpQHkhofPziQsNtinf8qBqLbH1dFaqwUUEgtsKJyaPlxJR21TF3Fv+
-2K/fmoyzP6Er7eUSCvJRRH1hCwzHxl7GqTKyQeaS1RLdrHYqZmSeiJpxwl8uSdBs
-x4y8wG4lhRdantCCANlTwLd7zPiuIu+RBP276o2+02K8my9N2STZUgHXefSoNx4M
-alYujKBUV+2qmhR9H2HlUB/C/h5Sb8PSlfWyD/bo3+agyw/1+9rfMUYCmiEtdik7
-amoBaahoqAHL8S3K19L0ytWkgFejSMzn+i4VDifnwupXHifDL7CPDX0vevFNDvC7
-HMLkBWmkNaTduDL5P3ximtIXE7akhK+ufiNoO3KLItenCENxCzUdNdDHguei2U5E
-vhTyaTmIIrkUGxQ+aVDXRF2njAeQNMdTjsCAiiSN1corYX8RXvNo8QZQUEaHG42u
-O6Yolsw8EZotbpExo1jbiDlI2pVIuwJdtaDCucPN/X6uZ8odGQ0LUeyTBYda/1OG
-VIQzPZnxSHzqPzuZAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAHOLgs6FLIv+Vvpx
-fNtwabgOI2JxkFwaAujwWJS10tmczJp9qZilOlVBBhDFRBwBKqAaanHKCYkEfP6u
-dgC8RMOOYOb0gk6Tj3+zhvM4Qz+n8Cn2fA2+EtFXTKyMfJHuG/zddTLep2Phh9c9
-t5s/8aHAuqM9RGiA66V7mJiR9G5E8cNpyHniCh8Z11kABPMzAy92LyEGUlRwCrWx
-fCwItnzY2/7J8IW20rPIpb0EWmYHhxkUUzu7APQgvJpAUTdhmVKb9GLCUyY+oICE
-1WrnV9OQiqYVGFQkry9FXyKbsLVM6b6ar8DIXpYTYnd11sqFdiUUo4oItYYrO/1O
-0Bt0PX6hWYjR4r7ZT23KWAHZdlU4EFfrLJeZ6HDeYttJF68x9s8RZGgVU9Xlb/7X
-KGRVyCWI7aWzvI1lBVAnc7b7B9LrIkdHnYDt/ettmRvI/zZRBh73T7EPOQB7bEzP
-M8BXfAr/+qa2ToBWNd9AJrw7rg+OWGD801iXqsREyLr15nRIR12mGdKuyMkfghk1
-9J1Sd0fkfB2ci7Rn3afRdKksGuADQ2fvYihw0lALOPzSq/FYRqZBzwv9Qmw43CKd
-euEPcCfT7VYY47lmfFfKBcVv8d7NiJZRGkIUYUxS/UAsrLiBCgRkaUACcbLok7sJ
-jrdaTDx4EZu93dmJbEozNO6dRiLb
------END CERTIFICATE-----
diff --git a/tests/keys/client.der b/tests/keys/client.der
deleted file mode 100644
index e5aed7bb..00000000
Binary files a/tests/keys/client.der and /dev/null differ
diff --git a/tests/keys/client.fp b/tests/keys/client.fp
deleted file mode 100644
index 61543623..00000000
--- a/tests/keys/client.fp
+++ /dev/null
@@ -1 +0,0 @@
-D7:10:BE:24:E6:85:A2:F8:79:F8:36:EF:42:A0:EC:B3:EC:93:C2:FB
diff --git a/tests/keys/client.key b/tests/keys/client.key
deleted file mode 100644
index 458e1994..00000000
--- a/tests/keys/client.key
+++ /dev/null
@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIJJwIBAAKCAgEAyUoMuiBlI3GblLiH3tczwDX4yw9ForXmDx5tUQ/s4avBfVu8
-tWKzRT+LHAezSaqND21u558xnKJGB12z7y2lEIK6oah3BKTxgyY6WsXnEikFPZxc
-kuEa8PJjQXREsVlgGiKhNgW2HiL3UOTOGYFovq+PIHt1d25HUlBvNOlAeSGh8/OJ
-Cw22Kd/yoGotsfV0VqrBRQSC2wonJo+XElHbVMXcW/7Yr9+ajLM/oSvt5RIK8lFE
-fWELDMfGXsapMrJB5pLVEt2sdipmZJ6ImnHCXy5J0GzHjLzAbiWFF1qe0IIA2VPA
-t3vM+K4i75EE/bvqjb7TYrybL03ZJNlSAdd59Kg3HgxqVi6MoFRX7aqaFH0fYeVQ
-H8L+HlJvw9KV9bIP9ujf5qDLD/X72t8xRgKaIS12KTtqagFpqGioAcvxLcrX0vTK
-1aSAV6NIzOf6LhUOJ+fC6lceJ8MvsI8NfS968U0O8LscwuQFaaQ1pN24Mvk/fGKa
-0hcTtqSEr65+I2g7cosi16cIQ3ELNR010MeC56LZTkS+FPJpOYgiuRQbFD5pUNdE
-XaeMB5A0x1OOwICKJI3VyithfxFe82jxBlBQRocbja47piiWzDwRmi1ukTGjWNuI
-OUjalUi7Al21oMK5w839fq5nyh0ZDQtR7JMFh1r/U4ZUhDM9mfFIfOo/O5kCAwEA
-AQKCAgB9ZG3NPQUEMW+UE+hAP5tzb6vPA3KDzADHBlNfHiaY5qAgcZd6/0NiLhWA
-nqNnjqFVLPzbuWX0h3pMeGjw5GRhhq6wqfuKnx38b0IG7iXmQDuNh+x7a1OXKcf/
-LGjmeiDN5yi6OJCc8XdTo1Vouh8AOulUeNRSVBaGBqlgMrYBP5xeFiYXBrGmIGZK
-3BofNCMHIlRHpGnH/ekpsmWP+gJCKwf9HyLpXMgwQjGvO2h1POoozct2t49kpMbE
-n8kjVbyL4IhvujwHWJ50q/W5EIjfNjyxZDJjT+ooM6NXSxKIHZRdzjjNlIe5mvEU
-gCi1z+xr5KZWadvaegp9VAwsLYlAbrFjpUY1gh5jEWmereVdAQI6io0m6lSkAIPC
-e7OjV08Hv8rsLbnc8OroJ1YYsDiRnYjASGTgUlYXgZ/GOzrx16NP9Xx/fLXDcry5
-/FayKwQ6rNE56+UzwBZisUHFQTaj854ljqT14my0pSkBUJqWu/J8sMoWtCCu31gp
-via9/3Cb/+0Pvc3ShDgGEt+ulf962tcVR48mbG/rWLvMgTzbpr4+qrHDEPe0fL3/
-p5awpvMQOTr1y/inhf4aOkZgQH83e2072mCvgNDZ6eW5AmCtVEVVP8erWQ9MI2ky
-HZY8/i0vs0icbqqmA9M4vnJWuQsgOmB/XIwajmnuP9/OnjfrIQKCAQEA7b/wm0+q
-LveojHoKvL3vByb+MmY6UZV8kPx2R8r2wYjFXaXN3+PIjUTpeaPM5Os+yPfBlzs2
-T17ySnc7WQsj/RIgTx0fOdARjnopMR8av6RUpgShF69Kb3U7VXiLcEoApJGbg9QV
-CSae4f40DzN3ou8kIR+LCRrYSSv1bkrFwRVSgTP/gqLbVWn4/HJN93+Sem8tHmqd
-o85/zFEKiVMQqR46amLNh1+ntvLSNi5noETj5y3T/8MYjuPs7GAMrywg77cR06YS
-MvT4MFaXfpo7Yg9/lN9jRfTASTiNo1jQd8lSt29HSId/rvZ9F25BQuF8QlEQZj7J
-Io94D5frKlUDfQKCAQEA2L2eS1tKdvkgKgIt+kmvws0p0TCLECSut0GL39uk0FU8
-aWmAgFrAppsFGNzYWbv3NcN7YuN2UX+YQnBIqyZ3paI7/dOa/pbwnGy9XdXUh6zi
-T+CueNBSty2HjLNqcrQ/90v6AAZfE3oOR8fcMq8svgh0oM0PjyYI+81z3lo9+SA1
-lLfHW1qIFli+80qebg38t27OeaiRzw9bwniexYPSpozoF8Zmj2UWnml/Ma2ZME8j
-2t6YrwiJzwIdrC5JVbKc8Le/iksSjUA98zpFacFjNhVwLNtbUWAf5rUmV3Y312XJ
-9qL8cnXmo2bLYv79Hz6I2TGH4Zim8jPT/ZFtR7sbTQKCAQBCPCD6A92zrAdm63Em
-V/vJkFFtFRHWPMExW0RQh/jqvgHOLy0F3N24jaRF4R5qACfDsVJboYFl51u05za/
-fd0O2gfqQoC6iH77pIjpSHMZRNzYS53djVY9avmWvDiMlfFL58zdky4xGHNXHoy+
-V2ZTHDCCkdkYNkRfTkHX8jjZq+kKWcQrTtewGg/ltKqH8yCJv4NgX+9+/T6ZW1KG
-I4AWvXckwFXmCv4cd9Wchp0UB10+wIO5U076MAGHcNLX0oFyhxwOTMvxKlIilV0r
-RiiZDxxKC1oK2T7gp0K+aTXayVmkBPpk+GrYAY+kAXFpAoytpQvekEtUt4eJQJeh
-eYG5AoIBAFpayjfOCgAJIVCB8hrqRxxlnS45F3AWasO4zo/3KAE112Z2dfyMWM3b
-yEcyIftesdM2+CQkgTm+gIIJ/zFiavSg6nOJmI7T6+C6MEODFgOtnfcAyptQ9Xqp
-v113mkPRQu1cPg9umIotEvD3r6NthbB/I+e5NOhPSeV3I/upETbfJ5ck+jXqSttO
-CeSw0dU9fYIW7nqnPInedDlhQYdDyjhme4cVzcGvubs2bbEPFtKd22ut6mbln1Wu
-IyKZdTcFrAlqAK6tV0GNa4YPX8qTtUFhtI7ur2YANaxfDmndva/NHmH0Vlt9LTYn
-b1iIxosU7cXlsSjqE4ba9mA6FR2XMe0CggEAFCrg/EhBXX8sagXGGXt7Hp1ozpBJ
-EqY4xj1KSDPGNh1x1sOJP7MYIg+Sa8AxVRH+T6VBcXBuyxy3FtNH4iRpKzE5Kept
-Jdxglsfo5EGqCNsIh45xa1owHiHr3/p2VpASiPy0OsvM4zDWCNffyz0i3wM4NvRb
-sVYi/eQtbML2+Ro8e3eW8f3SRbrKahQX+vMg+d3+BddX6GuPd+RE5qdIkQQhvugj
-4oOR1Gx1ktv//ex4T2LkEGm0c2TLrlmFdOGPURbFIVeqLT26KJ6PdeMaVHvCkwAX
-4krazNZR4HTOLAL5iWx74xr7uGz8Z3My34laVpTaS6YONX9mW7cfT8U2ww==
------END RSA PRIVATE KEY-----
diff --git a/tests/keys/client.pem b/tests/keys/client.pem
deleted file mode 100644
index 761f775e..00000000
--- a/tests/keys/client.pem
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFITCCAwkCCQDEwoQengRnzDANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJO
-WjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhBdWNrbGFuZDERMA8GA1UECgwIcGFy
-c2VwaHAxEDAOBgNVBAMMB3BhcnNlY2EwHhcNMjMwNTEyMjA0MzAzWhcNMjYwMjA1
-MjA0MzAzWjBSMQswCQYDVQQGEwJOWjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhB
-dWNrbGFuZDERMA8GA1UECgwIcGFyc2VwaHAxDzANBgNVBAMMBmNsaWVudDCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMlKDLogZSNxm5S4h97XM8A1+MsP
-RaK15g8ebVEP7OGrwX1bvLVis0U/ixwHs0mqjQ9tbuefMZyiRgdds+8tpRCCuqGo
-dwSk8YMmOlrF5xIpBT2cXJLhGvDyY0F0RLFZYBoioTYFth4i91DkzhmBaL6vjyB7
-dXduR1JQbzTpQHkhofPziQsNtinf8qBqLbH1dFaqwUUEgtsKJyaPlxJR21TF3Fv+
-2K/fmoyzP6Er7eUSCvJRRH1hCwzHxl7GqTKyQeaS1RLdrHYqZmSeiJpxwl8uSdBs
-x4y8wG4lhRdantCCANlTwLd7zPiuIu+RBP276o2+02K8my9N2STZUgHXefSoNx4M
-alYujKBUV+2qmhR9H2HlUB/C/h5Sb8PSlfWyD/bo3+agyw/1+9rfMUYCmiEtdik7
-amoBaahoqAHL8S3K19L0ytWkgFejSMzn+i4VDifnwupXHifDL7CPDX0vevFNDvC7
-HMLkBWmkNaTduDL5P3ximtIXE7akhK+ufiNoO3KLItenCENxCzUdNdDHguei2U5E
-vhTyaTmIIrkUGxQ+aVDXRF2njAeQNMdTjsCAiiSN1corYX8RXvNo8QZQUEaHG42u
-O6Yolsw8EZotbpExo1jbiDlI2pVIuwJdtaDCucPN/X6uZ8odGQ0LUeyTBYda/1OG
-VIQzPZnxSHzqPzuZAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAHOLgs6FLIv+Vvpx
-fNtwabgOI2JxkFwaAujwWJS10tmczJp9qZilOlVBBhDFRBwBKqAaanHKCYkEfP6u
-dgC8RMOOYOb0gk6Tj3+zhvM4Qz+n8Cn2fA2+EtFXTKyMfJHuG/zddTLep2Phh9c9
-t5s/8aHAuqM9RGiA66V7mJiR9G5E8cNpyHniCh8Z11kABPMzAy92LyEGUlRwCrWx
-fCwItnzY2/7J8IW20rPIpb0EWmYHhxkUUzu7APQgvJpAUTdhmVKb9GLCUyY+oICE
-1WrnV9OQiqYVGFQkry9FXyKbsLVM6b6ar8DIXpYTYnd11sqFdiUUo4oItYYrO/1O
-0Bt0PX6hWYjR4r7ZT23KWAHZdlU4EFfrLJeZ6HDeYttJF68x9s8RZGgVU9Xlb/7X
-KGRVyCWI7aWzvI1lBVAnc7b7B9LrIkdHnYDt/ettmRvI/zZRBh73T7EPOQB7bEzP
-M8BXfAr/+qa2ToBWNd9AJrw7rg+OWGD801iXqsREyLr15nRIR12mGdKuyMkfghk1
-9J1Sd0fkfB2ci7Rn3afRdKksGuADQ2fvYihw0lALOPzSq/FYRqZBzwv9Qmw43CKd
-euEPcCfT7VYY47lmfFfKBcVv8d7NiJZRGkIUYUxS/UAsrLiBCgRkaUACcbLok7sJ
-jrdaTDx4EZu93dmJbEozNO6dRiLb
------END CERTIFICATE-----
diff --git a/tests/keys/localhost.crt b/tests/keys/localhost.crt
deleted file mode 100644
index 86af6e0e..00000000
--- a/tests/keys/localhost.crt
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFJDCCAwwCCQDEwoQengRnyzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJO
-WjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhBdWNrbGFuZDERMA8GA1UECgwIcGFy
-c2VwaHAxEDAOBgNVBAMMB3BhcnNlY2EwHhcNMjMwNTEyMjA0MjQ0WhcNMjYwMjA1
-MjA0MjQ0WjBVMQswCQYDVQQGEwJOWjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhB
-dWNrbGFuZDERMA8GA1UECgwIcGFyc2VwaHAxEjAQBgNVBAMMCWxvY2FsaG9zdDCC
-AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANhB+NiGfXAgK4yJKdJEU9gC
-kBUVwTmEVYIbHjK/HuWxbDIeVAHMSM1CWFZm72zfcGiLQ2vzqSNQ2mCGpefRlKGG
-E5ch/HPDqeEKb/Qm+UnQTyMjKOMWckNEzqhilOiMHGR0hb6h5givz8aQ7kjp3ELm
-RWaBWJ1rBizooB3fEDAdGtEEIDiq/i2/sSRcFmOeVYJ8ynIJ2/SmqF3KttQAZnuv
-tFRGD+7C+loyxz+vCbAIkl1Smwj3ZsTKfGYGoSQA7Z7QVLzee7QgGmHCWiRmvKxX
-ZfaW27SE7xokw68Dx84FeFYeUTXZugCLFtcHQ/M7enZsfUNjfGqFE88piKXTDgXa
-qqCGKTqUhWYjnvH8AmiSbzUWYCJ+YtAY7wO7IdjrVzPh8pnCRXKefM2xJEJhDbSg
-5lWkla7rJQfvKXuRlyiKonyI5hIYFwzgwPPoz+TKPLRltyzmPdmNshBN8USXOd3Q
-5vG9JWSM2pP/l5UUusRRA2SrDEsud004mnQeCh1IHbF+srudSHQKPyxYOdc/WzUV
-yy+RN53N1VG9JkH60t3Dg0rYiC+wilqS2G56MbgrSN4HTldmcGebzJMIdFpNSKLJ
-uI886kgefd90OdsPqSI8rjPrEVAyL06w7P19/baWyyRlDQL3Do5uvMRk2YGHK2Ej
-malB6uq4MatqOWXoroYrAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAJnoVzVRxyQF
-qUchsTRZZFfPXZI3n6Xn1wI/U5YIUyOODbTLn35c99G/sCbECFmciBZKXLvmiBn0
-tGYphpFFLT+qHtrYn4a29LFCsYDMlmfSJPQ0+V6FNpfqo2xPMDZ8sW+SVwx/PyNx
-D/NyQ1+dZs5jKvVqyddU3e/jNG6hKIJF8rTfM5X2wp8RC55VGUeocWuPLCD9Ozmf
-Xhv6J8Jv9LhkOl9BjudgpQ43so8mfa3InC/1SU/2kjSjc6hpWfyjErVz32Yf1QF0
-ceVgZJ4EoMVecZMFbo6b1cdlg3AoRvBEr0LpMwFWsEWicCPQjWg/wyJLRqhDIvoC
-CWPGZrYsFilhHy9Cx7fOK7ZqLJK+dNbY5It7//TIZ364cTzUpYqfiv7lQ5Xp0c0h
-9FiMCrFX4C3Su0UZfJjZ3KQTJfL0LnkwcvoT98RcNVPFT4Jgbe7thZPFHHZAAmag
-5+2P9Xzz8OsNYUbGhDjd9Pq7gSiM4ZpJ2tc425qCZ2E84YqDYRtwZo3UIca7ktm0
-xckuoVQzxiIE/BhyL5+wL3NLTkgVjWh11XeiKn/h6BaOMj9QKTKc3RzLtqC57oVD
-iMowJq80nQUUsU8I1GibfuLM+0ahcK8an5Lzdl0dS+43eKQLJWhpfBZNgFMfXDEe
-o7eD8auY/MfkFWiUBpWGx7Grb/2a/z1q
------END CERTIFICATE-----
diff --git a/tests/keys/localhost.fp b/tests/keys/localhost.fp
deleted file mode 100644
index 6de3a5bd..00000000
--- a/tests/keys/localhost.fp
+++ /dev/null
@@ -1 +0,0 @@
-29:F3:66:76:EF:A0:CA:18:B5:B5:71:C6:14:45:80:04:4C:B2:89:C2
diff --git a/tests/keys/localhost.key b/tests/keys/localhost.key
deleted file mode 100644
index 24f84196..00000000
--- a/tests/keys/localhost.key
+++ /dev/null
@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIJKQIBAAKCAgEA2EH42IZ9cCArjIkp0kRT2AKQFRXBOYRVghseMr8e5bFsMh5U
-AcxIzUJYVmbvbN9waItDa/OpI1DaYIal59GUoYYTlyH8c8Op4Qpv9Cb5SdBPIyMo
-4xZyQ0TOqGKU6IwcZHSFvqHmCK/PxpDuSOncQuZFZoFYnWsGLOigHd8QMB0a0QQg
-OKr+Lb+xJFwWY55VgnzKcgnb9KaoXcq21ABme6+0VEYP7sL6WjLHP68JsAiSXVKb
-CPdmxMp8ZgahJADtntBUvN57tCAaYcJaJGa8rFdl9pbbtITvGiTDrwPHzgV4Vh5R
-Ndm6AIsW1wdD8zt6dmx9Q2N8aoUTzymIpdMOBdqqoIYpOpSFZiOe8fwCaJJvNRZg
-In5i0BjvA7sh2OtXM+HymcJFcp58zbEkQmENtKDmVaSVruslB+8pe5GXKIqifIjm
-EhgXDODA8+jP5Mo8tGW3LOY92Y2yEE3xRJc53dDm8b0lZIzak/+XlRS6xFEDZKsM
-Sy53TTiadB4KHUgdsX6yu51IdAo/LFg51z9bNRXLL5E3nc3VUb0mQfrS3cODStiI
-L7CKWpLYbnoxuCtI3gdOV2ZwZ5vMkwh0Wk1Iosm4jzzqSB5933Q52w+pIjyuM+sR
-UDIvTrDs/X39tpbLJGUNAvcOjm68xGTZgYcrYSOZqUHq6rgxq2o5ZeiuhisCAwEA
-AQKCAgEAqupZFigU8405XfT6DKjb6xj7bu6mrCKewhlUoJ7UeIzlCidWFaWy1Cbf
-UkpAaDefy8BlJOiKgNLiBO/mJ3VIlvA0g3nk4El/9dAd80TqOSBdq1OaeP/AhtHW
-0tY3AiPaPLqrCaNC/xKUkEbzTMUnw+fiacVImAGB+/ROt80YKi6WhyNPo/ngsZ+T
-DT2KpGj7BApEpiSMpqsg3h/cp2k5lf+j8gb9iKKo4qjHONnKOkpMA13KEigWHOo7
-rxcGPEJPivj0P+FGu3Gz6BeGzsYzz7GzcFSCiAWYQ31S+vtt6rIADXAglwLhMpS7
-FG81kQMtInNT/PKf3kAXC9+zk/teVGYsqYvzQrtrxIMQlmrFK/GwlfMn7PqFLPPz
-3Ex2JN6DX/2JPn3KX6kP8C3gnmPB/f4VrbbGbkVlClGHpsSz0lyBf7eWhDeXJsuQ
-5r07NEVRhoL8UV/mwneEzrWLtegUbCBKO6dlhcUQ9VAzmCFTCGg2fdhKkDeXmjZJ
-pJdIKnUm1lYXv9Ek7YJcDixSMWPRb1HSP8PBruIYTmjozR7bqrb7k9c+8cBuUZAE
-En1LwauHm3YiYLdRRJQScGLW/NxczSJP165mvtKW87lgjo0vh0m9We/FQxvQYtYx
-Hi3vnAjwVQqptzlelO8PqPzfl0kaBCMHfuX1hVG5fVa5dNUxTgECggEBAO6YBm0P
-CiU1mulEuAklFYDuzvMsIGSwVPiFH/piHwuNLBkahv0SWj5gwTY8V2/1IAZLjTWA
-gsbMlAnRWYIiIdDS8eTWqjWqIFzZuZ1ZD8X5yVqF1XEbYRE16HeR3aiQGP3/eIN6
-KxeaaG4LLJmom/h70yjiDnK/XeMk35C9cjPLH+7dgv4u41juejgWCtkSNpBQRF4D
-Jzc2w2kr9O6HRIIpqVHjaqma9apsZFyfq+p5k/kY8WO9ToJhkrAQVXdBN/5ygpqn
-emQcT+RbhXJirRj2PFPYIQWsijtCmfVZR9ngYK55tIic6jd6qyeXksBSe0Qi4bV3
-YltxJPalt46RUOsCggEBAOgIzCb/HGoZkMEjUXA/QEDJ2Ib472fgWYMj7ECbvQOr
-l5sXKKkLA7f9FT+7FA+tmNqkDlaCD0dhkWtavb8PX86mGlKoFuWNX8y3lzjuIsTZ
-vkg/dJ31cWW7w5ewss9gLzO0oC8Bz4m9EH90XcfceU6hW58vZQiLiunQJs4KxEeK
-NBrnUijkZBNYpAIMXNkYNNpI/fOjPZK6jC/XomVvCcrCVoZfc5kc+T/bJ08QKjpR
-oxITC0xLAp1EoDK2YbLFZe9eWz9cLp0SyUTC6fqE97GGU50ohhi+UihES53s9V43
-svQLy1yaQdU3bDDmBZZ2xiMZOA0/+fa0tRt38jV4T8ECggEAfJxBnuvf7JcWlQYi
-6APKO1B+HVrKgEvn1PQSQ37DoBDXGzVTkxDmuPVnc6AIOpzXYPJMicjYhGOMXaRN
-Dz4sUxgY5d+HfgegZ13/J0LAjjFrDDAhzbTy+T4ib3BrSAIaS24FzwUbRHSMXgzP
-+mCpNRnWqt+FlECGFH/Jk5qd7pcD0ok2RPLQIj5K7sf0WnK8tJp3WnJjJN8hJ+ih
-P4K+MQz5NZ+EsZgQ/jUmJYnvC8L7mXmBeQoB2u6C4hllyabyS54awBMARRDUWPvD
-sn3+0a6oy1FxzbjTaSfbqNw8PnqFhBpkQ4VQfjE++qqbJn7tiiR9pXz4jbGGEJt0
-Rq12iQKCAQEAwR35VAeFjaTDfou3jxWFk6aq6QMstibaOTRfwBIeiXx6DKGEvNSm
-/q3LzqQUeUwBaQ+bw1IyBzXkQxZd0DOqiKJkTCEMFXfJoOe4G7DPDUkwfo8ZrxIF
-lCdnDcwJtmEWSBFwNE9sfPX3Uiz2lI4iBFh1mhJnI2qIbjtI4LnDTMtwvGeEUPZt
-eFCRCAdkC2eDLZ4Mhod5irJqVLNCvOtimfeO7f1ph6i+pe/vUnVgv/MMJtHk2FWh
-0mS4dBypSZHTWhsNFLnTLfXhv7H97PxX7s+erbF5kgRs+oiE6ua5/PWcolNiqSrV
-2fBrwnLfebBXDgVCSnzRvQv/o+H7m5cLwQKCAQBSFkNRxHtBWyyeD34yXSCk99f3
-gZ7UKJGnfIytbVQdeGo6WfS+IJP8vzr8nVTD5RsLbc/FQ0ybdIjlyKfKd7YFrpZ5
-MsYcpzSTfWb8OjHW29t8BjECw7DGkatx9hXJEUAz7C7/G9dgWV7qEYfFNIsRmJNt
-CKOMGy79bbwKu2/ylCHwTqUH+qsKzTbLUmzqOBj+4s5R211HFuHIvDjXkDtNe/Tc
-dG6HVace5xHsXaB6J1zIh2t3lA4JHBnrlWaGzkjlSVNaGtvPX0tYX2NarIgcq7uw
-WqfklFQxK9dL96Dl08G4wKixmveqUMdvFPKpDLcGSXqwEAG82XtH3wppCLJN
------END RSA PRIVATE KEY-----
diff --git a/tests/keys/localhost.pem b/tests/keys/localhost.pem
deleted file mode 100644
index 86af6e0e..00000000
--- a/tests/keys/localhost.pem
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFJDCCAwwCCQDEwoQengRnyzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJO
-WjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhBdWNrbGFuZDERMA8GA1UECgwIcGFy
-c2VwaHAxEDAOBgNVBAMMB3BhcnNlY2EwHhcNMjMwNTEyMjA0MjQ0WhcNMjYwMjA1
-MjA0MjQ0WjBVMQswCQYDVQQGEwJOWjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhB
-dWNrbGFuZDERMA8GA1UECgwIcGFyc2VwaHAxEjAQBgNVBAMMCWxvY2FsaG9zdDCC
-AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANhB+NiGfXAgK4yJKdJEU9gC
-kBUVwTmEVYIbHjK/HuWxbDIeVAHMSM1CWFZm72zfcGiLQ2vzqSNQ2mCGpefRlKGG
-E5ch/HPDqeEKb/Qm+UnQTyMjKOMWckNEzqhilOiMHGR0hb6h5givz8aQ7kjp3ELm
-RWaBWJ1rBizooB3fEDAdGtEEIDiq/i2/sSRcFmOeVYJ8ynIJ2/SmqF3KttQAZnuv
-tFRGD+7C+loyxz+vCbAIkl1Smwj3ZsTKfGYGoSQA7Z7QVLzee7QgGmHCWiRmvKxX
-ZfaW27SE7xokw68Dx84FeFYeUTXZugCLFtcHQ/M7enZsfUNjfGqFE88piKXTDgXa
-qqCGKTqUhWYjnvH8AmiSbzUWYCJ+YtAY7wO7IdjrVzPh8pnCRXKefM2xJEJhDbSg
-5lWkla7rJQfvKXuRlyiKonyI5hIYFwzgwPPoz+TKPLRltyzmPdmNshBN8USXOd3Q
-5vG9JWSM2pP/l5UUusRRA2SrDEsud004mnQeCh1IHbF+srudSHQKPyxYOdc/WzUV
-yy+RN53N1VG9JkH60t3Dg0rYiC+wilqS2G56MbgrSN4HTldmcGebzJMIdFpNSKLJ
-uI886kgefd90OdsPqSI8rjPrEVAyL06w7P19/baWyyRlDQL3Do5uvMRk2YGHK2Ej
-malB6uq4MatqOWXoroYrAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAJnoVzVRxyQF
-qUchsTRZZFfPXZI3n6Xn1wI/U5YIUyOODbTLn35c99G/sCbECFmciBZKXLvmiBn0
-tGYphpFFLT+qHtrYn4a29LFCsYDMlmfSJPQ0+V6FNpfqo2xPMDZ8sW+SVwx/PyNx
-D/NyQ1+dZs5jKvVqyddU3e/jNG6hKIJF8rTfM5X2wp8RC55VGUeocWuPLCD9Ozmf
-Xhv6J8Jv9LhkOl9BjudgpQ43so8mfa3InC/1SU/2kjSjc6hpWfyjErVz32Yf1QF0
-ceVgZJ4EoMVecZMFbo6b1cdlg3AoRvBEr0LpMwFWsEWicCPQjWg/wyJLRqhDIvoC
-CWPGZrYsFilhHy9Cx7fOK7ZqLJK+dNbY5It7//TIZ364cTzUpYqfiv7lQ5Xp0c0h
-9FiMCrFX4C3Su0UZfJjZ3KQTJfL0LnkwcvoT98RcNVPFT4Jgbe7thZPFHHZAAmag
-5+2P9Xzz8OsNYUbGhDjd9Pq7gSiM4ZpJ2tc425qCZ2E84YqDYRtwZo3UIca7ktm0
-xckuoVQzxiIE/BhyL5+wL3NLTkgVjWh11XeiKn/h6BaOMj9QKTKc3RzLtqC57oVD
-iMowJq80nQUUsU8I1GibfuLM+0ahcK8an5Lzdl0dS+43eKQLJWhpfBZNgFMfXDEe
-o7eD8auY/MfkFWiUBpWGx7Grb/2a/z1q
------END CERTIFICATE-----
diff --git a/tests/keys/localhost.pubkey.der b/tests/keys/localhost.pubkey.der
deleted file mode 100644
index 6b1e66c5..00000000
Binary files a/tests/keys/localhost.pubkey.der and /dev/null differ
diff --git a/tests/keys/localhost.pubkey.pem b/tests/keys/localhost.pubkey.pem
deleted file mode 100644
index ceed701b..00000000
--- a/tests/keys/localhost.pubkey.pem
+++ /dev/null
@@ -1,14 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2EH42IZ9cCArjIkp0kRT
-2AKQFRXBOYRVghseMr8e5bFsMh5UAcxIzUJYVmbvbN9waItDa/OpI1DaYIal59GU
-oYYTlyH8c8Op4Qpv9Cb5SdBPIyMo4xZyQ0TOqGKU6IwcZHSFvqHmCK/PxpDuSOnc
-QuZFZoFYnWsGLOigHd8QMB0a0QQgOKr+Lb+xJFwWY55VgnzKcgnb9KaoXcq21ABm
-e6+0VEYP7sL6WjLHP68JsAiSXVKbCPdmxMp8ZgahJADtntBUvN57tCAaYcJaJGa8
-rFdl9pbbtITvGiTDrwPHzgV4Vh5RNdm6AIsW1wdD8zt6dmx9Q2N8aoUTzymIpdMO
-BdqqoIYpOpSFZiOe8fwCaJJvNRZgIn5i0BjvA7sh2OtXM+HymcJFcp58zbEkQmEN
-tKDmVaSVruslB+8pe5GXKIqifIjmEhgXDODA8+jP5Mo8tGW3LOY92Y2yEE3xRJc5
-3dDm8b0lZIzak/+XlRS6xFEDZKsMSy53TTiadB4KHUgdsX6yu51IdAo/LFg51z9b
-NRXLL5E3nc3VUb0mQfrS3cODStiIL7CKWpLYbnoxuCtI3gdOV2ZwZ5vMkwh0Wk1I
-osm4jzzqSB5933Q52w+pIjyuM+sRUDIvTrDs/X39tpbLJGUNAvcOjm68xGTZgYcr
-YSOZqUHq6rgxq2o5ZeiuhisCAwEAAQ==
------END PUBLIC KEY-----
diff --git a/tests/keys/parseca.crt b/tests/keys/parseca.crt
deleted file mode 100644
index ba017aa8..00000000
--- a/tests/keys/parseca.crt
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFIjCCAwoCCQDSW4/JivGcBDANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJO
-WjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhBdWNrbGFuZDERMA8GA1UECgwIcGFy
-c2VwaHAxEDAOBgNVBAMMB3BhcnNlY2EwHhcNMjMwNTEyMjA0MjQzWhcNMjYwMzAx
-MjA0MjQzWjBTMQswCQYDVQQGEwJOWjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhB
-dWNrbGFuZDERMA8GA1UECgwIcGFyc2VwaHAxEDAOBgNVBAMMB3BhcnNlY2EwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDWBtWQ37CZfah2JMbiW2m8CuW8
-BSVJhVZzHY70kmBzGdIOK2uv89/Edf0YLkY3I3OL/19KBl8vNcg7g9wEwAx6u02b
-7foX/OukoPYrT6iNIKwpa9OVzYe8+RwVlSkoX0bQ6IGqFCRbDFmrXRItElyvaX9/
-fql1RRVjlA4AeCy8MFPW+OUtRsgCUaDTWUr2kTvn82YPcKtgCKaVlkxZ7aYYsYwj
-xV6AHBb5/HPTadi1hEsSMe3DAm51cNCpcSMWakzFRddOc9na13D3RskBuGm8GAec
-zSx38t7OLnTCKtI6PPxp0GWYrQSNtamvZM3i6fHMWHIyV6/siWWiJJipFmswjxWe
-Hp9mmc1UFrmcJG/mVmvOsJPqjHkRwm6Vxi1b86RizbQ6mw6e+cQGn35WmcwzEf/V
-uM3P382UXAaEjOB21ib9VsBPoJnwTollqDVOr6wLMn92sPTsNpLRPC9+mSDxemfj
-z7JC5U0w2OgS3dOs82UkNNuDmnE1VuCcG0bdFpk1vOEk1weo47UJ4QnopxILAbER
-c1eeoXZUhv1pAs3LbOR229DkCzijhWQgd+BoDUF3p/2M/528/a3W/vIcZMc9dx5B
-qzG5VLhRSPkxs9K5YGYN7G+7OcdhyKNY9LklbOfUitGhdufXAO62b6XRtrE0dfNh
-O1Z6yZHKGib5P+0TNQIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQBBeMaiptQT8teD
-Q63CW7eYc6skvq8qOfB51sqr2NPcxMdLr/6yjtc5Ln2y23YWTB6JpWST0CeRpew3
-TRAjf264xd6EHDiiYqYhsrvQEnyHOtY43UEXeyE6tEP+8djgqvydAx9G+ok9L+IE
-WlzeS5hegUaHcSQCRs5RdSKL9OvN/u7LNqDlcxTrz/cicNyjA5pQCAlbD/3cs/8+
-tmKMYN+iriAm/xKxzVfJsH6qvZZny/mi/8CG+DWqosQAX/GhWHp32l/C30HvAcDf
-FF6r20h58PEfCHK2mQwPRzh2iNlKnCVYYcl5clYx7qPtpwKJyo7X/qeRkNOtnhtL
-KahXHhBfeixYNiNMBK2lUgZ1QD3/0ARJZIYsjo/bLu9uECXrqxXC/HC/YzqgJj+H
-AtPMCFTVxMDlPyMh6tFxgB6CV9SJ+/PKeXjvIaHKeHoSQtpKrgWk5ooh/Xxl2k1Y
-4xGmvZQo1Rp0iIQSZ43sT8QQPw/BJSktxamhhn8ctk5sfOR9ctPk17Tru2tEMV2T
-xAtmduoluSlxDodnAoUi6zCB4nxYhHhCuD3lDuUnmIbYxGwQCbPiiLWGDl3/6XKP
-Fn76bLcFV3yqzwDtSwmIv7yxgF8WdA3F47BOXPqm7SxMtLYNEje65RgnwVHjq6ax
-jTTWuHUVY9pjF76qCHv3PcjIyAdgvQ==
------END CERTIFICATE-----
diff --git a/tests/keys/parseca.fp b/tests/keys/parseca.fp
deleted file mode 100644
index f1678962..00000000
--- a/tests/keys/parseca.fp
+++ /dev/null
@@ -1 +0,0 @@
-AF:05:D0:A9:7C:97:BA:64:A0:E2:88:05:D8:9B:07:9C:4C:55:DD:60
diff --git a/tests/keys/parseca.key b/tests/keys/parseca.key
deleted file mode 100644
index df14941d..00000000
--- a/tests/keys/parseca.key
+++ /dev/null
@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIJKQIBAAKCAgEA1gbVkN+wmX2odiTG4ltpvArlvAUlSYVWcx2O9JJgcxnSDitr
-r/PfxHX9GC5GNyNzi/9fSgZfLzXIO4PcBMAMertNm+36F/zrpKD2K0+ojSCsKWvT
-lc2HvPkcFZUpKF9G0OiBqhQkWwxZq10SLRJcr2l/f36pdUUVY5QOAHgsvDBT1vjl
-LUbIAlGg01lK9pE75/NmD3CrYAimlZZMWe2mGLGMI8VegBwW+fxz02nYtYRLEjHt
-wwJudXDQqXEjFmpMxUXXTnPZ2tdw90bJAbhpvBgHnM0sd/Lezi50wirSOjz8adBl
-mK0EjbWpr2TN4unxzFhyMlev7IlloiSYqRZrMI8Vnh6fZpnNVBa5nCRv5lZrzrCT
-6ox5EcJulcYtW/OkYs20OpsOnvnEBp9+VpnMMxH/1bjNz9/NlFwGhIzgdtYm/VbA
-T6CZ8E6JZag1Tq+sCzJ/drD07DaS0Twvfpkg8Xpn48+yQuVNMNjoEt3TrPNlJDTb
-g5pxNVbgnBtG3RaZNbzhJNcHqOO1CeEJ6KcSCwGxEXNXnqF2VIb9aQLNy2zkdtvQ
-5As4o4VkIHfgaA1Bd6f9jP+dvP2t1v7yHGTHPXceQasxuVS4UUj5MbPSuWBmDexv
-uznHYcijWPS5JWzn1IrRoXbn1wDutm+l0baxNHXzYTtWesmRyhom+T/tEzUCAwEA
-AQKCAgEArIM7t5emSEIx/HCuYpveQTTjckcPhBBW21jy9o3Z8kzYtJUpKt0++6ND
-Cy+ZZy5LH4gK7abvKCWIrPge6zFFndPFva73TEiQQ9V+NvDxYjf4rTZ9iJzvEVIV
-4gul7iXF9fPDOC0eFMmCqY7ObMgFL1qw6zpUKvMxR196XcSAAnxNx9Q9Hd6UrtHO
-+SxbMR1llRPqqv1dFX5DkAViq4XTwMmztM2M22RI3N0xGzKQ+9aTkCnwhKQ8FquF
-dV59Mr8h/EzMPC9DZZMMOjSzJpDXoUYZNLloY5K/Jp/peux7IXgw2LWiforPRc4s
-5PQyw/lf7h9IhO2LHvSsmCI5bulkIXmE0WxAObJt9hgC/cLtc5KMx5WDHoSbgwBX
-PbmeUgRkpOALC6D1EwaVyf0pnFikEVXDzW740IKD21xQDHO+p6TQVdYlZjIX36u6
-oPg6lupxrKgENagVROEBoj12M+aIMbJMZ3HQciSl+rDlsmHehPAFBq80vZbArhCO
-1Rx2V94djn4M9943MOJazCL6iDlVDYpNb5Et4GeldRJt1e3qWwokCwvAlXL0CEdh
-dW3sTCbATLXainpGBySRMzSZYKtthqzDl5sM726q7Q5/B6Hbsi6gA5j2c1qTxeM3
-UjmLXObmIIAYPmqonM0Rn4bhMuHKQDjPUWqL2/z+wPqEsgYhh00CggEBAOyR1jg0
-m3f4g2yJmTfpmyM3F7JkoRnnclg8R1Cc0FCMv8fcmxO6DYrm9tDVYXt361qyzD8l
-QOaM8WbHDD7mIMRjXO4t/zdcD8A1bP8rF1GJZd11KBjYjUCKBtduUM+KOca1FjY9
-qd4UyKx8N/eLQW5bkrpWBfRRJX9PcR56n7RDRge4MqTOSeZojlzjTSazerp4nN9L
-qP/6LeJLsDaLmghYmLhur7fcGysOc+1dq5ZJKXjjPwOIxRMShRe33W/qlMPEZSIJ
-d6mw1+ySWmW0YaoPI5RGOSPcZ6Yooa1k1IwKvBqbQRtGXKFQDBNPGziDZXZJF5lJ
-IO9CPrFvx/8DVe8CggEBAOebAQvHNKtX9wq6ZADRxBGf/UuQtbBCvQLf4xK8bfIj
-4v08X0hdf+zosxNdymXpCLigzC/B9vimWBpZL1nesk3+IueEL5DqyRj06PChRXXU
-kYDJl7KSRiqoGSTJn781LpsOGgwKEG2dahfcpNoiS8PLtAfjOhEAdzITM9cNsNoh
-pxggaY6VH5z4+vFqJJiR5l+3180TFJ/fMaPQCvEn9LTT9DL2CBeDdgDRLhjl3pdj
-hm7X7fpLypZOOlPWZ0XcN60kSjYtm/WZwzNGyuUEgeRWroSt07W5qPYHcnkbSKcy
-3cJ0GFHdlUV7cz4XEueqUlq49Lk8KGIxvZmHKzsILRsCggEAG1F7+2GX0nLQOmhp
-WRuQ3rAt/FvCfstLWQUc9yIkrCiUvO+suMpzZebl+ZeqeieO9hpPm7shk34TIls5
-/sl0XzlaMeb94davuvJwc8b2GmRTbw9oYfYf2aQWxinnCxBbO6cNuZXFV+/ufHyb
-uepK1AOfHgVxCpWUTu9NkMd4Sci6/Yk3z/BCeGj6h593+VAgjAgBlYeXLHgndEpp
-PuNAFlakzCd8Ay9Xs9EncfGvLtuj/mG/lRjmKR2qYOLKn3HnW/QB+bw+JUpWpOsB
-pVz/KjQ1V5oEXy/EiFuI0A0kvkc/EZN8ITou2DH2MwSfkBccUFyAbSMUuoxb0QGn
-hrtL4QKCAQAsUcgQde1JQIsAnYxXb8yiRshUtnteIFdE/ozYYAB2DpH4PZ5KHcJG
-Fn12HkOF3uMRWYvZM7fL+yDu4dQi0W+zZwdM4Emt5I/Y27zblzDQjH3PdEQ4Iq+U
-qBgvpvmPwGCLwVYQqbhdEXtk148gQuHWtNtdiwjoiftFNNF9vJv0Ee6EumcYpsam
-5io3GkWogHriJC8Cij0vHqnEHCKL5UZ5d/nJ6rS/syNYoq68ivheZegqu91JQUmi
-G5QjyOp4PtzUoBYnafDnPaZR4KEg1Az7Ie9BanYR11ZSxjgMnsD3Zc9zz3175PgU
-lLwHzKiMdlZOEAicjbt4luYeQ/Rs1nKzAoIBAQDoivPy96Zlci8WhdfX5GYVi4iq
-+xmQKbVetIWza58zEd1dIMhliugk1WNH3ROwVAtZm7KdTtJiBdhzbXXtXlpJjP3e
-avre816C6VtSEhp7tlHyKvitWLRIo4aLiWpoFnNgNcNz+q84KWeyPUFW7+So990G
-n9Bl6Zp6smcCkSYAuRJMjZJin7j5n6dNS2HIvTwVizRmMK7HGLQtbYwSpL57H/7t
-pTozvA9KzpLEvNPcFDG5p3l9wijLxUS3C4vY/FWhqDlHW9vvoSNFwOTdY6QlFfcf
-WEU8P0UZM09d/ZfE0nGwuRK0gl41dmhLrt90SDgV62BuAoJ2S1m3ggSmrqyn
------END RSA PRIVATE KEY-----
diff --git a/tests/keys/parseca.pem b/tests/keys/parseca.pem
deleted file mode 100644
index ba017aa8..00000000
--- a/tests/keys/parseca.pem
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFIjCCAwoCCQDSW4/JivGcBDANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJO
-WjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhBdWNrbGFuZDERMA8GA1UECgwIcGFy
-c2VwaHAxEDAOBgNVBAMMB3BhcnNlY2EwHhcNMjMwNTEyMjA0MjQzWhcNMjYwMzAx
-MjA0MjQzWjBTMQswCQYDVQQGEwJOWjEMMAoGA1UECAwDQUtMMREwDwYDVQQHDAhB
-dWNrbGFuZDERMA8GA1UECgwIcGFyc2VwaHAxEDAOBgNVBAMMB3BhcnNlY2EwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDWBtWQ37CZfah2JMbiW2m8CuW8
-BSVJhVZzHY70kmBzGdIOK2uv89/Edf0YLkY3I3OL/19KBl8vNcg7g9wEwAx6u02b
-7foX/OukoPYrT6iNIKwpa9OVzYe8+RwVlSkoX0bQ6IGqFCRbDFmrXRItElyvaX9/
-fql1RRVjlA4AeCy8MFPW+OUtRsgCUaDTWUr2kTvn82YPcKtgCKaVlkxZ7aYYsYwj
-xV6AHBb5/HPTadi1hEsSMe3DAm51cNCpcSMWakzFRddOc9na13D3RskBuGm8GAec
-zSx38t7OLnTCKtI6PPxp0GWYrQSNtamvZM3i6fHMWHIyV6/siWWiJJipFmswjxWe
-Hp9mmc1UFrmcJG/mVmvOsJPqjHkRwm6Vxi1b86RizbQ6mw6e+cQGn35WmcwzEf/V
-uM3P382UXAaEjOB21ib9VsBPoJnwTollqDVOr6wLMn92sPTsNpLRPC9+mSDxemfj
-z7JC5U0w2OgS3dOs82UkNNuDmnE1VuCcG0bdFpk1vOEk1weo47UJ4QnopxILAbER
-c1eeoXZUhv1pAs3LbOR229DkCzijhWQgd+BoDUF3p/2M/528/a3W/vIcZMc9dx5B
-qzG5VLhRSPkxs9K5YGYN7G+7OcdhyKNY9LklbOfUitGhdufXAO62b6XRtrE0dfNh
-O1Z6yZHKGib5P+0TNQIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQBBeMaiptQT8teD
-Q63CW7eYc6skvq8qOfB51sqr2NPcxMdLr/6yjtc5Ln2y23YWTB6JpWST0CeRpew3
-TRAjf264xd6EHDiiYqYhsrvQEnyHOtY43UEXeyE6tEP+8djgqvydAx9G+ok9L+IE
-WlzeS5hegUaHcSQCRs5RdSKL9OvN/u7LNqDlcxTrz/cicNyjA5pQCAlbD/3cs/8+
-tmKMYN+iriAm/xKxzVfJsH6qvZZny/mi/8CG+DWqosQAX/GhWHp32l/C30HvAcDf
-FF6r20h58PEfCHK2mQwPRzh2iNlKnCVYYcl5clYx7qPtpwKJyo7X/qeRkNOtnhtL
-KahXHhBfeixYNiNMBK2lUgZ1QD3/0ARJZIYsjo/bLu9uECXrqxXC/HC/YzqgJj+H
-AtPMCFTVxMDlPyMh6tFxgB6CV9SJ+/PKeXjvIaHKeHoSQtpKrgWk5ooh/Xxl2k1Y
-4xGmvZQo1Rp0iIQSZ43sT8QQPw/BJSktxamhhn8ctk5sfOR9ctPk17Tru2tEMV2T
-xAtmduoluSlxDodnAoUi6zCB4nxYhHhCuD3lDuUnmIbYxGwQCbPiiLWGDl3/6XKP
-Fn76bLcFV3yqzwDtSwmIv7yxgF8WdA3F47BOXPqm7SxMtLYNEje65RgnwVHjq6ax
-jTTWuHUVY9pjF76qCHv3PcjIyAdgvQ==
------END CERTIFICATE-----
diff --git a/tests/keys/parseca.srl b/tests/keys/parseca.srl
deleted file mode 100644
index 521cec7f..00000000
--- a/tests/keys/parseca.srl
+++ /dev/null
@@ -1 +0,0 @@
-C4C2841E9E0467CC
diff --git a/tests/server.js b/tests/server.js
deleted file mode 100644
index a1e75205..00000000
--- a/tests/server.js
+++ /dev/null
@@ -1,153 +0,0 @@
-import express from 'express';
-import { ParseServer } from 'parse-server';
-import path from 'path';
-import fs from 'fs';
-import https from 'https';
-import emailAdapter from './MockEmailAdapter.js';
-const app = express();
-const __dirname = path.resolve();
-
-const server = new ParseServer({
- appName: "MyTestApp",
- appId: "app-id-here",
- masterKey: "master-key-here",
- restKey: "rest-api-key-here",
- databaseURI: "mongodb://localhost/test",
- cloud: __dirname + "/tests/cloud-code.js",
- publicServerURL: "http://localhost:1337/parse",
- logsFolder: path.resolve(process.cwd(), 'logs'),
- verbose: true,
- silent: true,
- push: {
- android: {
- senderId: "blank-sender-id",
- apiKey: "not-a-real-api-key"
- }
- },
- emailAdapter: emailAdapter({
- apiKey: 'not-a-real-api-key',
- domain: 'example.com',
- fromAddress: 'example@example.com',
- }),
- auth: {
- twitter: {
- consumer_key: "not_a_real_consumer_key",
- consumer_secret: "not_a_real_consumer_secret"
- },
- facebook: {
- appIds: "not_a_real_facebook_app_id"
- }
- },
- liveQuery: {
- classNames: ["TestObject", "_User"],
- },
- fileUpload: {
- enableForPublic: true,
- enableForAnonymousUser: true,
- enableForAuthenticatedUser: true,
- },
-});
-
-await server.start();
-
-// Serve the Parse API on the /parse URL prefix
-app.use('/parse', server.app);
-
-const port = 1337;
-app.listen(port, function() {
- console.error('[ Parse Test Http Server running on port ' + port + ' ]');
-});
-
-const options = {
- port: process.env.PORT || 1338,
- server_key: process.env.SERVER_KEY || __dirname + '/tests/keys/localhost.key',
- server_crt: process.env.SERVER_CRT || __dirname + '/tests/keys/localhost.crt',
- server_fp: process.env.SERVER_FP || __dirname + '/tests/keys/localhost.fp',
- client_key: process.env.CLIENT_KEY || __dirname + '/tests/keys/client.key',
- client_crt: process.env.CLIENT_CRT || __dirname + '/tests/keys/client.crt',
- client_fp: process.env.CLIENT_FP || __dirname + '/tests/keys/client.fp',
- ca: process.env.TLS_CA || __dirname + '/tests/keys/parseca.crt'
-}
-
-// Load fingerprints
-const clientFingerprints = [fs.readFileSync(options.server_fp).toString().replace('\n', '')];
-
-// Configure server
-const serverOptions = {
- key: fs.readFileSync(options.server_key),
- cert: fs.readFileSync(options.server_crt),
- ca: fs.readFileSync(options.ca),
- requestCert: true,
- rejectUnauthorized: true
-}
-
-function onRequest(req) {
- console.log(
- new Date(),
- req.connection.remoteAddress,
- req.socket.getPeerCertificate().subject.CN,
- req.method,
- req.baseUrl,
- );
-}
-
-// Create TLS enabled server
-const httpsServer = https.createServer(serverOptions, app);
-httpsServer.on('request', onRequest);
-
-// Start Server
-httpsServer.listen(options.port, function() {
- console.error('[ Parse Test Https Server running on port ' + options.port + ' ]');
-});
-
-// Create TLS request
-const requestOptions = {
- hostname: 'localhost',
- port: options.port,
- path: '/parse/health',
- method: 'GET',
- key: fs.readFileSync(options.client_key),
- cert: fs.readFileSync(options.client_crt),
- ca: fs.readFileSync(options.ca),
- requestCert: true,
- rejectUnauthorized: true,
- maxCachedSessions: 0,
- headers: {
- 'Content-Type': 'application/json',
- 'X-Parse-Application-Id': 'app-id-here',
- 'X-Parse-Master-Key': 'master-key-here',
- 'X-Parse-REST-API-Key': 'rest-api-key-here',
- }
-};
-
-// Create agent (required for custom trust list)
-requestOptions.agent = new https.Agent(requestOptions);
-
-const req = https.request(requestOptions, (res) => {
- console.log('statusCode:', res.statusCode);
-});
-req.end();
-
-// Pin server certs
-req.on('socket', socket => {
- socket.on('secureConnect', () => {
- const fingerprint = socket.getPeerCertificate().fingerprint;
-
- // Check if certificate is valid
- if (socket.authorized === false) {
- req.emit('error', new Error(socket.authorizationError));
- return req.destroy();
- }
-
- // Check if fingerprint matches
- if (clientFingerprints.indexOf(fingerprint) === -1) {
- req.emit('error', new Error('Fingerprint does not match'));
- return req.destroy();
- }
- });
-});
-
-req.on('error', (e) => {
- console.error(e);
- process.exit(0);
-});