[
  {
    "path": ".gitignore",
    "content": ".DS_Store\n.dart_tool/\n\n.packages\n.pub/\n\nbuild/\nios/.generated/\nios/Flutter/Generated.xcconfig\nios/Runner/GeneratedPluginRegistrant.*\n"
  },
  {
    "path": ".idea/codeStyles/Project.xml",
    "content": "<component name=\"ProjectCodeStyleConfiguration\">\n  <code_scheme name=\"Project\" version=\"173\">\n    <Objective-C-extensions>\n      <file>\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"Import\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"Macro\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"Typedef\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"Enum\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"Constant\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"Global\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"Struct\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"FunctionPredecl\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"Function\" />\n      </file>\n      <class>\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"Property\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"Synthesize\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"InitMethod\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"StaticMethod\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"InstanceMethod\" />\n        <option name=\"com.jetbrains.cidr.lang.util.OCDeclarationKind\" value=\"DeallocMethod\" />\n      </class>\n      <extensions>\n        <pair source=\"cpp\" header=\"h\" fileNamingConvention=\"NONE\" />\n        <pair source=\"c\" header=\"h\" fileNamingConvention=\"NONE\" />\n      </extensions>\n    </Objective-C-extensions>\n  </code_scheme>\n</component>"
  },
  {
    "path": ".idea/dictionaries/suraj.xml",
    "content": "<component name=\"ProjectDictionaryState\">\n  <dictionary name=\"suraj\">\n    <words>\n      <w>wordpress</w>\n    </words>\n  </dictionary>\n</component>"
  },
  {
    "path": ".idea/libraries/Dart_Packages.xml",
    "content": "<component name=\"libraryTable\">\n  <library name=\"Dart Packages\" type=\"DartPackagesLibraryType\">\n    <properties>\n      <option name=\"packageNameToDirsMap\">\n        <entry key=\"archive\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/archive-2.0.11/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"args\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/args-1.5.2/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"async\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.4.0/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"boolean_selector\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-1.0.5/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"charcode\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.1.2/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"collection\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.14.11/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"convert\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/convert-2.1.1/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"crypto\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/crypto-2.1.3/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"csslib\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/csslib-0.16.1/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"cupertino_icons\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-0.1.3/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"flutter\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/packages/flutter/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"flutter_html\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_html-0.9.9/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"flutter_test\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/packages/flutter_test/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"html\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/html-0.14.0+3/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"http\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+4/lib\" />\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+1/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"http_parser\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.4/lib\" />\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.3/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"image\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/image-2.1.4/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"matcher\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.6/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"meta\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.1.8/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"path\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.6.4/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"pedantic\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/pedantic-1.8.0+1/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"petitparser\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/petitparser-2.4.0/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"quiver\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/quiver-2.0.5/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"sky_engine\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/bin/cache/pkg/sky_engine/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"source_span\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.5.5/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"stack_trace\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.9.3/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"stream_channel\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.0.0/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"string_scanner\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.0.5/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"term_glyph\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.1.0/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"test_api\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.11/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"typed_data\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.1.6/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"vector_math\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.0.8/lib\" />\n            </list>\n          </value>\n        </entry>\n        <entry key=\"xml\">\n          <value>\n            <list>\n              <option value=\"C:/flutter/.pub-cache/hosted/pub.dartlang.org/xml-3.5.0/lib\" />\n            </list>\n          </value>\n        </entry>\n      </option>\n    </properties>\n    <CLASSES>\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/archive-2.0.11/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/args-1.5.2/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.4.0/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-1.0.5/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.1.2/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.14.11/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/convert-2.1.1/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/crypto-2.1.3/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/csslib-0.16.1/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-0.1.3/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_html-0.9.9/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/html-0.14.0+3/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+1/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+4/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.3/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.4/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/image-2.1.4/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.6/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.1.8/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.6.4/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/pedantic-1.8.0+1/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/petitparser-2.4.0/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/quiver-2.0.5/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.5.5/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.9.3/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.0.0/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.0.5/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.1.0/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.11/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.1.6/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.0.8/lib\" />\n      <root url=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/xml-3.5.0/lib\" />\n      <root url=\"file://C:/flutter/bin/cache/pkg/sky_engine/lib\" />\n      <root url=\"file://C:/flutter/packages/flutter/lib\" />\n      <root url=\"file://C:/flutter/packages/flutter_test/lib\" />\n    </CLASSES>\n    <JAVADOC />\n    <SOURCES />\n  </library>\n</component>"
  },
  {
    "path": ".idea/libraries/Dart_SDK.xml",
    "content": "<component name=\"libraryTable\">\n  <library name=\"Dart SDK\">\n    <CLASSES>\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/async\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/cli\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/collection\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/convert\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/core\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/developer\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/ffi\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/html\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/indexed_db\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/io\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/isolate\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/js\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/js_util\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/math\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/mirrors\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/svg\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/typed_data\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/wasm\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/web_audio\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/web_gl\" />\n      <root url=\"file://C:/flutter/bin/cache/dart-sdk/lib/web_sql\" />\n    </CLASSES>\n    <JAVADOC />\n    <SOURCES />\n  </library>\n</component>"
  },
  {
    "path": ".idea/libraries/Flutter_Plugins.xml",
    "content": "<component name=\"libraryTable\">\n  <library name=\"Flutter Plugins\" type=\"FlutterPluginsLibraryType\">\n    <CLASSES />\n    <JAVADOC />\n    <SOURCES />\n  </library>\n</component>"
  },
  {
    "path": ".idea/modules.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectModuleManager\">\n    <modules>\n      <module fileurl=\"file://$PROJECT_DIR$/flutter_wordpress.iml\" filepath=\"$PROJECT_DIR$/flutter_wordpress.iml\" />\n    </modules>\n  </component>\n</project>\n"
  },
  {
    "path": ".idea/vcs.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"VcsDirectoryMappings\">\n    <mapping directory=\"\" vcs=\"Git\" />\n  </component>\n</project>"
  },
  {
    "path": ".idea/workspace.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"CMakeSettings\">\n    <configurations>\n      <configuration PROFILE_NAME=\"Debug\" CONFIG_NAME=\"Debug\" />\n    </configurations>\n  </component>\n  <component name=\"ChangeListManager\">\n    <list default=\"true\" id=\"73f4dbd7-3b98-4a12-b0ae-5e3c44fac77c\" name=\"Default Changelist\" comment=\"CreateUser Added!!!\">\n      <change beforePath=\"$PROJECT_DIR$/.idea/workspace.xml\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/.idea/workspace.xml\" afterDir=\"false\" />\n    </list>\n    <ignored path=\"$PROJECT_DIR$/.dart_tool/\" />\n    <ignored path=\"$PROJECT_DIR$/.idea/\" />\n    <ignored path=\"$PROJECT_DIR$/.pub/\" />\n    <ignored path=\"$PROJECT_DIR$/build/\" />\n    <option name=\"EXCLUDED_CONVERTED_TO_IGNORED\" value=\"true\" />\n    <option name=\"TRACKING_ENABLED\" value=\"true\" />\n    <option name=\"SHOW_DIALOG\" value=\"false\" />\n    <option name=\"HIGHLIGHT_CONFLICTS\" value=\"true\" />\n    <option name=\"HIGHLIGHT_NON_ACTIVE_CHANGELIST\" value=\"false\" />\n    <option name=\"LAST_RESOLUTION\" value=\"IGNORE\" />\n  </component>\n  <component name=\"FUSProjectUsageTrigger\">\n    <session id=\"-603339889\">\n      <usages-collector id=\"statistics.lifecycle.project\">\n        <counts>\n          <entry key=\"project.closed\" value=\"15\" />\n          <entry key=\"project.open.time.1\" value=\"1\" />\n          <entry key=\"project.open.time.18\" value=\"1\" />\n          <entry key=\"project.open.time.24\" value=\"1\" />\n          <entry key=\"project.open.time.29\" value=\"1\" />\n          <entry key=\"project.open.time.40\" value=\"1\" />\n          <entry key=\"project.open.time.42\" value=\"1\" />\n          <entry key=\"project.open.time.45\" value=\"1\" />\n          <entry key=\"project.open.time.46\" value=\"1\" />\n          <entry key=\"project.open.time.51\" value=\"2\" />\n          <entry key=\"project.open.time.52\" value=\"1\" />\n          <entry key=\"project.open.time.53\" value=\"1\" />\n          <entry key=\"project.open.time.55\" value=\"1\" />\n          <entry key=\"project.open.time.59\" value=\"4\" />\n          <entry key=\"project.open.time.64\" value=\"1\" />\n          <entry key=\"project.opened\" value=\"18\" />\n        </counts>\n      </usages-collector>\n      <usages-collector id=\"statistics.file.extensions.open\">\n        <counts>\n          <entry key=\"dart\" value=\"337\" />\n          <entry key=\"gitignore\" value=\"1\" />\n          <entry key=\"gradle\" value=\"1\" />\n          <entry key=\"iml\" value=\"1\" />\n          <entry key=\"md\" value=\"11\" />\n          <entry key=\"metadata\" value=\"1\" />\n          <entry key=\"packages\" value=\"1\" />\n          <entry key=\"xml\" value=\"2\" />\n          <entry key=\"yaml\" value=\"14\" />\n        </counts>\n      </usages-collector>\n      <usages-collector id=\"statistics.file.types.open\">\n        <counts>\n          <entry key=\"Dart\" value=\"337\" />\n          <entry key=\"Groovy\" value=\"1\" />\n          <entry key=\"IDEA_MODULE\" value=\"1\" />\n          <entry key=\"Markdown\" value=\"9\" />\n          <entry key=\"PLAIN_TEXT\" value=\"5\" />\n          <entry key=\"XML\" value=\"2\" />\n          <entry key=\"YAML\" value=\"14\" />\n        </counts>\n      </usages-collector>\n      <usages-collector id=\"statistics.file.extensions.edit\">\n        <counts>\n          <entry key=\"dart\" value=\"46855\" />\n          <entry key=\"md\" value=\"399\" />\n          <entry key=\"xml\" value=\"22\" />\n          <entry key=\"yaml\" value=\"175\" />\n        </counts>\n      </usages-collector>\n      <usages-collector id=\"statistics.file.types.edit\">\n        <counts>\n          <entry key=\"Dart\" value=\"46855\" />\n          <entry key=\"Markdown\" value=\"399\" />\n          <entry key=\"XML\" value=\"22\" />\n          <entry key=\"YAML\" value=\"175\" />\n        </counts>\n      </usages-collector>\n    </session>\n  </component>\n  <component name=\"FileEditorManager\">\n    <leaf SIDE_TABS_SIZE_LIMIT_KEY=\"300\">\n      <file leaf-file-name=\"login.dart\" pinned=\"false\" current-in-tab=\"true\">\n        <entry file=\"file://$PROJECT_DIR$/example/lib/login.dart\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"100\">\n              <caret line=\"45\" lean-forward=\"true\" selection-start-line=\"45\" selection-end-line=\"45\" />\n              <folding>\n                <element signature=\"e#0#39#0\" expanded=\"true\" />\n              </folding>\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"display_posts.dart\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/example/lib/display_posts.dart\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"144\">\n              <caret line=\"363\" column=\"30\" lean-forward=\"true\" selection-start-line=\"363\" selection-start-column=\"30\" selection-end-line=\"363\" selection-end-column=\"30\" />\n              <folding>\n                <element signature=\"e#0#39#0\" expanded=\"true\" />\n                <element signature=\"e#1127#1174#0\" />\n                <element signature=\"e#1220#1826#0\" />\n                <element signature=\"e#1977#2583#0\" />\n                <element signature=\"e#2680#3020#0\" />\n                <element signature=\"e#3119#3480#0\" />\n                <element signature=\"e#3666#3858#0\" />\n                <element signature=\"e#3909#4110#0\" />\n                <element signature=\"e#4182#4394#0\" />\n                <element signature=\"e#4546#4901#0\" />\n                <element signature=\"e#4931#5144#0\" />\n              </folding>\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"flutter_wordpress.dart\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/lib/flutter_wordpress.dart\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"200\">\n              <caret line=\"659\" column=\"43\" selection-start-line=\"659\" selection-start-column=\"43\" selection-end-line=\"659\" selection-end-column=\"43\" />\n              <folding>\n                <element signature=\"e#21968#22524#0\" />\n                <element signature=\"e#22693#23654#0\" />\n              </folding>\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"user.dart\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/lib/schemas/user.dart\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"-4884\">\n              <caret line=\"129\" column=\"6\" selection-start-line=\"129\" selection-start-column=\"6\" selection-end-line=\"129\" selection-end-column=\"6\" />\n            </state>\n          </provider>\n        </entry>\n      </file>\n    </leaf>\n  </component>\n  <component name=\"FileTemplateManagerImpl\">\n    <option name=\"RECENT_TEMPLATES\">\n      <list>\n        <option value=\"Dart File\" />\n      </list>\n    </option>\n  </component>\n  <component name=\"FindInProjectRecents\">\n    <findStrings>\n      <find>FetchUsersResult</find>\n      <find>fontVariationSettings</find>\n      <find>jwt</find>\n      <find>createPo</find>\n      <find>createPost</find>\n      <find>dynamic</find>\n      <find>meta</find>\n      <find>updatePost</find>\n      <find>fetchPosts</find>\n      <find>_onValidUser</find>\n      <find>me</find>\n      <find>then</find>\n      <find>comment</find>\n      <find>createComment</find>\n      <find>updatepost</find>\n      <find>userid</find>\n      <find>user.id</find>\n      <find>user</find>\n      <find>&gt;= 200 &amp;&amp; response.statusCode &lt; 300</find>\n      <find>deletePst</find>\n      <find>update user with</find>\n      <find>deleteUser</find>\n      <find>fetchUsers</find>\n      <find>createuser</find>\n      <find>deleteComment</find>\n      <find>updatePOst</find>\n      <find>updateUser</find>\n      <find>role</find>\n      <find>createUser</find>\n      <find>create</find>\n    </findStrings>\n    <replaceStrings>\n      <replace>import</replace>\n      <replace>this.</replace>\n      <replace>,</replace>\n      <replace>;</replace>\n      <replace>:'${}',</replace>\n      <replace>if(this.\\</replace>\n      <replace>final</replace>\n      <replace>set</replace>\n      <replace>:</replace>\n    </replaceStrings>\n    <dirStrings>\n      <dir>E:\\DSI\\2019\\Flutter\\flutter_wordpress\\lib\\schemas</dir>\n    </dirStrings>\n  </component>\n  <component name=\"Git.Settings\">\n    <option name=\"PREVIOUS_COMMIT_AUTHORS\">\n      <list>\n        <option value=\"ymakarim &lt;ymakarim@gmail.com&gt;\" />\n        <option value=\"Yahya Makarim &lt;ymakarim@gmail.com&gt;\" />\n      </list>\n    </option>\n    <option name=\"ROOT_SYNC\" value=\"DONT_SYNC\" />\n    <option name=\"RECENT_GIT_ROOT_PATH\" value=\"$PROJECT_DIR$\" />\n  </component>\n  <component name=\"IdeDocumentHistory\">\n    <option name=\"CHANGED_PATHS\">\n      <list>\n        <option value=\"$PROJECT_DIR$/lib/schemas/categories.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/tags.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/post_statuses.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/labels.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/capabilities.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/settings.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/auth_error.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/request_error.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/error.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/jwt_response.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/users.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/category.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/comments.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/pages.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/post_types.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/tag.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/taxonomies.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/post_request.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/request.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/request_post.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/params_post.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/wordpress_error.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/parameters.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/params_comment_list.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/params_category_list.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/params_tag_list.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/params_post_list.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/params_page_list.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/params_user_list.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/content.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/excerpt.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/guid.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/title.dart\" />\n        <option value=\"$PROJECT_DIR$/README.md\" />\n        <option value=\"$PROJECT_DIR$/example/pubspec.yaml\" />\n        <option value=\"$PROJECT_DIR$/lib/requests/params_media_list.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/constants.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/links.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/media.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/comment.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/post.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/comment_hierarchy.dart\" />\n        <option value=\"$PROJECT_DIR$/example/lib/post_page.dart\" />\n        <option value=\"$PROJECT_DIR$/example/README.md\" />\n        <option value=\"$PROJECT_DIR$/pubspec.yaml\" />\n        <option value=\"$PROJECT_DIR$/example/android/app/build.gradle\" />\n        <option value=\"$PROJECT_DIR$/example/lib/main.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/schemas/user.dart\" />\n        <option value=\"$PROJECT_DIR$/lib/flutter_wordpress.dart\" />\n        <option value=\"$PROJECT_DIR$/example/lib/display_posts.dart\" />\n        <option value=\"$PROJECT_DIR$/example/lib/login.dart\" />\n      </list>\n    </option>\n  </component>\n  <component name=\"ProjectFrameBounds\" extendedState=\"6\">\n    <option name=\"x\" value=\"85\" />\n    <option name=\"y\" value=\"25\" />\n    <option name=\"width\" value=\"1750\" />\n    <option name=\"height\" value=\"970\" />\n  </component>\n  <component name=\"ProjectView\">\n    <navigator currentView=\"ProjectPane\" proportions=\"\" version=\"1\">\n      <foldersAlwaysOnTop value=\"true\" />\n    </navigator>\n    <panes>\n      <pane id=\"AndroidView\">\n        <subPane>\n          <expand>\n            <path>\n              <item name=\"flutter_wordpress\" type=\"1abcf292:AndroidViewProjectNode\" />\n              <item name=\"flutter_wordpress\" type=\"e9137016:NonAndroidModuleNode\" />\n            </path>\n          </expand>\n          <select />\n        </subPane>\n      </pane>\n      <pane id=\"PackagesPane\" />\n      <pane id=\"ProjectPane\">\n        <subPane>\n          <expand>\n            <path>\n              <item name=\"flutter_wordpress\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"flutter_wordpress\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"flutter_wordpress\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"flutter_wordpress\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"lib\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n          </expand>\n          <select />\n        </subPane>\n      </pane>\n      <pane id=\"Scope\" />\n    </panes>\n  </component>\n  <component name=\"PropertiesComponent\">\n    <property name=\"dart.analysis.tool.window.force.activate\" value=\"false\" />\n    <property name=\"io.flutter.reload.alreadyRun\" value=\"true\" />\n    <property name=\"last_opened_file_path\" value=\"$PROJECT_DIR$\" />\n    <property name=\"settings.editor.selected.configurable\" value=\"vcs.Git\" />\n    <property name=\"show.migrate.to.gradle.popup\" value=\"false\" />\n  </component>\n  <component name=\"RunDashboard\">\n    <option name=\"ruleStates\">\n      <list>\n        <RuleState>\n          <option name=\"name\" value=\"ConfigurationTypeDashboardGroupingRule\" />\n        </RuleState>\n        <RuleState>\n          <option name=\"name\" value=\"StatusDashboardGroupingRule\" />\n        </RuleState>\n      </list>\n    </option>\n  </component>\n  <component name=\"RunManager\">\n    <configuration name=\"main.dart\" type=\"FlutterRunConfigurationType\" factoryName=\"Flutter\">\n      <option name=\"filePath\" value=\"$PROJECT_DIR$/example/lib/main.dart\" />\n    </configuration>\n  </component>\n  <component name=\"SvnConfiguration\">\n    <configuration />\n  </component>\n  <component name=\"TaskManager\">\n    <task active=\"true\" id=\"Default\" summary=\"Default task\">\n      <changelist id=\"73f4dbd7-3b98-4a12-b0ae-5e3c44fac77c\" name=\"Default Changelist\" comment=\"\" />\n      <created>1549864063234</created>\n      <option name=\"number\" value=\"Default\" />\n      <option name=\"presentableId\" value=\"Default\" />\n      <updated>1549864063234</updated>\n    </task>\n    <task id=\"LOCAL-00001\" summary=\"PostUpdate Added!\">\n      <created>1586516766033</created>\n      <option name=\"number\" value=\"00001\" />\n      <option name=\"presentableId\" value=\"LOCAL-00001\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1586516766033</updated>\n    </task>\n    <task id=\"LOCAL-00002\" summary=\"PostDelete Added!\">\n      <created>1587208860611</created>\n      <option name=\"number\" value=\"00002\" />\n      <option name=\"presentableId\" value=\"LOCAL-00002\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1587208860611</updated>\n    </task>\n    <task id=\"LOCAL-00003\" summary=\"CommentDelete Added!\">\n      <created>1587209299445</created>\n      <option name=\"number\" value=\"00003\" />\n      <option name=\"presentableId\" value=\"LOCAL-00003\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1587209299445</updated>\n    </task>\n    <task id=\"LOCAL-00004\" summary=\"UserDelete Added!\">\n      <created>1587209498939</created>\n      <option name=\"number\" value=\"00004\" />\n      <option name=\"presentableId\" value=\"LOCAL-00004\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1587209498939</updated>\n    </task>\n    <task id=\"LOCAL-00005\" summary=\"updateComment Added!\">\n      <created>1587210411959</created>\n      <option name=\"number\" value=\"00005\" />\n      <option name=\"presentableId\" value=\"LOCAL-00005\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1587210411959</updated>\n    </task>\n    <task id=\"LOCAL-00006\" summary=\"updateUser Added!\">\n      <created>1587210912739</created>\n      <option name=\"number\" value=\"00006\" />\n      <option name=\"presentableId\" value=\"LOCAL-00006\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1587210912739</updated>\n    </task>\n    <task id=\"LOCAL-00007\" summary=\"Create, Update and Delete Comment. Create, Update and Delete Post. Update and Delete User.\">\n      <created>1587236306886</created>\n      <option name=\"number\" value=\"00007\" />\n      <option name=\"presentableId\" value=\"LOCAL-00007\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1587236306886</updated>\n    </task>\n    <task id=\"LOCAL-00008\" summary=\"Final Touches!!\">\n      <created>1587236473336</created>\n      <option name=\"number\" value=\"00008\" />\n      <option name=\"presentableId\" value=\"LOCAL-00008\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1587236473336</updated>\n    </task>\n    <task id=\"LOCAL-00009\" summary=\"CreateUser Added!!!\">\n      <created>1587501064903</created>\n      <option name=\"number\" value=\"00009\" />\n      <option name=\"presentableId\" value=\"LOCAL-00009\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1587501064903</updated>\n    </task>\n    <option name=\"localTasksCounter\" value=\"10\" />\n    <servers />\n  </component>\n  <component name=\"ToolWindowManager\">\n    <frame x=\"-7\" y=\"-7\" width=\"1550\" height=\"838\" extended-state=\"6\" />\n    <editor active=\"true\" />\n    <layout>\n      <window_info anchor=\"bottom\" id=\"Android Profiler\" order=\"11\" show_stripe_button=\"false\" />\n      <window_info id=\"Build Variants\" order=\"6\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Event Log\" order=\"4\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Dart Analysis\" order=\"9\" weight=\"0.32907802\" />\n      <window_info anchor=\"right\" id=\"Flutter Outline\" order=\"1\" weight=\"0.3295302\" />\n      <window_info anchor=\"bottom\" id=\"Logcat\" order=\"10\" />\n      <window_info id=\"Capture Tool\" order=\"3\" />\n      <window_info id=\"Designer\" order=\"2\" />\n      <window_info id=\"Structure\" order=\"4\" side_tool=\"true\" />\n      <window_info anchor=\"right\" id=\"Device File Explorer\" order=\"5\" side_tool=\"true\" weight=\"0.3295302\" />\n      <window_info anchor=\"bottom\" id=\"Debug\" order=\"2\" weight=\"0.32909605\" />\n      <window_info anchor=\"bottom\" id=\"TODO\" order=\"1\" />\n      <window_info anchor=\"right\" id=\"Palette&#9;\" order=\"3\" />\n      <window_info id=\"Image Layers\" order=\"0\" />\n      <window_info anchor=\"right\" id=\"Capture Analysis\" order=\"4\" />\n      <window_info anchor=\"bottom\" id=\"Flutter Performance\" order=\"5\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Run\" order=\"0\" visible=\"true\" weight=\"0.43502825\" />\n      <window_info anchor=\"bottom\" id=\"Version Control\" order=\"6\" />\n      <window_info anchor=\"bottom\" id=\"Terminal\" order=\"3\" weight=\"0.32909605\" />\n      <window_info id=\"Captures\" order=\"7\" side_tool=\"true\" />\n      <window_info content_ui=\"combo\" id=\"Project\" order=\"5\" visible=\"true\" weight=\"0.24161074\" />\n      <window_info anchor=\"right\" id=\"Android WiFi ADB\" order=\"6\" />\n      <window_info anchor=\"right\" id=\"Theme Preview\" order=\"0\" />\n      <window_info id=\"Favorites\" order=\"1\" side_tool=\"true\" />\n      <window_info anchor=\"right\" id=\"Flutter Inspector\" order=\"6\" weight=\"0.3295302\" />\n      <window_info anchor=\"bottom\" id=\"Inspection\" order=\"5\" weight=\"0.4\" />\n      <window_info anchor=\"right\" id=\"Commander\" internal_type=\"SLIDING\" order=\"0\" type=\"SLIDING\" weight=\"0.4\" />\n      <window_info anchor=\"bottom\" id=\"Find\" order=\"7\" weight=\"0.32907802\" />\n      <window_info anchor=\"bottom\" id=\"Cvs\" order=\"4\" weight=\"0.25\" />\n      <window_info anchor=\"right\" id=\"Ant Build\" order=\"1\" weight=\"0.25\" />\n      <window_info anchor=\"right\" auto_hide=\"true\" x=\"0\" y=\"0\" width=\"337\" height=\"638\" id=\"Documentation\" order=\"2\" side_tool=\"true\" type=\"SLIDING\" weight=\"0.3295302\" />\n      <window_info active=\"true\" anchor=\"bottom\" id=\"Messages\" order=\"8\" visible=\"true\" weight=\"0.32768363\" />\n      <window_info anchor=\"right\" content_ui=\"combo\" id=\"Hierarchy\" order=\"2\" weight=\"0.25\" />\n      <window_info anchor=\"bottom\" id=\"Message\" order=\"0\" />\n    </layout>\n    <layout-to-restore>\n      <window_info anchor=\"bottom\" id=\"Dart Analysis\" order=\"9\" weight=\"0.32907802\" />\n      <window_info anchor=\"right\" id=\"Device File Explorer\" order=\"5\" side_tool=\"true\" weight=\"0.3295302\" />\n      <window_info anchor=\"right\" id=\"Capture Analysis\" order=\"4\" />\n      <window_info content_ui=\"combo\" id=\"Project\" order=\"5\" visible=\"true\" weight=\"0.24161074\" />\n      <window_info active=\"true\" anchor=\"bottom\" id=\"Run\" order=\"0\" visible=\"true\" weight=\"0.32907802\" />\n      <window_info anchor=\"right\" id=\"Theme Preview\" order=\"0\" />\n      <window_info anchor=\"right\" id=\"Flutter Inspector\" order=\"6\" weight=\"0.3295302\" />\n      <window_info id=\"Captures\" order=\"7\" side_tool=\"true\" />\n      <window_info anchor=\"right\" id=\"Flutter Outline\" order=\"1\" weight=\"0.3295302\" />\n      <window_info id=\"Structure\" order=\"4\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"TODO\" order=\"1\" />\n      <window_info id=\"Favorites\" order=\"1\" side_tool=\"true\" />\n      <window_info id=\"Build Variants\" order=\"6\" side_tool=\"true\" />\n      <window_info id=\"Image Layers\" order=\"0\" />\n      <window_info id=\"Designer\" order=\"2\" />\n      <window_info anchor=\"bottom\" id=\"Debug\" order=\"2\" />\n      <window_info anchor=\"right\" auto_hide=\"true\" x=\"0\" y=\"0\" width=\"337\" height=\"638\" id=\"Documentation\" order=\"2\" side_tool=\"true\" type=\"SLIDING\" weight=\"0.3295302\" />\n      <window_info anchor=\"right\" id=\"Palette&#9;\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Terminal\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Event Log\" order=\"4\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Flutter Performance\" order=\"5\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Version Control\" order=\"6\" />\n      <window_info id=\"Capture Tool\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Find\" order=\"7\" weight=\"0.32907802\" />\n      <window_info anchor=\"bottom\" id=\"Messages\" order=\"8\" weight=\"0.32907802\" />\n      <window_info anchor=\"bottom\" id=\"Logcat\" order=\"10\" />\n      <window_info anchor=\"bottom\" id=\"Android Profiler\" order=\"11\" show_stripe_button=\"false\" />\n    </layout-to-restore>\n  </component>\n  <component name=\"VcsContentAnnotationSettings\">\n    <option name=\"myLimit\" value=\"2678400000\" />\n  </component>\n  <component name=\"VcsManagerConfiguration\">\n    <MESSAGE value=\"PostUpdate Added!\" />\n    <MESSAGE value=\"PostDelete Added!\" />\n    <MESSAGE value=\"CommentDelete Added!\" />\n    <MESSAGE value=\"UserDelete Added!\" />\n    <MESSAGE value=\"updateComment Added!\" />\n    <MESSAGE value=\"updateUser Added!\" />\n    <MESSAGE value=\"Create, Update and Delete Comment. Create, Update and Delete Post. Update and Delete User.\" />\n    <MESSAGE value=\"Final Touches!!\" />\n    <MESSAGE value=\"CreateUser Added!!!\" />\n    <option name=\"LAST_COMMIT_MESSAGE\" value=\"CreateUser Added!!!\" />\n  </component>\n  <component name=\"editorHistoryManager\">\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/category.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/requests/request.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/.metadata\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state />\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/lib/parameters.dart\" />\n    <entry file=\"file://C:/Flutter/flutter/packages/flutter/lib/src/widgets/text.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/requests/params_comment_list.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/requests/params_category_list.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/requests/params_tag_list.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/requests/params_page_list.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/requests/params_user_list.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/avatar_urls.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/content.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/excerpt.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/guid.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/title.dart\" />\n    <entry file=\"file://C:/Flutter/flutter/bin/cache/dart-sdk/lib/internal/cast.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/post_statuses.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/post_types.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/taxonomies.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/capabilities.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/CHANGELOG.md\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state />\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/README.md\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"2244\">\n          <caret line=\"132\" column=\"3\" lean-forward=\"true\" selection-start-line=\"132\" selection-start-column=\"3\" selection-end-line=\"132\" selection-end-column=\"3\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/example/pubspec.yaml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"170\">\n          <caret line=\"19\" column=\"22\" selection-start-line=\"19\" selection-start-column=\"22\" selection-end-line=\"19\" selection-end-column=\"22\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/wordpress_error.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/requests/params_post_list.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/media.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/links.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/requests/params_media_list.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/comment.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/comment_hierarchy.dart\" />\n    <entry file=\"file://C:/Flutter/flutter/packages/flutter/lib/src/widgets/framework.dart\" />\n    <entry file=\"file://$PROJECT_DIR$/example/README.md\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"150\">\n          <caret line=\"6\" selection-start-line=\"6\" selection-end-line=\"6\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/fetch_user_result.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"150\">\n          <caret line=\"6\" column=\"2\" selection-start-line=\"6\" selection-start-column=\"2\" selection-end-line=\"6\" selection-end-column=\"2\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/example/build/app/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-2124\">\n          <caret line=\"177\" column=\"50\" selection-start-line=\"177\" selection-start-column=\"50\" selection-end-line=\"177\" selection-end-column=\"50\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/example/android/local.properties\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state />\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/example/android/build.gradle\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"200\">\n          <caret line=\"8\" column=\"5\" lean-forward=\"true\" selection-start-line=\"8\" selection-start-column=\"5\" selection-end-line=\"8\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://C:/flutter/bin/cache/pkg/sky_engine/lib/async/future.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"15875\">\n          <caret line=\"639\" column=\"12\" selection-start-line=\"639\" selection-start-column=\"12\" selection-end-line=\"639\" selection-end-column=\"12\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/pubspec.yaml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"100\">\n          <caret line=\"4\" column=\"8\" lean-forward=\"true\" selection-start-line=\"4\" selection-start-column=\"8\" selection-end-line=\"4\" selection-end-column=\"8\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/lib/constants.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state>\n          <caret column=\"6\" selection-start-column=\"6\" selection-end-column=\"6\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://C:/flutter/bin/cache/pkg/sky_engine/lib/convert/json.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"93\">\n          <caret line=\"150\" column=\"10\" selection-start-line=\"150\" selection-start-column=\"10\" selection-end-line=\"150\" selection-end-column=\"10\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/jwt_response.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"168\">\n          <caret line=\"9\" column=\"14\" selection-start-line=\"9\" selection-start-column=\"14\" selection-end-line=\"9\" selection-end-column=\"14\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://C:/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.1.8/lib/meta.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"100\">\n          <caret line=\"334\" column=\"24\" selection-start-line=\"334\" selection-start-column=\"24\" selection-end-line=\"334\" selection-end-column=\"24\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/example/lib/main.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"25\">\n          <caret line=\"7\" column=\"19\" selection-start-line=\"7\" selection-start-column=\"19\" selection-end-line=\"7\" selection-end-column=\"19\" />\n          <folding>\n            <element signature=\"e#0#39#0\" expanded=\"true\" />\n          </folding>\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/example/android/app/build.gradle\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"175\">\n          <caret line=\"39\" column=\"30\" selection-start-line=\"39\" selection-start-column=\"30\" selection-end-line=\"39\" selection-end-column=\"30\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://C:/flutter/bin/cache/pkg/sky_engine/lib/_http/http.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"69\">\n          <caret line=\"1967\" column=\"15\" selection-start-line=\"1967\" selection-start-column=\"15\" selection-end-line=\"1967\" selection-end-column=\"15\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/example/lib/post_page.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"200\">\n          <caret line=\"10\" column=\"11\" lean-forward=\"true\" selection-start-line=\"10\" selection-start-column=\"11\" selection-end-line=\"10\" selection-end-column=\"11\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/post.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"100\">\n          <caret line=\"17\" column=\"13\" selection-start-line=\"17\" selection-start-column=\"13\" selection-end-line=\"17\" selection-end-column=\"13\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/lib/schemas/user.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-4884\">\n          <caret line=\"129\" column=\"6\" selection-start-line=\"129\" selection-start-column=\"6\" selection-end-line=\"129\" selection-end-column=\"6\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/example/lib/display_posts.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"144\">\n          <caret line=\"363\" column=\"30\" lean-forward=\"true\" selection-start-line=\"363\" selection-start-column=\"30\" selection-end-line=\"363\" selection-end-column=\"30\" />\n          <folding>\n            <element signature=\"e#0#39#0\" expanded=\"true\" />\n            <element signature=\"e#1127#1174#0\" />\n            <element signature=\"e#1220#1826#0\" />\n            <element signature=\"e#1977#2583#0\" />\n            <element signature=\"e#2680#3020#0\" />\n            <element signature=\"e#3119#3480#0\" />\n            <element signature=\"e#3666#3858#0\" />\n            <element signature=\"e#3909#4110#0\" />\n            <element signature=\"e#4182#4394#0\" />\n            <element signature=\"e#4546#4901#0\" />\n            <element signature=\"e#4931#5144#0\" />\n          </folding>\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/lib/flutter_wordpress.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"200\">\n          <caret line=\"659\" column=\"43\" selection-start-line=\"659\" selection-start-column=\"43\" selection-end-line=\"659\" selection-end-column=\"43\" />\n          <folding>\n            <element signature=\"e#21968#22524#0\" />\n            <element signature=\"e#22693#23654#0\" />\n          </folding>\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/example/lib/login.dart\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"100\">\n          <caret line=\"45\" lean-forward=\"true\" selection-start-line=\"45\" selection-end-line=\"45\" />\n          <folding>\n            <element signature=\"e#0#39#0\" expanded=\"true\" />\n          </folding>\n        </state>\n      </provider>\n    </entry>\n  </component>\n</project>"
  },
  {
    "path": ".metadata",
    "content": "# This file tracks properties of this Flutter project.\n# Used by Flutter tool to assess capabilities and perform upgrades etc.\n#\n# This file should be version controlled and should not be manually edited.\n\nversion:\n  revision: 5391447fae6209bb21a89e6a5a6583cac1af9b4b\n  channel: stable\n\nproject_type: package\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "## [0.3.0-nullsafety.0] - Type Safety\n\n* Added type safety\n\n## [0.2.1] - 26/04/2020\n* Custom post types\n\n## [0.2.0] - 21/04/2020\n* Create, Update and Delete Comments\n* Create, Update and Delete Posts\n* Update and Delete Users\n\n## [0.1.4] - 27/02/2019\n* Updated homepage URL\n\n## [0.1.3] - 26/02/2019\n* Update example. Update post fetching to include author, comments. Add fetching comments as a hierarchy.\n\n## [0.1.2] - 16/02/2019\n* Add fetch categories, tags, pages. Add create post, comments.\n\n## [0.1.1] - 14/02/2019\n\n* Update README.md. Add fetch users list, fetch comments list.\n* Implemented authorization function and fetching of Posts with parameters\n\n## [0.1.0] - Added Models\n\n* Created model classes for Wordpress REST API and implemented user authentication function using JWT authentication system.\n\n\n## [0.0.1] - TODO: Init.\n\n* Under Development. Nothing works now.\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2018 Sachin Ganesh\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
  },
  {
    "path": "README.md",
    "content": "# Flutter Wordpress\n\n[pub.dev](https://pub.dev/packages/flutter_wordpress)\n\nThis library uses [WordPress REST API V2](https://developer.wordpress.org/rest-api/) to provide a way for your application to interact with your WordPress website.\n\n[Tutorial - by Ritesh Sharma](https://medium.com/flutter-community/building-flutter-apps-with-wordpress-backend-part-1-e56414a4a79b)\n\n## Screenshots\n\n<img src='https://raw.githubusercontent.com/dreamsoftin/flutter_wordpress/master/example/images/screenshots/posts.png' height='400'>\n\n## Requirements\n\nFor authentication and usage of administrator level REST APIs, you need to use either of the two popular authentication plugins in your WordPress site:\n\n1. [Application Passwords](https://wordpress.org/plugins/application-passwords/)\n2. [JWT Authentication for WP REST API](https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/) <strong>(recommended)</strong>\n\n## Getting Started\n\n### 1. Import library\n\n#### First:\n\nFind your pubspec.yaml in the root of your project and add flutter_wordpress: ^0.2.0 under dependencies:\n\n#### Second:\n\n```dart\nimport 'package:flutter_wordpress/flutter_wordpress.dart' as wp;\n```\n\n### 2. Instantiate WordPress class\n\n```dart\nwp.WordPress wordPress;\n\n// adminName and adminKey is needed only for admin level APIs\nwordPress = wp.WordPress(\n  baseUrl: 'http://localhost',\n  authenticator: wp.WordPressAuthenticator.JWT,\n  adminName: '',\n  adminKey: '',\n);\n```\n\n### 3. Authenticate User\n\n```dart\nFuture<wp.User> response = wordPress.authenticateUser(\n  username: 'ChiefEditor',\n  password: 'chiefeditor@123',\n);\n\nresponse.then((user) {\n  createPost(user);\n}).catchError((err) {\n  print('Failed to fetch user: $err');\n});\n```\n\n### 4. Fetch Posts\n\n```dart\nFuture<List<wp.Post>> posts = wordPress.fetchPosts(\n  postParams: wp.ParamsPostList(\n    context: wp.WordPressContext.view,\n    pageNum: 1,\n    perPage: 20,\n    order: wp.Order.desc,\n    orderBy: wp.PostOrderBy.date,\n  ),\n  fetchAuthor: true,\n  fetchFeaturedMedia: true,\n  fetchComments: true,\n  postType: 'post'\n);\n```\n\n### 5. Fetch Users\n\n```dart\nFuture<List<wp.User>> users = wordPress.fetchUsers(\n  params: wp.ParamsUserList(\n    context: wp.WordPressContext.view,\n    pageNum: 1,\n    perPage: 30,\n    order: wp.Order.asc,\n    orderBy: wp.UsersOrderBy.name,\n    roles: ['subscriber'],\n  ),\n);\n```\n\n### 6. Fetch Comments\n\n```dart\nFuture<List<wp.Comment>> comments = wordPress.fetchComments(\n  params: wp.ParamsCommentList(\n    context: wp.WordPressContext.view,\n    pageNum: 1,\n    perPage: 30,\n    includePostIDs: [1],\n  ),\n);\n```\n\n### 7. Create User\n\n```dart\nFuture<void> createUser({@required String email, @required String username, @required String password, @required List<String> roles}) async {\n    await widget.wordPress.createUser(\n      user: wp.User(\n        email: email,\n        password: password,\n        username: username,\n        roles: roles\n      )\n    ).then((p) {\n      print('User created successfully ${p}');\n    }).catchError((err) {\n      print('Failed to create user: $err');\n    });\n  }\n```\n\n### 8. Create Post\n\n```dart\n  void createPost({@required wp.User user}) {\n    final post = widget.wordPress.createPost(\n      post: new wp.Post(\n        title: 'First post as a Chief Editor',\n        content: 'Blah! blah! blah!',\n        excerpt: 'Discussion about blah!',\n        authorID: user.id,\n        commentStatus: wp.PostCommentStatus.open,\n        pingStatus: wp.PostPingStatus.closed,\n        status: wp.PostPageStatus.publish,\n        format: wp.PostFormat.standard,\n        sticky: true,\n      ),\n    );\n\n    post.then((p) {\n      print('Post created successfully with ID: ${p.id}');\n    }).catchError((err) {\n      print('Failed to create post: $err');\n    });\n  }\n```\n\n### 9. create Comment\n\n```dart\n  void createComment({@required int userId, @required int postId}) {\n    final comment = widget.wordPress.createComment(\n      comment: new wp.Comment(\n        author: userId,\n        post: postId,\n        content: \"First!\",\n        parent: 0,\n      ),\n    );\n\n    comment.then((c) {\n      print('Comment successfully posted with ID: ${c.id}');\n    }).catchError((err) {\n      print('Failed to comment: $err');\n    });\n  }\n```\n\n### 10. Update Comment\n\n```dart\nFuture<void> updateComment({@required int id, @required int postId, @required wp.User user}) async {\n    await widget.wordPress.updateComment(\n      comment: new wp.Comment(\n        content: \"Comment Updated2!\",\n        author: user.id,\n        post: postId,\n      ),\n      id: id,\n    ).then((c) {\n      print('Comment updated successfully \"$c\"');\n    }).catchError((err) {\n      print('Failed to update Comment: $err');\n    });\n  }\n```\n\n### 11. Update Post\n\n```dart\nFuture<void> updatePost({@required int id, @required int userId}) async {\n    await widget.wordPress.updatePost(\n      post: new wp.Post(\n        title: 'First post as a Chief Editor',\n        content: 'Blah! blah! blah!',\n        excerpt: 'Discussion about blah!',\n        authorID: userId,\n        commentStatus: wp.PostCommentStatus.open,\n        pingStatus: wp.PostPingStatus.closed,\n        status: wp.PostPageStatus.publish,\n        format: wp.PostFormat.standard,\n        sticky: true,\n      ),\n      id: id, //\n    ).then((p) {\n      print('Post updated successfully with ID ${p}');\n    }).catchError((err) {\n      print('Failed to update post: $err');\n    });\n  }\n```\n\n### 12. Update User\n\n```dart\nFuture<void> updateUser({@required int id, @required String username, @required String email}) async {\n    await widget.wordPress.updateUser(\n      user: new wp.User(\n        description: \"This is description for this user\",\n        username: username,\n        id: id,\n        email: email\n      ),\n      id: id,\n    ).then((u) {\n      print('User updated successfully $u');\n    }).catchError((err) {\n      print('Failed to update User: $err');\n    });\n  }\n```\n\n\n### 13. Delete Comment\n\n```dart\nFuture<void> deleteComment({@required int id}) async {\n    await widget.wordPress.deleteComment(id: id).then((c) {\n      print('Comment Deleted successfully: $c');\n    }).catchError((err) {\n      print('Failed to Delete comment: $err');\n    });\n  }\n```\n\n### 14. Delete Post\n\n```dart\n  Future<void> deletePost({@required int id}) async {\n    await widget.wordPress.deletePost(id: id).then((p) {\n      print('Post Deleted successfully: $p');\n    }).catchError((err) {\n      print('Failed to Delete post: $err');\n    });\n  }\n```\n\n### 15. Delete User\n\n```dart\n  Future<void> deleteUser({@required int id, @required int reassign}) async {\n    await widget.wordPress.deleteUser(id: id, reassign: reassign).then((u) {\n      print('User Deleted successfully: $u');\n    }).catchError((err) {\n      print('Failed to Delete user: $err');\n    });\n  }\n```\n\n### 16. Upload Media\n\n```dart\n  uploadMedia(File image) async {\n  var media = await wordPress.uploadMedia(image).then((m) {\n    print('Media uploaded successfully: $m');\n  }).catchError((err) {\n    print('Failed to upload Media: $err');\n  });\n  int mediaID = media['id'];  \n}\n```\n\n## Future Work\n\n1. Implementing OAuth 2.0 authentication.\n\n## Contributors\n- [Suraj Shettigar](https://github.com/SurajShettigar)\n- [Sachin Ganesh](https://github.com/SachinGanesh)\n- [Harm-Jan Roskam](https://github.com/harmjanr)\n- [Yahya Makarim](https://github.com/ymakarim)\n- [Garv Maggu](https://github.com/GarvMaggu)\n"
  },
  {
    "path": "example/.flutter-plugins-dependencies",
    "content": "{\"info\":\"This is a generated file; do not edit or check into version control.\",\"plugins\":{\"ios\":[{\"name\":\"video_player_avfoundation\",\"path\":\"/Users/ritheshsalyan/Developer/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/video_player_avfoundation-2.3.0/\",\"dependencies\":[]},{\"name\":\"wakelock\",\"path\":\"/Users/ritheshsalyan/Developer/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/wakelock-0.6.1+1/\",\"dependencies\":[]},{\"name\":\"webview_flutter_wkwebview\",\"path\":\"/Users/ritheshsalyan/Developer/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/webview_flutter_wkwebview-2.7.1/\",\"dependencies\":[]}],\"android\":[{\"name\":\"video_player_android\",\"path\":\"/Users/ritheshsalyan/Developer/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/video_player_android-2.3.0/\",\"dependencies\":[]},{\"name\":\"wakelock\",\"path\":\"/Users/ritheshsalyan/Developer/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/wakelock-0.6.1+1/\",\"dependencies\":[]},{\"name\":\"webview_flutter_android\",\"path\":\"/Users/ritheshsalyan/Developer/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/webview_flutter_android-2.8.3/\",\"dependencies\":[]}],\"macos\":[{\"name\":\"wakelock_macos\",\"path\":\"/Users/ritheshsalyan/Developer/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/wakelock_macos-0.4.0/\",\"dependencies\":[]}],\"linux\":[],\"windows\":[],\"web\":[{\"name\":\"video_player_web\",\"path\":\"/Users/ritheshsalyan/Developer/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/video_player_web-2.0.7/\",\"dependencies\":[]},{\"name\":\"wakelock_web\",\"path\":\"/Users/ritheshsalyan/Developer/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/wakelock_web-0.4.0/\",\"dependencies\":[]}]},\"dependencyGraph\":[{\"name\":\"video_player\",\"dependencies\":[\"video_player_android\",\"video_player_avfoundation\",\"video_player_web\"]},{\"name\":\"video_player_android\",\"dependencies\":[]},{\"name\":\"video_player_avfoundation\",\"dependencies\":[]},{\"name\":\"video_player_web\",\"dependencies\":[]},{\"name\":\"wakelock\",\"dependencies\":[\"wakelock_macos\",\"wakelock_web\"]},{\"name\":\"wakelock_macos\",\"dependencies\":[]},{\"name\":\"wakelock_web\",\"dependencies\":[]},{\"name\":\"webview_flutter\",\"dependencies\":[\"webview_flutter_android\",\"webview_flutter_wkwebview\"]},{\"name\":\"webview_flutter_android\",\"dependencies\":[]},{\"name\":\"webview_flutter_wkwebview\",\"dependencies\":[]}],\"date_created\":\"2022-02-23 10:31:39.189036\",\"version\":\"2.8.1\"}"
  },
  {
    "path": "example/.gitignore",
    "content": "# Miscellaneous\n*.class\n*.lock\n*.log\n*.pyc\n*.swp\n.DS_Store\n.atom/\n.buildlog/\n.history\n.svn/\n*flutter_export_environment*\n\n# IntelliJ related\n*.iml\n*.ipr\n*.iws\n.idea/\n\n# Visual Studio Code related\n.vscode/\n\n# Flutter/Dart/Pub related\n**/doc/api/\n.dart_tool/\n.flutter-plugins\n.packages\n.pub-cache/\n.pub/\nbuild/\n\n# Android related\n**/android/**/gradle-wrapper.jar\n**/android/.gradle\n**/android/captures/\n**/android/gradlew\n**/android/gradlew.bat\n**/android/local.properties\n**/android/**/GeneratedPluginRegistrant.java\n\n# iOS/XCode related\n**/ios/**/*.mode1v3\n**/ios/**/*.mode2v3\n**/ios/**/*.moved-aside\n**/ios/**/*.pbxuser\n**/ios/**/*.perspectivev3\n**/ios/**/*sync/\n**/ios/**/.sconsign.dblite\n**/ios/**/.tags*\n**/ios/**/.vagrant/\n**/ios/**/DerivedData/\n**/ios/**/Icon?\n**/ios/**/Pods/\n**/ios/**/.symlinks/\n**/ios/**/profile\n**/ios/**/xcuserdata\n**/ios/.generated/\n**/ios/Flutter/App.framework\n**/ios/Flutter/Flutter.framework\n**/ios/Flutter/Generated.xcconfig\n**/ios/Flutter/app.flx\n**/ios/Flutter/app.zip\n**/ios/Flutter/flutter_assets/\n**/ios/ServiceDefinitions.json\n**/ios/Runner/GeneratedPluginRegistrant.*\n\n# Exceptions to above rules.\n!**/ios/**/default.mode1v3\n!**/ios/**/default.mode2v3\n!**/ios/**/default.pbxuser\n!**/ios/**/default.perspectivev3\n!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages\n"
  },
  {
    "path": "example/.metadata",
    "content": "# This file tracks properties of this Flutter project.\n# Used by Flutter tool to assess capabilities and perform upgrades etc.\n#\n# This file should be version controlled and should not be manually edited.\n\nversion:\n  revision: 5391447fae6209bb21a89e6a5a6583cac1af9b4b\n  channel: stable\n\nproject_type: app\n"
  },
  {
    "path": "example/README.md",
    "content": "# Flutter Wordpress Example\nBasic login, displaying posts and comments have been implemented in this example flutter app.\n\n## Screenshots\n<img src='images/screenshots/login.png' height='400'>\n<img src='images/screenshots/posts.png' height='400'>\n<img src='images/screenshots/post_comments.png' height='400'>\n\n\n\n\n"
  },
  {
    "path": "example/analysis_options.yaml",
    "content": "# This file configures the analyzer, which statically analyzes Dart code to\n# check for errors, warnings, and lints.\n#\n# The issues identified by the analyzer are surfaced in the UI of Dart-enabled\n# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be\n# invoked from the command line by running `flutter analyze`.\n\n# The following line activates a set of recommended lints for Flutter apps,\n# packages, and plugins designed to encourage good coding practices.\ninclude: package:flutter_lints/flutter.yaml\n\nlinter:\n  # The lint rules applied to this project can be customized in the\n  # section below to disable rules from the `package:flutter_lints/flutter.yaml`\n  # included above or to enable additional rules. A list of all available lints\n  # and their documentation is published at\n  # https://dart-lang.github.io/linter/lints/index.html.\n  #\n  # Instead of disabling a lint rule for the entire project in the\n  # section below, it can also be suppressed for a single line of code\n  # or a specific dart file by using the `// ignore: name_of_lint` and\n  # `// ignore_for_file: name_of_lint` syntax on the line or in the file\n  # producing the lint.\n  rules:\n    # avoid_print: false  # Uncomment to disable the `avoid_print` rule\n    # prefer_single_quotes: true  # Uncomment to enable the `prefer_single_quotes` rule\n\n# Additional information about this file can be found at\n# https://dart.dev/guides/language/analysis-options\n"
  },
  {
    "path": "example/android/.gitignore",
    "content": "gradle-wrapper.jar\n/.gradle\n/captures/\n/gradlew\n/gradlew.bat\n/local.properties\nGeneratedPluginRegistrant.java\n\n# Remember to never publicly share your keystore.\n# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app\nkey.properties\n**/*.keystore\n**/*.jks\n"
  },
  {
    "path": "example/android/app/build.gradle",
    "content": "def localProperties = new Properties()\ndef localPropertiesFile = rootProject.file('local.properties')\nif (localPropertiesFile.exists()) {\n    localPropertiesFile.withReader('UTF-8') { reader ->\n        localProperties.load(reader)\n    }\n}\n\ndef flutterRoot = localProperties.getProperty('flutter.sdk')\nif (flutterRoot == null) {\n    throw new GradleException(\"Flutter SDK not found. Define location with flutter.sdk in the local.properties file.\")\n}\n\ndef flutterVersionCode = localProperties.getProperty('flutter.versionCode')\nif (flutterVersionCode == null) {\n    flutterVersionCode = '1'\n}\n\ndef flutterVersionName = localProperties.getProperty('flutter.versionName')\nif (flutterVersionName == null) {\n    flutterVersionName = '1.0'\n}\n\napply plugin: 'com.android.application'\napply plugin: 'kotlin-android'\napply from: \"$flutterRoot/packages/flutter_tools/gradle/flutter.gradle\"\n\nandroid {\n    compileSdkVersion flutter.compileSdkVersion\n\n    compileOptions {\n        sourceCompatibility JavaVersion.VERSION_1_8\n        targetCompatibility JavaVersion.VERSION_1_8\n    }\n\n    kotlinOptions {\n        jvmTarget = '1.8'\n    }\n\n    sourceSets {\n        main.java.srcDirs += 'src/main/kotlin'\n    }\n\n    defaultConfig {\n        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).\n        applicationId \"com.example.example\"\n        minSdkVersion 19//flutter.minSdkVersion\n        targetSdkVersion flutter.targetSdkVersion\n        versionCode flutterVersionCode.toInteger()\n        versionName flutterVersionName\n    }\n\n    buildTypes {\n        release {\n            // TODO: Add your own signing config for the release build.\n            // Signing with the debug keys for now, so `flutter run --release` works.\n            signingConfig signingConfigs.debug\n        }\n    }\n}\n\nflutter {\n    source '../..'\n}\n\ndependencies {\n    implementation \"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version\"\n}\n"
  },
  {
    "path": "example/android/app/src/debug/AndroidManifest.xml",
    "content": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.example.example\">\n    <!-- Flutter needs it to communicate with the running application\n         to allow setting breakpoints, to provide hot reload, etc.\n    -->\n    <uses-permission android:name=\"android.permission.INTERNET\"/>\n</manifest>\n"
  },
  {
    "path": "example/android/app/src/main/AndroidManifest.xml",
    "content": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.example.example\">\n   <application\n        android:label=\"example\"\n        android:name=\"${applicationName}\"\n        android:icon=\"@mipmap/ic_launcher\">\n        <activity\n            android:name=\".MainActivity\"\n            android:exported=\"true\"\n            android:launchMode=\"singleTop\"\n            android:theme=\"@style/LaunchTheme\"\n            android:configChanges=\"orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode\"\n            android:hardwareAccelerated=\"true\"\n            android:windowSoftInputMode=\"adjustResize\">\n            <!-- Specifies an Android theme to apply to this Activity as soon as\n                 the Android process has started. This theme is visible to the user\n                 while the Flutter UI initializes. After that, this theme continues\n                 to determine the Window background behind the Flutter UI. -->\n            <meta-data\n              android:name=\"io.flutter.embedding.android.NormalTheme\"\n              android:resource=\"@style/NormalTheme\"\n              />\n            <intent-filter>\n                <action android:name=\"android.intent.action.MAIN\"/>\n                <category android:name=\"android.intent.category.LAUNCHER\"/>\n            </intent-filter>\n        </activity>\n        <!-- Don't delete the meta-data below.\n             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->\n        <meta-data\n            android:name=\"flutterEmbedding\"\n            android:value=\"2\" />\n    </application>\n</manifest>\n"
  },
  {
    "path": "example/android/app/src/main/kotlin/com/example/example/MainActivity.kt",
    "content": "package com.example.example\n\nimport io.flutter.embedding.android.FlutterActivity\n\nclass MainActivity: FlutterActivity() {\n}\n"
  },
  {
    "path": "example/android/app/src/main/res/drawable/launch_background.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item android:drawable=\"@android:color/white\" />\n\n    <!-- You can insert your own image assets here -->\n    <!-- <item>\n        <bitmap\n            android:gravity=\"center\"\n            android:src=\"@mipmap/launch_image\" />\n    </item> -->\n</layer-list>\n"
  },
  {
    "path": "example/android/app/src/main/res/drawable-v21/launch_background.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item android:drawable=\"?android:colorBackground\" />\n\n    <!-- You can insert your own image assets here -->\n    <!-- <item>\n        <bitmap\n            android:gravity=\"center\"\n            android:src=\"@mipmap/launch_image\" />\n    </item> -->\n</layer-list>\n"
  },
  {
    "path": "example/android/app/src/main/res/values/styles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->\n    <style name=\"LaunchTheme\" parent=\"@android:style/Theme.Light.NoTitleBar\">\n        <!-- Show a splash screen on the activity. Automatically removed when\n             Flutter draws its first frame -->\n        <item name=\"android:windowBackground\">@drawable/launch_background</item>\n    </style>\n    <!-- Theme applied to the Android Window as soon as the process has started.\n         This theme determines the color of the Android Window while your\n         Flutter UI initializes, as well as behind your Flutter UI while its\n         running.\n\n         This Theme is only used starting with V2 of Flutter's Android embedding. -->\n    <style name=\"NormalTheme\" parent=\"@android:style/Theme.Light.NoTitleBar\">\n        <item name=\"android:windowBackground\">?android:colorBackground</item>\n    </style>\n</resources>\n"
  },
  {
    "path": "example/android/app/src/main/res/values-night/styles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->\n    <style name=\"LaunchTheme\" parent=\"@android:style/Theme.Black.NoTitleBar\">\n        <!-- Show a splash screen on the activity. Automatically removed when\n             Flutter draws its first frame -->\n        <item name=\"android:windowBackground\">@drawable/launch_background</item>\n    </style>\n    <!-- Theme applied to the Android Window as soon as the process has started.\n         This theme determines the color of the Android Window while your\n         Flutter UI initializes, as well as behind your Flutter UI while its\n         running.\n\n         This Theme is only used starting with V2 of Flutter's Android embedding. -->\n    <style name=\"NormalTheme\" parent=\"@android:style/Theme.Black.NoTitleBar\">\n        <item name=\"android:windowBackground\">?android:colorBackground</item>\n    </style>\n</resources>\n"
  },
  {
    "path": "example/android/app/src/profile/AndroidManifest.xml",
    "content": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.example.example\">\n    <!-- Flutter needs it to communicate with the running application\n         to allow setting breakpoints, to provide hot reload, etc.\n    -->\n    <uses-permission android:name=\"android.permission.INTERNET\"/>\n</manifest>\n"
  },
  {
    "path": "example/android/build.gradle",
    "content": "buildscript {\n    ext.kotlin_version = '1.6.10'\n    repositories {\n        google()\n        mavenCentral()\n    }\n\n    dependencies {\n        classpath 'com.android.tools.build:gradle:4.1.0'\n        classpath \"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version\"\n    }\n}\n\nallprojects {\n    repositories {\n        google()\n        mavenCentral()\n    }\n}\n\nrootProject.buildDir = '../build'\nsubprojects {\n    project.buildDir = \"${rootProject.buildDir}/${project.name}\"\n}\nsubprojects {\n    project.evaluationDependsOn(':app')\n}\n\ntask clean(type: Delete) {\n    delete rootProject.buildDir\n}\n"
  },
  {
    "path": "example/android/gradle/wrapper/gradle-wrapper.properties",
    "content": "#Fri Jun 23 08:50:38 CEST 2017\ndistributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-6.7-all.zip\n"
  },
  {
    "path": "example/android/gradle.properties",
    "content": "org.gradle.jvmargs=-Xmx1536M\nandroid.useAndroidX=true\nandroid.enableJetifier=true\n"
  },
  {
    "path": "example/android/settings.gradle",
    "content": "include ':app'\n\ndef localPropertiesFile = new File(rootProject.projectDir, \"local.properties\")\ndef properties = new Properties()\n\nassert localPropertiesFile.exists()\nlocalPropertiesFile.withReader(\"UTF-8\") { reader -> properties.load(reader) }\n\ndef flutterSdkPath = properties.getProperty(\"flutter.sdk\")\nassert flutterSdkPath != null, \"flutter.sdk not set in local.properties\"\napply from: \"$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle\"\n"
  },
  {
    "path": "example/ios/.gitignore",
    "content": "**/dgph\n*.mode1v3\n*.mode2v3\n*.moved-aside\n*.pbxuser\n*.perspectivev3\n**/*sync/\n.sconsign.dblite\n.tags*\n**/.vagrant/\n**/DerivedData/\nIcon?\n**/Pods/\n**/.symlinks/\nprofile\nxcuserdata\n**/.generated/\nFlutter/App.framework\nFlutter/Flutter.framework\nFlutter/Flutter.podspec\nFlutter/Generated.xcconfig\nFlutter/ephemeral/\nFlutter/app.flx\nFlutter/app.zip\nFlutter/flutter_assets/\nFlutter/flutter_export_environment.sh\nServiceDefinitions.json\nRunner/GeneratedPluginRegistrant.*\n\n# Exceptions to above rules.\n!default.mode1v3\n!default.mode2v3\n!default.pbxuser\n!default.perspectivev3\n"
  },
  {
    "path": "example/ios/Flutter/AppFrameworkInfo.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>CFBundleDevelopmentRegion</key>\n  <string>en</string>\n  <key>CFBundleExecutable</key>\n  <string>App</string>\n  <key>CFBundleIdentifier</key>\n  <string>io.flutter.flutter.app</string>\n  <key>CFBundleInfoDictionaryVersion</key>\n  <string>6.0</string>\n  <key>CFBundleName</key>\n  <string>App</string>\n  <key>CFBundlePackageType</key>\n  <string>FMWK</string>\n  <key>CFBundleShortVersionString</key>\n  <string>1.0</string>\n  <key>CFBundleSignature</key>\n  <string>????</string>\n  <key>CFBundleVersion</key>\n  <string>1.0</string>\n  <key>MinimumOSVersion</key>\n  <string>8.0</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/Flutter/Debug.xcconfig",
    "content": "#include? \"Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig\"\n#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "example/ios/Flutter/Flutter.podspec",
    "content": "#\n# NOTE: This podspec is NOT to be published. It is only used as a local source!\n#\n\nPod::Spec.new do |s|\n  s.name             = 'Flutter'\n  s.version          = '1.0.0'\n  s.summary          = 'High-performance, high-fidelity mobile apps.'\n  s.description      = <<-DESC\nFlutter provides an easy and productive way to build and deploy high-performance mobile apps for Android and iOS.\n                       DESC\n  s.homepage         = 'https://flutter.io'\n  s.license          = { :type => 'MIT' }\n  s.author           = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' }\n  s.source           = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s }\n  s.ios.deployment_target = '8.0'\n  s.vendored_frameworks = 'Flutter.framework'\nend\n"
  },
  {
    "path": "example/ios/Flutter/Release.xcconfig",
    "content": "#include? \"Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig\"\n#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "example/ios/Podfile",
    "content": "# Uncomment this line to define a global platform for your project\n# platform :ios, '9.0'\n\n# CocoaPods analytics sends network stats synchronously affecting flutter build latency.\nENV['COCOAPODS_DISABLE_STATS'] = 'true'\n\nproject 'Runner', {\n  'Debug' => :debug,\n  'Profile' => :release,\n  'Release' => :release,\n}\n\ndef flutter_root\n  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)\n  unless File.exist?(generated_xcode_build_settings_path)\n    raise \"#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first\"\n  end\n\n  File.foreach(generated_xcode_build_settings_path) do |line|\n    matches = line.match(/FLUTTER_ROOT\\=(.*)/)\n    return matches[1].strip if matches\n  end\n  raise \"FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get\"\nend\n\nrequire File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)\n\nflutter_ios_podfile_setup\n\ntarget 'Runner' do\n  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))\nend\n\npost_install do |installer|\n  installer.pods_project.targets.each do |target|\n    flutter_additional_ios_build_settings(target)\n  end\nend\n"
  },
  {
    "path": "example/ios/Runner/AppDelegate.h",
    "content": "#import <Flutter/Flutter.h>\n#import <UIKit/UIKit.h>\n\n@interface AppDelegate : FlutterAppDelegate\n\n@end\n"
  },
  {
    "path": "example/ios/Runner/AppDelegate.m",
    "content": "#include \"AppDelegate.h\"\n#include \"GeneratedPluginRegistrant.h\"\n\n@implementation AppDelegate\n\n- (BOOL)application:(UIApplication *)application\n    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n  [GeneratedPluginRegistrant registerWithRegistry:self];\n  // Override point for customization after application launch.\n  return [super application:application didFinishLaunchingWithOptions:launchOptions];\n}\n\n@end\n"
  },
  {
    "path": "example/ios/Runner/AppDelegate.swift",
    "content": "import UIKit\nimport Flutter\n\n@UIApplicationMain\n@objc class AppDelegate: FlutterAppDelegate {\n  override func application(\n    _ application: UIApplication,\n    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?\n  ) -> Bool {\n    GeneratedPluginRegistrant.register(with: self)\n    return super.application(application, didFinishLaunchingWithOptions: launchOptions)\n  }\n}\n"
  },
  {
    "path": "example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-20x20@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-20x20@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-29x29@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-29x29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-29x29@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-40x40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-40x40@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-60x60@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-60x60@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-20x20@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-20x20@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-29x29@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-29x29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-40x40@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-40x40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-76x76@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-76x76@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"83.5x83.5\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Icon-App-83.5x83.5@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"1024x1024\",\n      \"idiom\" : \"ios-marketing\",\n      \"filename\" : \"Icon-App-1024x1024@1x.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md",
    "content": "# Launch Screen Assets\n\nYou can customize the launch screen with your own desired assets by replacing the image files in this directory.\n\nYou can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images."
  },
  {
    "path": "example/ios/Runner/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"12121\" systemVersion=\"16G29\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"12089\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"Ydg-fD-yQy\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"xbc-2k-c8Z\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <imageView opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" image=\"LaunchImage\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"YRO-k0-Ey4\">\n                            </imageView>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"YRO-k0-Ey4\" firstAttribute=\"centerX\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerX\" id=\"1a2-6s-vTC\"/>\n                            <constraint firstItem=\"YRO-k0-Ey4\" firstAttribute=\"centerY\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerY\" id=\"4X2-HB-R7a\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"53\" y=\"375\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"LaunchImage\" width=\"168\" height=\"185\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "example/ios/Runner/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"10117\" systemVersion=\"15F34\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" initialViewController=\"BYZ-38-t0r\">\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"10085\"/>\n    </dependencies>\n    <scenes>\n        <!--Flutter View Controller-->\n        <scene sceneID=\"tne-QT-ifu\">\n            <objects>\n                <viewController id=\"BYZ-38-t0r\" customClass=\"FlutterViewController\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"y3c-jy-aDJ\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"wfy-db-euE\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"8bC-Xf-vdC\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"600\" height=\"600\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"calibratedWhite\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"dkx-z0-nzr\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "example/ios/Runner/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>example</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(FLUTTER_BUILD_NAME)</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(FLUTTER_BUILD_NUMBER)</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UIViewControllerBasedStatusBarAppearance</key>\n\t<false/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/Runner/Runner-Bridging-Header.h",
    "content": "#import \"GeneratedPluginRegistrant.h\"\n"
  },
  {
    "path": "example/ios/Runner/main.m",
    "content": "#import <Flutter/Flutter.h>\n#import <UIKit/UIKit.h>\n#import \"AppDelegate.h\"\n\nint main(int argc, char* argv[]) {\n  @autoreleasepool {\n    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));\n  }\n}\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };\n\t\t3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };\n\t\t9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; };\n\t\t978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };\n\t\t97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };\n\t\t97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };\n\t\t97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };\n\t\t97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t9705A1C41CF9048500538489 /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = \"<group>\"; };\n\t\t1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = \"<group>\"; };\n\t\t3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = \"<group>\"; };\n\t\t7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = \"<group>\"; };\n\t\t7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = \"<group>\"; };\n\t\t7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = \"<group>\"; };\n\t\t9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = \"<group>\"; };\n\t\t9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = \"<group>\"; };\n\t\t97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\t97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\t97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\t97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t97C146EB1CF9000F007C117D /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t9740EEB11CF90186004384FC /* Flutter */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,\n\t\t\t\t9740EEB21CF90195004384FC /* Debug.xcconfig */,\n\t\t\t\t7AFA3C8E1D35360C0083082E /* Release.xcconfig */,\n\t\t\t\t9740EEB31CF90195004384FC /* Generated.xcconfig */,\n\t\t\t);\n\t\t\tname = Flutter;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146E51CF9000F007C117D = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9740EEB11CF90186004384FC /* Flutter */,\n\t\t\t\t97C146F01CF9000F007C117D /* Runner */,\n\t\t\t\t97C146EF1CF9000F007C117D /* Products */,\n\t\t\t\tCF3B75C9A7D2FA2A4C99F110 /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146EF1CF9000F007C117D /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t97C146EE1CF9000F007C117D /* Runner.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146F01CF9000F007C117D /* Runner */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */,\n\t\t\t\t7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */,\n\t\t\t\t97C146FA1CF9000F007C117D /* Main.storyboard */,\n\t\t\t\t97C146FD1CF9000F007C117D /* Assets.xcassets */,\n\t\t\t\t97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,\n\t\t\t\t97C147021CF9000F007C117D /* Info.plist */,\n\t\t\t\t97C146F11CF9000F007C117D /* Supporting Files */,\n\t\t\t\t1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,\n\t\t\t\t1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,\n\t\t\t);\n\t\t\tpath = Runner;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146F11CF9000F007C117D /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t97C146F21CF9000F007C117D /* main.m */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t97C146ED1CF9000F007C117D /* Runner */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget \"Runner\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t9740EEB61CF901F6004384FC /* Run Script */,\n\t\t\t\t97C146EA1CF9000F007C117D /* Sources */,\n\t\t\t\t97C146EB1CF9000F007C117D /* Frameworks */,\n\t\t\t\t97C146EC1CF9000F007C117D /* Resources */,\n\t\t\t\t9705A1C41CF9048500538489 /* Embed Frameworks */,\n\t\t\t\t3B06AD1E1E4923F5004D2608 /* Thin Binary */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = Runner;\n\t\t\tproductName = Runner;\n\t\t\tproductReference = 97C146EE1CF9000F007C117D /* Runner.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t97C146E61CF9000F007C117D /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastUpgradeCheck = 0910;\n\t\t\t\tORGANIZATIONNAME = \"The Chromium Authors\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t97C146ED1CF9000F007C117D = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.3.1;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject \"Runner\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 97C146E51CF9000F007C117D;\n\t\t\tproductRefGroup = 97C146EF1CF9000F007C117D /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t97C146ED1CF9000F007C117D /* Runner */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t97C146EC1CF9000F007C117D /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,\n\t\t\t\t3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,\n\t\t\t\t9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */,\n\t\t\t\t97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,\n\t\t\t\t97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"Thin Binary\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"/bin/sh \\\"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\\\" embed_and_thin\";\n\t\t};\n\t\t9740EEB61CF901F6004384FC /* Run Script */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"Run Script\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"/bin/sh \\\"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\\\" build\";\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t97C146EA1CF9000F007C117D /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */,\n\t\t\t\t97C146F31CF9000F007C117D /* main.m in Sources */,\n\t\t\t\t1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\t97C146FA1CF9000F007C117D /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t97C146FB1CF9000F007C117D /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t97C147001CF9000F007C117D /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t249021D3217E4FDB00AE95B9 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 8.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t249021D4217E4FDB00AE95B9 /* Profile */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCURRENT_PROJECT_VERSION = \"$(FLUTTER_BUILD_NUMBER)\";\n\t\t\t\tDEVELOPMENT_TEAM = S8QB4VV633;\n\t\t\t\tENABLE_BITCODE = NO;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"$(PROJECT_DIR)/Flutter\",\n\t\t\t\t);\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tLIBRARY_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"$(PROJECT_DIR)/Flutter\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Profile;\n\t\t};\n\t\t97C147031CF9000F007C117D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 8.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t97C147041CF9000F007C117D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 8.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t97C147061CF9000F007C117D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCURRENT_PROJECT_VERSION = \"$(FLUTTER_BUILD_NUMBER)\";\n\t\t\t\tENABLE_BITCODE = NO;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"$(PROJECT_DIR)/Flutter\",\n\t\t\t\t);\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tLIBRARY_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"$(PROJECT_DIR)/Flutter\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t97C147071CF9000F007C117D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCURRENT_PROJECT_VERSION = \"$(FLUTTER_BUILD_NUMBER)\";\n\t\t\t\tENABLE_BITCODE = NO;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"$(PROJECT_DIR)/Flutter\",\n\t\t\t\t);\n\t\t\t\tINFOPLIST_FILE = Runner/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tLIBRARY_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"$(PROJECT_DIR)/Flutter\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.example.example;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t97C146E91CF9000F007C117D /* Build configuration list for PBXProject \"Runner\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t97C147031CF9000F007C117D /* Debug */,\n\t\t\t\t97C147041CF9000F007C117D /* Release */,\n\t\t\t\t249021D3217E4FDB00AE95B9 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget \"Runner\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t97C147061CF9000F007C117D /* Debug */,\n\t\t\t\t97C147071CF9000F007C117D /* Release */,\n\t\t\t\t249021D4217E4FDB00AE95B9 /* Profile */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 97C146E61CF9000F007C117D /* Project object */;\n}\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PreviewsEnabled</key>\n\t<false/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0910\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n               BuildableName = \"Runner.app\"\n               BlueprintName = \"Runner\"\n               ReferencedContainer = \"container:Runner.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      language = \"\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n            BuildableName = \"Runner.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      language = \"\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n            BuildableName = \"Runner.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Profile\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"97C146ED1CF9000F007C117D\"\n            BuildableName = \"Runner.app\"\n            BlueprintName = \"Runner\"\n            ReferencedContainer = \"container:Runner.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "example/ios/Runner.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PreviewsEnabled</key>\n\t<false/>\n</dict>\n</plist>\n"
  },
  {
    "path": "example/lib/display_posts.dart",
    "content": "import 'dart:async';\n\nimport 'package:flutter/material.dart';\nimport 'package:flutter_wordpress/flutter_wordpress.dart' as wp;\n\nimport 'post_page.dart';\n\nclass PostListPage extends StatelessWidget {\n  final wp.WordPress wordPress;\n  final wp.User user;\n\n  PostListPage({Key key, @required this.wordPress, this.user});\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        title: Text(\"Posts\"),\n      ),\n      body: Center(\n        child: PostsBuilder(\n          wordPress: wordPress,\n          user: user,\n        ),\n      ),\n    );\n  }\n}\n\nclass PostsBuilder extends StatefulWidget {\n  final wp.WordPress wordPress;\n  final wp.User user;\n\n  PostsBuilder({Key key, @required this.wordPress, this.user});\n\n  @override\n  PostsBuilderState createState() => PostsBuilderState();\n}\n\nclass PostsBuilderState extends State<PostsBuilder> {\n  final paddingCardsList = EdgeInsets.symmetric(vertical: 4.0, horizontal: 8.0);\n  final padding_4 = EdgeInsets.all(4.0);\n  final padding_8 = EdgeInsets.all(8.0);\n  final padding_16 = EdgeInsets.all(16.0);\n\n  Future<List<wp.Post>> posts;\n\n  @override\n  void initState() {\n    super.initState();\n\n    fetchPosts();\n  }\n\n  void createPost({@required wp.User user}) {\n    final post = widget.wordPress.createPost(\n      post: new wp.Post(\n        title: 'First post as a Chief Editor',\n        content: 'Blah! blah! blah!',\n        excerpt: 'Discussion about blah!',\n        authorID: user.id,\n        commentStatus: wp.PostCommentStatus.open,\n        pingStatus: wp.PostPingStatus.closed,\n        status: wp.PostPageStatus.publish,\n        format: wp.PostFormat.standard,\n        sticky: true,\n      ),\n    );\n\n    post.then((p) {\n      print('Post created successfully with ID: ${p.id}');\n    }).catchError((err) {\n      print('Failed to create post: $err');\n    });\n  }\n\n//  yahya\n\n  Future<void> createUser({@required String email, @required String username, @required String password, @required List<String> roles}) async {\n    await widget.wordPress.createUser(\n      user: wp.User(\n        email: email,\n        password: password,\n        username: username,\n        roles: roles\n      )\n    ).then((p) {\n      print('User created successfully ${p}');\n    }).catchError((err) {\n      print('Failed to create user: $err');\n    });\n  }\n\n//  =====================\n//  UPDATE START\n//  =====================\n\n  Future<void> updatePost({@required int id, @required int userId}) async {\n    await widget.wordPress.updatePost(\n      post: new wp.Post(\n        title: 'First post as a Chief Editor',\n        content: 'Blah! blah! blah!',\n        excerpt: 'Discussion about blah!',\n        authorID: userId,\n        commentStatus: wp.PostCommentStatus.open,\n        pingStatus: wp.PostPingStatus.closed,\n        status: wp.PostPageStatus.publish,\n        format: wp.PostFormat.standard,\n        sticky: true,\n      ),\n      id: id, //\n    ).then((p) {\n      print('Post updated successfully with ID ${p}');\n    }).catchError((err) {\n      print('Failed to update post: $err');\n    });\n  }\n\n  Future<void> updateComment({@required int id, @required int postId, @required wp.User user}) async {\n    await widget.wordPress.updateComment(\n      comment: new wp.Comment(\n        content: \"Comment Updated2!\",\n        author: user.id,\n        post: postId,\n      ),\n      id: id,\n    ).then((c) {\n      print('Comment updated successfully \"$c\"');\n    }).catchError((err) {\n      print('Failed to update Comment: $err');\n    });\n  }\n\n  Future<void> updateUser({@required int id, @required String username, @required String email}) async {\n    await widget.wordPress.updateUser(\n      user: new wp.User(\n        description: \"This is description for this user\",\n        username: username,\n        id: id,\n        email: email\n      ),\n      id: id,\n    ).then((u) {\n      print('User updated successfully $u');\n    }).catchError((err) {\n      print('Failed to update User: $err');\n    });\n  }\n\n//  =====================\n//  UPDATE END\n//  =====================\n\n//  =====================\n//  DELETE START\n//  =====================\n\n  Future<void> deletePost({@required int id}) async {\n    await widget.wordPress.deletePost(id: id).then((p) {\n      print('Post Deleted successfully: $p');\n    }).catchError((err) {\n      print('Failed to Delete post: $err');\n    });\n  }\n\n  Future<void> deleteComment({@required int id}) async {\n    await widget.wordPress.deleteComment(id: id).then((c) {\n      print('Comment Deleted successfully: $c');\n    }).catchError((err) {\n      print('Failed to Delete comment: $err');\n    });\n  }\n\n  Future<void> deleteUser({@required int id, @required int reassign}) async {\n    await widget.wordPress.deleteUser(id: id, reassign: reassign).then((u) {\n      print('User Deleted successfully: $u');\n    }).catchError((err) {\n      print('Failed to Delete user: $err');\n    });\n  }\n\n//  =====================\n//  DELETE END\n//  =====================\n\n//  end yahya\n\n  void createComment({@required int userId, @required int postId}) {\n    final comment = widget.wordPress.createComment(\n      comment: new wp.Comment(\n        author: userId,\n        post: postId,\n        content: \"First!\",\n        parent: 0,\n      ),\n    );\n\n    comment.then((c) {\n      print('Comment successfully posted with ID: ${c.id}');\n    }).catchError((err) {\n      print('Failed to comment: $err');\n    });\n  }\n\n  Future<void> fetchPosts() {\n    setState(() {\n      posts = widget.wordPress.fetchPosts(\n        postParams: wp.ParamsPostList(perPage: 1),\n        fetchAuthor: true,\n        fetchFeaturedMedia: true,\n      );\n    });\n    return posts;\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return FutureBuilder<List<wp.Post>>(\n      future: posts,\n      builder: (context, snapshot) {\n        if (snapshot.hasData) {\n          return RefreshIndicator(\n            child: ListView.builder(\n              itemBuilder: (context, i) {\n                int id = snapshot.data[i].id;\n                String title = snapshot.data[i].title.rendered;\n                String author = snapshot.data[i].author.name;\n                String content = snapshot.data[i].content.rendered;\n                wp.Media featuredMedia = snapshot.data[i].featuredMedia;\n\n                return Padding(\n                  padding: paddingCardsList,\n                  child: GestureDetector(\n                    onTap: () {\n                      openPostPage(snapshot.data[i]);\n                    },\n                    child: _buildPostCard(\n                      author: author,\n                      title: title,\n                      content: content,\n                      featuredMedia: featuredMedia,\n                      id : id,\n                    ),\n                  ),\n                );\n              },\n              itemCount: snapshot.data.length,\n            ),\n            onRefresh: fetchPosts,\n          );\n        } else if (snapshot.hasError) {\n          return Text(\n            snapshot.error.toString(),\n            style: TextStyle(color: Colors.red),\n          );\n        }\n\n        return CircularProgressIndicator(\n          valueColor: AlwaysStoppedAnimation(Colors.blue),\n        );\n      },\n    );\n  }\n\n  Widget _buildPostCard({\n    String author,\n    String title,\n    String content,\n    wp.Media featuredMedia,\n    int id,\n  }) {\n    return Card(\n      color: Colors.white,\n      child: Column(\n        mainAxisAlignment: MainAxisAlignment.start,\n        crossAxisAlignment: CrossAxisAlignment.start,\n        children: [\n          Padding(\n            padding: EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0),\n            child: Text(\n              title,\n              style: Theme.of(context).textTheme.headline6,\n            ),\n          ),\n          _buildFeaturedMedia(featuredMedia),\n          featuredMedia == null\n              ? Divider()\n              : SizedBox(\n                  width: 0,\n                  height: 0,\n                ),\n          Padding(\n            padding: EdgeInsets.symmetric(vertical: 0.0, horizontal: 8.0),\n            child: Column(\n              crossAxisAlignment: CrossAxisAlignment.start,\n              mainAxisAlignment: MainAxisAlignment.start,\n              children: <Widget>[\n                Text(\n                  author,\n                  style: TextStyle(\n                    fontWeight: FontWeight.w200,\n                  ),\n                ),\n                ElevatedButton.icon(\n                  onPressed: () {\n                    createComment(postId: 1, userId: 1);\n                  },\n                  icon: Icon(Icons.settings),\n                  label: Text(\n                    \"Create New Comment\",\n                  ),\n                ),\n                ElevatedButton.icon(\n                  onPressed: () {\n                    updateComment(user: widget.user, id: 1, postId: 1);\n                  },\n                  icon: Icon(Icons.settings),\n                  label: Text(\n                    \"Update Comment with ID #1\",\n                  ),\n                ),\n                ElevatedButton.icon(\n                  onPressed: () {\n                    deleteComment(id: 1);\n                  },\n                  icon: Icon(Icons.settings),\n                  label: Text(\n                    \"Delete Comment with ID #1\",\n                  ),\n                ),\n                ElevatedButton.icon(\n                  onPressed: () {\n                    updatePost(userId: widget.user.id, id: 1);\n                  },\n                  icon: Icon(Icons.settings, color: Colors.white),\n                  label: Text(\n                    \"Update Post with ID #1\",\n                    style: TextStyle(color: Colors.white),\n                  ),\n                ),\n                ElevatedButton.icon(\n                  onPressed: () {\n                    deletePost(id: 1);\n                  },\n                  icon: Icon(Icons.delete, color: Colors.white),\n                  label: Text(\n                    \"Delete Post with ID #1\",\n                    style: TextStyle(color: Colors.white),\n                  ),\n                ),\n                ElevatedButton.icon(\n                  onPressed: () {\n                    createPost(user: widget.user);\n                  },\n                  icon: Icon(Icons.add_circle, color: Colors.white,),\n                  label: Text(\n                    \"Create New Post\",\n                    style: TextStyle(color: Colors.white),\n                  ),\n                ),\n                ElevatedButton.icon(\n                  onPressed: () {\n                    createUser(roles: [\"subscriber\"], username: \"myUserName\", password: \"123\", email: \"myEmail@domain.com\");\n                  },\n                  icon: Icon(Icons.add_circle, color: Colors.white,),\n                  label: Text(\n                    \"Create New User\",\n                    style: TextStyle(color: Colors.white),\n                  ),\n                ),\n                ElevatedButton.icon(\n                  onPressed: () {\n                    updateUser(id: 1, email: \"newuser@gmaill.com\", username: \"newuser\");\n                  },\n                  icon: Icon(Icons.settings, color: Colors.white,),\n                  label: Text(\n                    \"Update User with ID #1\",\n                    style: TextStyle(color: Colors.white),\n                  ),\n                ),\n                ElevatedButton.icon(\n                  onPressed: () {\n                    deleteUser(id: 1, reassign: 1);\n                  },\n                  icon: Icon(Icons.delete, color: Colors.white,),\n                  label: Text(\n                    \"Delete User with ID #1\",\n                    style: TextStyle(color: Colors.white),\n                  ),\n                )\n              ],\n            ),\n          ),\n        ],\n      ),\n    );\n  }\n\n  Widget _buildFeaturedMedia(wp.Media featuredMedia) {\n    if (featuredMedia == null) {\n      return SizedBox(\n        width: 0.0,\n        height: 0.0,\n      );\n    }\n    String imgSource = featuredMedia.mediaDetails.sizes.mediumLarge.sourceUrl;\n    imgSource = imgSource.replaceAll('localhost', '192.168.6.165');\n    return Center(\n      child: Image.network(\n        imgSource,\n        fit: BoxFit.cover,\n      ),\n    );\n  }\n\n  void openPostPage(wp.Post post) {\n    print('OnTapped');\n    Navigator.push(\n      context,\n      MaterialPageRoute(builder: (context) {\n        return SinglePostPage(\n          wordPress: widget.wordPress,\n          post: post,\n        );\n      }),\n    );\n  }\n}\n"
  },
  {
    "path": "example/lib/generated_plugin_registrant.dart",
    "content": "//\n// Generated file. Do not edit.\n//\n\n// ignore_for_file: directives_ordering\n// ignore_for_file: lines_longer_than_80_chars\n\nimport 'package:video_player_web/video_player_web.dart';\nimport 'package:wakelock_web/wakelock_web.dart';\n\nimport 'package:flutter_web_plugins/flutter_web_plugins.dart';\n\n// ignore: public_member_api_docs\nvoid registerPlugins(Registrar registrar) {\n  VideoPlayerPlugin.registerWith(registrar);\n  WakelockWeb.registerWith(registrar);\n  registrar.registerMessageHandler();\n}\n"
  },
  {
    "path": "example/lib/login.dart",
    "content": "import 'package:flutter/material.dart';\nimport 'package:flutter_wordpress/flutter_wordpress.dart' as wp;\n\nimport 'display_posts.dart';\n\nconst PADDING_16 = EdgeInsets.all(16.0);\nconst PADDING_8 = EdgeInsets.all(8.0);\n\nclass LoginPage extends StatefulWidget {\n  @override\n  LoginPageState createState() => LoginPageState();\n}\n\nclass LoginPageState extends State<LoginPage> {\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        title: Text(\n          \"Login\",\n          style: TextStyle(fontWeight: FontWeight.w300),\n        ),\n        centerTitle: true,\n      ),\n      body: LoginFields(),\n    );\n  }\n}\n\nclass LoginFields extends StatefulWidget {\n  @override\n  LoginFieldsState createState() => LoginFieldsState();\n}\n\nclass LoginFieldsState extends State<LoginFields> {\n  String _username;\n  String _password;\n  bool _isDetailValid = true;\n  bool _isValidating = false;\n\n  @override\n  void initState() {\n    super.initState();\n    _username = 'YOUR_USERNAME';\n    _password = 'YOUR_PASSWORD';\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Center(\n        child: SingleChildScrollView(\n      child: Container(\n        padding: PADDING_16,\n        child: Column(\n          mainAxisAlignment: MainAxisAlignment.center,\n          crossAxisAlignment: CrossAxisAlignment.center,\n          children: [\n            Padding(\n              padding: PADDING_8,\n              child: _buildFormField(\n                icon: Icon(Icons.person),\n                labelText: \"Username\",\n                hintText: \"Username\",\n                initialText: _username,\n                onChanged: _onUsernameChanged,\n              ),\n            ),\n            Padding(\n              padding: PADDING_8,\n              child: _buildFormField(\n                icon: Icon(Icons.lock),\n                labelText: \"Password\",\n                hintText: \"Password\",\n                initialText: _password,\n                obscureText: true,\n                onChanged: _onPasswordChanged,\n              ),\n            ),\n            _isDetailValid\n                ? SizedBox(\n                    width: 0.0,\n                    height: 0.0,\n                  )\n                : Padding(\n                    padding: PADDING_8,\n                    child: Text(\n                      \"Invalid Username / Password\",\n                      style: TextStyle(\n                        color: Colors.red,\n                      ),\n                    ),\n                  ),\n            ElevatedButton(\n              onPressed: _isValidating ? () {} : _validateUser,\n              child: Padding(\n                padding: PADDING_8,\n                child: _isValidating\n                    ? CircularProgressIndicator(\n                        valueColor: AlwaysStoppedAnimation(Colors.white),\n                      )\n                    : Text('Login'),\n              ),\n            ),\n          ],\n        ),\n      ),\n    ));\n  }\n\n  Widget _buildFormField({\n    Icon icon,\n    String labelText,\n    String hintText,\n    String initialText,\n    TextInputType inputType = TextInputType.text,\n    bool obscureText = false,\n    onChanged,\n  }) {\n    return TextField(\n      decoration: InputDecoration(\n        icon: icon,\n        labelText: labelText,\n        hintText: hintText,\n        border: OutlineInputBorder(\n          borderRadius: BorderRadius.circular(4.0),\n        ),\n      ),\n      controller: TextEditingController(text: initialText),\n      keyboardType: inputType,\n      obscureText: obscureText,\n      onChanged: onChanged,\n    );\n  }\n\n  void _onUsernameChanged(String value) {\n    _username = value;\n  }\n\n  void _onPasswordChanged(String value) {\n    _password = value;\n  }\n\n  void _validateUser() {\n    setState(() {\n      _isValidating = true;\n    });\n\n    wp.WordPress wordPress = new wp.WordPress(\n      baseUrl: 'YOUR WEBSITE URL',\n      authenticator: wp.WordPressAuthenticator.JWT,\n      adminName: '',\n      adminKey: '',\n    );\n\n    final response =\n        wordPress.authenticateUser(username: _username, password: _password);\n\n    response.then((user) {\n      setState(() {\n        _isDetailValid = true;\n        _isValidating = false;\n\n        _onValidUser(wordPress, user);\n      });\n    }).catchError((err) {\n      print(err.toString());\n      setState(() {\n        _isDetailValid = false;\n        _isValidating = false;\n      });\n    });\n  }\n\n  void _onValidUser(wp.WordPress wordPress, wp.User user) {\n    Navigator.pushReplacement(\n      context,\n      MaterialPageRoute(\n        builder: (context) => PostListPage(\n          wordPress: wordPress,\n          user: user,\n        ),\n      ),\n    );\n  }\n}\n"
  },
  {
    "path": "example/lib/main.dart",
    "content": "import 'package:flutter/material.dart';\nimport 'login.dart';\n\nvoid main() {\n  runApp(WordPressApp());\n}\n\nclass WordPressApp extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      debugShowCheckedModeBanner: false,\n      title: 'WordPress Demo',\n      theme: ThemeData.light(),\n      home: LoginPage(),\n    );\n  }\n}"
  },
  {
    "path": "example/lib/post_page.dart",
    "content": "import 'package:flutter/material.dart';\nimport 'package:flutter_html/flutter_html.dart';\nimport 'package:flutter_wordpress/flutter_wordpress.dart' as wp;\n\nclass SinglePostPage extends StatelessWidget {\n  final wp.WordPress wordPress;\n  final wp.Post post;\n\n  SinglePostPage({Key key, @required this.wordPress, @required this.post});\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        title: Text(post.title.rendered),\n      ),\n      body: Padding(\n        padding: EdgeInsets.all(8.0),\n        child: PostWithComments(wordPress: wordPress, post: post),\n      ),\n    );\n  }\n}\n\nclass PostWithComments extends StatefulWidget {\n  final wp.WordPress wordPress;\n  final wp.Post post;\n\n  PostWithComments({@required this.wordPress, @required this.post});\n\n  @override\n  PostWithCommentsState createState() => PostWithCommentsState();\n}\n\nclass PostWithCommentsState extends State<PostWithComments> {\n  String _content;\n\n  Future<List<wp.CommentHierarchy>> _comments;\n\n  @override\n  void initState() {\n    super.initState();\n\n    _content = widget.post.content.rendered;\n    _content = _content.replaceAll('localhost', '192.168.6.165');\n\n    fetchComments();\n  }\n\n  void fetchComments() {\n    setState(() {\n      _comments = widget.wordPress.fetchCommentsAsHierarchy(\n          params: wp.ParamsCommentList(\n        includePostIDs: [widget.post.id],\n      ));\n    });\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return CustomScrollView(\n      slivers: <Widget>[\n        SliverList(\n          delegate: SliverChildListDelegate(\n            [\n              Html(\n                data: _content,\n                // blockSpacing: 0.0,\n              ),\n              Divider(),\n              Row(\n                children: <Widget>[\n                  Icon(Icons.comment),\n                  Text('Comments'),\n                ],\n              ),\n              Divider(),\n            ],\n          ),\n        ),\n        FutureBuilder(\n          future: _comments,\n          builder: (context, snapshot) {\n            return SliverList(\n              delegate: _buildCommentsSection(snapshot),\n            );\n          },\n        ),\n      ],\n    );\n  }\n\n  SliverChildDelegate _buildCommentsSection(\n      AsyncSnapshot<List<wp.CommentHierarchy>> snapshot) {\n    if (snapshot.hasData) {\n      return _buildComments(snapshot.data);\n    } else if (snapshot.hasError) {\n      return SliverChildListDelegate([\n        Text(\n          'Error fetching comments: ${snapshot.error.toString()}',\n          style: TextStyle(\n            color: Colors.red,\n          ),\n        )\n      ]);\n    }\n\n    return SliverChildListDelegate(\n      [\n        Center(\n          child: CircularProgressIndicator(\n            valueColor: AlwaysStoppedAnimation(Colors.blue),\n          ),\n        ),\n      ],\n    );\n  }\n\n  SliverChildBuilderDelegate _buildComments(\n      List<wp.CommentHierarchy> comments) {\n    return SliverChildBuilderDelegate(\n      (BuildContext context, int i) {\n        if (comments == null || comments.length == 0) {\n          return Center(\n            child: Padding(\n              padding: EdgeInsets.all(8.0),\n              child: Text(\n                'No comments',\n                style: Theme.of(context).textTheme.bodyText1,\n              ),\n            ),\n          );\n        }\n\n        if (i % 2 != 0) {\n          return Divider();\n        }\n        return _buildCommentTile(comments[(i / 2).ceil()]);\n      },\n      childCount:\n          comments == null || comments.length == 0 ? 1 : comments.length * 2,\n    );\n  }\n\n  Widget _buildCommentTile(wp.CommentHierarchy root) {\n    if (root.children == null) {\n      return Padding(\n        padding: EdgeInsets.all(16.0),\n        child: Column(\n          crossAxisAlignment: CrossAxisAlignment.start,\n          children: <Widget>[\n            Html(\n              data: root.comment.content.rendered,\n              // blockSpacing: 0.0,\n            ),\n            Text(\n              root.comment.authorName,\n              style: TextStyle(\n                color: Colors.grey,\n                fontWeight: FontWeight.w300,\n              ),\n            ),\n          ],\n        ),\n      );\n    } else {\n      return ExpansionTile(\n        title: Column(\n          crossAxisAlignment: CrossAxisAlignment.start,\n          children: <Widget>[\n            Html(\n              data: root.comment.content.rendered,\n              // blockSpacing: 0.0,\n            ),\n            Text(\n              root.comment.authorName,\n              style: TextStyle(\n                color: Colors.grey,\n                fontWeight: FontWeight.w300,\n              ),\n            ),\n          ],\n        ),\n        children: root.children.map((c) {\n          return Padding(\n            padding: EdgeInsets.only(left: 16.0),\n            child: _buildCommentTile(c),\n          );\n        }).toList(),\n      );\n    }\n  }\n}\n"
  },
  {
    "path": "example/pubspec.yaml",
    "content": "name: flutter_wordpress_example\ndescription: Wordpress API testing example.\n\n# The following defines the version and build number for your application.\n# A version number is three numbers separated by dots, like 1.2.43\n# followed by an optional build number separated by a +.\n# Both the version and the builder number may be overridden in flutter\n# build by specifying --build-name and --build-number, respectively.\n# Read more about versioning at semver.org.\nversion: 1.0.0+1\npublish_to: none\n\nenvironment:\n  sdk: \">=2.0.0-dev.68.0 <3.0.0\"\n\ndependencies:\n  flutter_wordpress:\n    path: ../\n  flutter:\n    sdk: flutter\n  flutter_html: ^2.2.1\n\n  # The following adds the Cupertino Icons font to your application.\n  # Use with the CupertinoIcons class for iOS style icons.\n  cupertino_icons: ^1.0.4\n\ndev_dependencies:\n  flutter_test:\n    sdk: flutter\n\n\n# For information on the generic Dart part of this file, see the\n# following page: https://www.dartlang.org/tools/pub/pubspec\n\n# The following section is specific to Flutter.\nflutter:\n\n  # The following line ensures that the Material Icons font is\n  # included with your application, so that you can use the icons in\n  # the material Icons class.\n  uses-material-design: true\n\n  # To add assets to your application, add an assets section, like this:\n  # assets:\n  #  - images/a_dot_burr.jpeg\n  #  - images/a_dot_ham.jpeg\n\n  # An image asset can refer to one or more resolution-specific \"variants\", see\n  # https://flutter.io/assets-and-images/#resolution-aware.\n\n  # For details regarding adding assets from package dependencies, see\n  # https://flutter.io/assets-and-images/#from-packages\n\n  # To add custom fonts to your application, add a fonts section here,\n  # in this \"flutter\" section. Each entry in this list should have a\n  # \"family\" key with the font family name, and a \"fonts\" key with a\n  # list giving the asset and other descriptors for the font. For\n  # example:\n  # fonts:\n  #   - family: Schyler\n  #     fonts:\n  #       - asset: fonts/Schyler-Regular.ttf\n  #       - asset: fonts/Schyler-Italic.ttf\n  #         style: italic\n  #   - family: Trajan Pro\n  #     fonts:\n  #       - asset: fonts/TrajanPro.ttf\n  #       - asset: fonts/TrajanPro_Bold.ttf\n  #         weight: 700\n  #\n  # For details regarding fonts from package dependencies,\n  # see https://flutter.io/custom-fonts/#from-packages\n"
  },
  {
    "path": "example/test/widget_test.dart",
    "content": "// This is a basic Flutter widget test.\n//\n// To perform an interaction with a widget in your test, use the WidgetTester\n// utility that Flutter provides. For example, you can send tap and scroll\n// gestures. You can also use WidgetTester to find child widgets in the widget\n// tree, read text, and verify that the values of widget properties are correct.\n\nimport 'package:flutter/material.dart';\nimport 'package:flutter_test/flutter_test.dart';\n\nimport 'package:flutter_wordpress_example/main.dart';\n\nvoid main() {\n  testWidgets('Counter increments smoke test', (WidgetTester tester) async {\n    // Build our app and trigger a frame.\n    await tester.pumpWidget(WordPressApp());\n\n    // Verify that our counter starts at 0.\n    expect(find.text('0'), findsOneWidget);\n    expect(find.text('1'), findsNothing);\n\n    // Tap the '+' icon and trigger a frame.\n    await tester.tap(find.byIcon(Icons.add));\n    await tester.pump();\n\n    // Verify that our counter has incremented.\n    expect(find.text('0'), findsNothing);\n    expect(find.text('1'), findsOneWidget);\n  });\n}\n"
  },
  {
    "path": "flutter_wordpress.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\">\n  <component name=\"FacetManager\">\n    <facet type=\"android\" name=\"Android\">\n      <configuration>\n        <option name=\"ALLOW_USER_CONFIGURATION\" value=\"false\" />\n      </configuration>\n    </facet>\n  </component>\n  <component name=\"NewModuleRootManager\" inherit-compiler-output=\"true\">\n    <exclude-output />\n    <content url=\"file://$MODULE_DIR$\">\n      <sourceFolder url=\"file://$MODULE_DIR$/lib\" isTestSource=\"false\" />\n      <sourceFolder url=\"file://$MODULE_DIR$/test\" isTestSource=\"true\" />\n      <sourceFolder url=\"file://$MODULE_DIR$/gen\" isTestSource=\"false\" generated=\"true\" />\n      <excludeFolder url=\"file://$MODULE_DIR$/.dart_tool\" />\n      <excludeFolder url=\"file://$MODULE_DIR$/.idea\" />\n      <excludeFolder url=\"file://$MODULE_DIR$/.pub\" />\n      <excludeFolder url=\"file://$MODULE_DIR$/build\" />\n      <excludeFolder url=\"file://$MODULE_DIR$/example/.dart_tool\" />\n      <excludeFolder url=\"file://$MODULE_DIR$/example/.pub\" />\n      <excludeFolder url=\"file://$MODULE_DIR$/example/build\" />\n    </content>\n    <orderEntry type=\"jdk\" jdkName=\"Android API 28 Platform\" jdkType=\"Android SDK\" />\n    <orderEntry type=\"sourceFolder\" forTests=\"false\" />\n    <orderEntry type=\"library\" name=\"Dart SDK\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Flutter Plugins\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Dart Packages\" level=\"project\" />\n  </component>\n</module>"
  },
  {
    "path": "lib/constants.dart",
    "content": "const URL_JWT_BASE = '/wp-json/jwt-auth/v1';\nconst URL_WP_BASE = '/wp-json/wp/v2';\n\nconst URL_JWT_TOKEN = '$URL_JWT_BASE/token';\nconst URL_JWT_TOKEN_VALIDATE = '$URL_JWT_BASE/token/validate';\n\nconst URL_CATEGORIES = '$URL_WP_BASE/categories';\nconst URL_COMMENTS = '$URL_WP_BASE/comments';\nconst URL_MEDIA = '$URL_WP_BASE/media';\nconst URL_PAGES = '$URL_WP_BASE/pages';\nconst URL_POSTS = '$URL_WP_BASE/posts';\nconst URL_TAGS = '$URL_WP_BASE/tags';\nconst URL_USERS = '$URL_WP_BASE/users';\nconst URL_USER_ME = '$URL_WP_BASE/users/me';\n\nenum WordPressAuthenticator {\n  JWT,\n  ApplicationPasswords,\n}\nenum WordPressContext { view, embed, edit }\n\nenum Order {\n  asc,\n  desc,\n}\n\nenum PostOrderBy {\n  author,\n  date,\n  id,\n  include,\n  modified,\n  parent,\n  relevance,\n  slug,\n  title,\n}\nenum PostPageStatus {\n  publish,\n  future,\n  draft,\n  pending,\n  private,\n}\nenum PostCommentStatus {\n  open,\n  closed,\n}\nenum PostPingStatus {\n  open,\n  closed,\n}\nenum PostFormat {\n  standard,\n  aside,\n  chat,\n  gallery,\n  link,\n  image,\n  quote,\n  status,\n  video,\n  audio,\n}\n\nenum UserOrderBy {\n  id,\n  include,\n  name,\n  registered_date,\n  slug,\n  email,\n  url,\n}\n\nenum CommentOrderBy {\n  date,\n  date_gmt,\n  id,\n  include,\n  post,\n  parent,\n  type,\n}\nenum CommentStatus {\n  all,\n  approve,\n  hold,\n  spam,\n  trash,\n}\nenum CommentType {\n  comment,\n  //TODO: Add all comment types\n}\n\nenum CategoryTagOrderBy {\n  id,\n  include,\n  name,\n  slug,\n  term_group,\n  description,\n  count,\n}\n\nenum PageOrderBy {\n  author,\n  date,\n  id,\n  include,\n  modified,\n  parent,\n  relevance,\n  slug,\n  title,\n  menu_order,\n}\n\nenum MediaOrderBy {\n  author,\n  date,\n  id,\n  include,\n  modified,\n  parent,\n  relevance,\n  slug,\n  title,\n}\nenum MediaStatus {\n  inherit,\n  publish,\n  future,\n  draft,\n  pending,\n  private,\n}\nenum MediaType {\n  image,\n  video,\n  audio,\n  application,\n}\n\n/// Converts an enum string to enum value name.\nString enumStringToName(String enumString) {\n  return enumString.split('.')[1];\n}\n\n/// Formats a list of [items] to a comma(,) separated string to pass it as a\n/// URL parameter.\nString listToUrlString<T>(List<T> items) {\n  if (items.length == 0) return '';\n\n  return items.join(',');\n}\n\n/// Formats a [Map] of parameters to a string of URL friendly parameters.\nString constructUrlParams(Map<String, String> params) {\n  StringBuffer p = new StringBuffer('/?');\n  params.forEach((key, value) {\n    if (value != '') {\n      p.write('$key=$value');\n      p.write('&');\n    }\n  });\n  return p.toString();\n}\n"
  },
  {
    "path": "lib/flutter_wordpress.dart",
    "content": "/// This library uses [WordPress REST API V2](https://developer.wordpress.org/rest-api/)\n/// to provide a way for your application to interact with your WordPress website.\n///\n/// We use terminologies similar to the [WordPress REST API](https://developer.wordpress.org/rest-api/)\n///\n/// For authentication and usage of administrator level APIs, we have implemented\n/// two popular authentication plugins:\n///\n/// 1. [Application Passwords](https://wordpress.org/plugins/application-passwords/)\n/// 2. [JWT Authentication for WP REST API](https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/)\nlibrary flutter_wordpress;\n\nimport 'dart:convert';\nimport 'dart:io';\n\nimport 'package:http/http.dart' as http;\n\nimport 'constants.dart';\nimport 'requests/params_category_list.dart';\nimport 'requests/params_comment_list.dart';\nimport 'requests/params_media_list.dart';\nimport 'requests/params_page_list.dart';\nimport 'requests/params_post_list.dart';\nimport 'requests/params_tag_list.dart';\nimport 'requests/params_user_list.dart';\nimport 'schemas/category.dart';\nimport 'schemas/comment.dart';\nimport 'schemas/comment_hierarchy.dart';\nimport 'schemas/fetch_user_result.dart';\nimport 'schemas/jwt_response.dart';\nimport 'schemas/media.dart';\nimport 'schemas/page.dart';\nimport 'schemas/post.dart';\nimport 'schemas/tag.dart';\nimport 'schemas/user.dart';\nimport 'schemas/wordpress_error.dart';\n\nexport 'constants.dart';\nexport 'requests/params_category_list.dart';\nexport 'requests/params_comment_list.dart';\nexport 'requests/params_media_list.dart';\nexport 'requests/params_page_list.dart';\nexport 'requests/params_post_list.dart';\nexport 'requests/params_tag_list.dart';\nexport 'requests/params_user_list.dart';\nexport 'schemas/avatar_urls.dart';\nexport 'schemas/category.dart';\nexport 'schemas/comment.dart';\nexport 'schemas/comment_hierarchy.dart';\nexport 'schemas/content.dart';\nexport 'schemas/excerpt.dart';\nexport 'schemas/fetch_user_result.dart';\nexport 'schemas/guid.dart';\nexport 'schemas/jwt_response.dart';\nexport 'schemas/labels.dart';\nexport 'schemas/links.dart';\nexport 'schemas/media.dart';\nexport 'schemas/page.dart';\nexport 'schemas/post.dart';\nexport 'schemas/settings.dart';\nexport 'schemas/tag.dart';\nexport 'schemas/title.dart';\nexport 'schemas/user.dart';\nexport 'schemas/wordpress_error.dart';\n\n/// All WordPress related functionality are defined under this class.\nclass WordPress {\n  late String _baseUrl;\n  late WordPressAuthenticator _authenticator;\n\n  String _token = \"\";\n  Map<String, String> _urlHeader = {\n    'Authorization': '',\n  };\n\n  /// If [WordPressAuthenticator.ApplicationPasswords] is used as an authenticator,\n  /// [adminName] and [adminKey] is necessary for authentication.\n  /// https://wordpress.org/plugins/application-passwords/\n  WordPress({\n    required String baseUrl,\n    required WordPressAuthenticator authenticator,\n    String? adminName,\n    String? adminKey,\n  }) {\n    this._baseUrl = baseUrl.endsWith('/')\n        ? baseUrl.substring(0, baseUrl.length - 1)\n        : baseUrl;\n\n    this._authenticator = authenticator;\n\n    if (adminName != null && adminKey != null) {\n      switch (this._authenticator) {\n        case WordPressAuthenticator.ApplicationPasswords:\n          String str = '$adminName:$adminKey';\n          String base64 = base64Encode(utf8.encode(str));\n          _urlHeader['Authorization'] = 'Basic $base64';\n          break;\n        case WordPressAuthenticator.JWT:\n          //TODO: Implement JWT Admin authentication\n          break;\n      }\n    }\n  }\n\n  /// This returns a [User] object when a user with valid [username] and [password]\n  /// has been successfully authenticated.\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<User> authenticateUser({\n    required username,\n    required password,\n  }) async {\n    if (_authenticator == WordPressAuthenticator.ApplicationPasswords) {\n      return _authenticateViaAP(username, password);\n    } else if (_authenticator == WordPressAuthenticator.JWT) {\n      return _authenticateViaJWT(username, password);\n    } else\n      return fetchUser(username: username);\n  }\n\n  Future<User> _authenticateViaAP(username, password) async {\n    return fetchUser(username: username);\n  }\n\n  Future<User> _authenticateViaJWT(String username, String password) async {\n    final body = {\n      'username': username,\n      'password': password,\n    };\n\n    final response = await http.post(\n      Uri.parse(_baseUrl + URL_JWT_TOKEN),\n      body: body,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      JWTResponse authResponse = JWTResponse.fromJson(\n        json.decode(response.body),\n      );\n      _token = authResponse.token!;\n      _urlHeader['Authorization'] = 'Bearer ${authResponse.token}';\n\n      return fetchUser(email: authResponse.userEmail);\n    } else {\n      try {\n        throw new WordPressError.fromJson(json.decode(response.body));\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  String getToken() {\n    return _token;\n  }\n\n  Future<User> authenticateViaToken(String token) async {\n    _urlHeader['Authorization'] = 'Bearer ${token}';\n\n    final response = await http.post(\n      Uri.parse(_baseUrl + URL_JWT_TOKEN_VALIDATE),\n      headers: _urlHeader,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return fetchMeUser();\n    } else {\n      throw new WordPressError(message: response.body);\n    }\n  }\n\n  /// This returns a [User] object if the user with [id], [email] or [username]\n  /// exists. Otherwise throws [WordPressError].\n  ///\n  /// Only one parameter is enough to search for the user.\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<User> fetchUser({\n    int? id,\n    String? email,\n    String? username,\n  }) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_USERS);\n    final Map<String, String> params = {\n      'search': '',\n    };\n    if (id != null) {\n      params['search'] = '$id';\n    } else if (email != null)\n      params['search'] = email;\n    else if (username != null) params['search'] = username;\n\n    url.write(constructUrlParams(params));\n\n    final response = await http.get(\n      Uri.parse(url.toString()),\n      headers: _urlHeader,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      final jsonStr = json.decode(response.body);\n      if (jsonStr.length == 0)\n        throw new WordPressError(\n            code: 'wp_empty_list', message: \"No users found\");\n\n      return User.fromJson(jsonStr[0]);\n    } else {\n      try {\n        WordPressError err = WordPressError.fromJson(\n          json.decode(response.body),\n        );\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  /// This returns the me [User] object with the current token. Otherwise throws [WordPressError].\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<User> fetchMeUser() async {\n    final response = await http.get(\n      Uri.parse(_baseUrl + URL_USER_ME),\n      headers: _urlHeader,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      final jsonStr = json.decode(response.body);\n      if (jsonStr.length == 0)\n        throw new WordPressError(\n            code: 'wp_empty_user', message: \"No user found\");\n      return User.fromJson(jsonStr);\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  /// This returns a list of [Post] based on the filter parameters\n  /// specified through [ParamsPostList] object. By default it returns only\n  /// [ParamsPostList.perPage] number of posts in page [ParamsPostList.pageNum].\n  ///\n  /// [fetchAuthor], [fetchComments], [fetchCategories], [fetchTags],\n  /// [fetchFeaturedMedia] and [fetchAttachments] will fetch and set [Post.author],\n  /// [Post.comments], [Post.categories], [Post.tags], [Post.featuredMedia] and\n  /// [Post.attachments] respectively. If they are non-existent, their values will\n  /// null.\n  ///\n  /// (**Note:** *Set only those fetch boolean parameters which you need because\n  /// the more information to fetch, the longer it will take to return all Posts*)\n  ///\n  /// [fetchAll] will make as many API requests as is needed to get all posts.\n  /// This may take a while.\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<List<Post>> fetchPosts(\n      {required ParamsPostList postParams,\n      bool fetchAuthor = false,\n      bool fetchComments = false,\n      Order orderComments = Order.desc,\n      CommentOrderBy orderCommentsBy = CommentOrderBy.date,\n      bool fetchCategories = false,\n      bool fetchTags = false,\n      bool fetchFeaturedMedia = false,\n      bool fetchAttachments = false,\n      String postType = \"posts\",\n      bool fetchAll = false}) async {\n    int bulkBatchNum = 100;\n\n    if (fetchAll) {\n      postParams = postParams.copyWith(perPage: bulkBatchNum);\n    }\n\n    Map<int, User> authorsByID = {};\n    Map<int, int> authorIDForPostIDs = {};\n    Map<int, Post> postsByID = {};\n    Map<int, List<Comment>> commentsForPostIDs = {};\n    Map<int, int> featuredMediaIDForPostIDs = {};\n    Map<int, Media> featuredMediaByID = {};\n    Map<int, Category> categoriesByID = {};\n    Map<int, Tag> tagsByID = {};\n    Map<int, List<Media>> attachmentsForPostIDs = {};\n\n    /// This function fetches post information such as author, comments, categories,\n    /// tags, featuredMedia and attachments.\n    var _postPrep = ({\n      required Post post,\n      bool setAuthor = false,\n      bool setComments = false,\n      bool setCategories = false,\n      bool setTags = false,\n      bool setFeaturedMedia = false,\n      bool setAttachments = false,\n    }) async {\n      if (setAuthor && post.id != null && post.authorID != null) {\n        authorIDForPostIDs[post.id!] = post.authorID!;\n      }\n      if (setComments && post.id != null) {\n        commentsForPostIDs[post.id!] = [];\n      }\n      if (setCategories) {\n        post.categoryIDs\n            ?.forEach((id) => categoriesByID[id] = Category(id: id));\n      }\n      if (setTags) {\n        post.tagIDs?.forEach((id) => tagsByID[id] = Tag(id: id));\n      }\n      if (setFeaturedMedia && post.id != null && post.featuredMediaID != null) {\n        featuredMediaIDForPostIDs[post.id!] = post.featuredMediaID!;\n      }\n      if (setAttachments && post.id != null) {\n        attachmentsForPostIDs[post.id!] = [];\n      }\n      return post;\n    };\n\n    final StringBuffer url =\n        new StringBuffer(_baseUrl + URL_WP_BASE + \"/\" + postType);\n\n    url.write(postParams.toString());\n\n    final response =\n        await http.get(Uri.parse(url.toString()), headers: _urlHeader);\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      final list = json.decode(response.body);\n\n      for (final post in list) {\n        var pt = await _postPrep(\n          post: Post.fromJson(post),\n          setAuthor: fetchAuthor,\n          setComments: fetchComments,\n          setFeaturedMedia: fetchFeaturedMedia,\n          setCategories: fetchCategories,\n          setAttachments: fetchAttachments,\n        );\n        if (pt.id != null) postsByID[pt.id!] = pt;\n      }\n\n      var pids = postsByID.keys.toList();\n\n      //handler to fetch authors\n      var handleGettingAuthors = ({bool setAuthor = false}) async {\n        if (setAuthor) {\n          var aids = authorIDForPostIDs.values.toList();\n          FetchUsersResult authResult =\n              await fetchUsers(params: ParamsUserList(includeUserIDs: aids));\n          authorsByID = Map.fromIterable(authResult.users,\n              key: (u) => u.id, value: (u) => u);\n          if (authResult.users.length != authResult.totalUsers &&\n              authResult.totalUsers != null) {\n            var stride = authResult.users.length;\n            var numOfCalls = (authResult.totalUsers! / stride) + 1;\n            for (var i = 2; i <= numOfCalls; i++) {\n              FetchUsersResult result = await fetchUsers(\n                  params: ParamsUserList(\n                includeUserIDs: aids,\n                pageNum: i,\n                perPage: stride,\n              ));\n              result.users.forEach((u) {\n                if (u.id != null) authorsByID[u.id!] = u;\n              });\n            }\n          }\n        }\n      };\n\n      //handler to fetch comments\n      var handleGettingComments = ({bool setComments = false}) async {\n        if (setComments) {\n          List<Comment> comments = await this.fetchComments(\n              params: ParamsCommentList(\n            includePostIDs: pids,\n            order: orderComments,\n            orderBy: orderCommentsBy,\n            perPage: bulkBatchNum,\n            pageNum: 1,\n          ));\n          if (comments.length != 0) {\n            comments.forEach((comment) {\n              commentsForPostIDs[comment.post]?.add(comment);\n            });\n            var i = 2;\n            while (comments.length == bulkBatchNum) {\n              comments = await this.fetchComments(\n                  params: ParamsCommentList(\n                includePostIDs: pids,\n                order: orderComments,\n                orderBy: orderCommentsBy,\n                perPage: bulkBatchNum,\n                pageNum: i,\n              ));\n              comments.forEach((comment) {\n                commentsForPostIDs[comment.post]?.add(comment);\n              });\n              i += 1;\n            }\n          }\n        }\n      };\n\n      //handler to fetch categories\n      var handleGettingCategories = ({bool setCategories = false}) async {\n        if (setCategories) {\n          var cids = categoriesByID.keys.toList();\n          List<Category> categories = await this.fetchCategories(\n              params: ParamsCategoryList(\n            includeCategoryIDs: cids,\n            perPage: bulkBatchNum,\n            pageNum: 1,\n          ));\n          if (categories.length != 0) {\n            categories.forEach((cat) {\n              if (cat.id != null) categoriesByID[cat.id!] = cat;\n            });\n            var i = 2;\n            while (categories.length == bulkBatchNum) {\n              categories = await this.fetchCategories(\n                  params: ParamsCategoryList(\n                includeCategoryIDs: cids,\n                perPage: bulkBatchNum,\n                pageNum: i,\n              ));\n              categories.forEach((cat) {\n                if (cat.id != null) categoriesByID[cat.id!] = cat;\n              });\n              i += 1;\n            }\n          }\n        }\n      };\n\n      //handler to fetch tags\n      var handleGettingTags = ({bool setTags = false}) async {\n        var tids = tagsByID.keys.toList();\n        if (setTags) {\n          List<Tag> tags = await this.fetchTags(\n              params: ParamsTagList(\n            includeTagIDs: tids,\n            perPage: bulkBatchNum,\n            pageNum: 1,\n          ));\n          if (tags.length != 0) {\n            tags.forEach((tag) {\n              if (tag.id != null) tagsByID[tag.id!] = tag;\n            });\n            var i = 2;\n            while (tags.length == bulkBatchNum) {\n              tags = await this.fetchTags(\n                  params: ParamsTagList(\n                includeTagIDs: tids,\n                perPage: bulkBatchNum,\n                pageNum: i,\n              ));\n              tags.forEach((tag) {\n                if (tag.id != null) tagsByID[tag.id!] = tag;\n              });\n              i += 1;\n            }\n          }\n        }\n      };\n\n      //handler to fetch featured media\n      var handleGettingFeaturedMedia = ({bool setFeaturedMedia = false}) async {\n        if (setFeaturedMedia) {\n          var fids = featuredMediaIDForPostIDs.values.toList();\n          List<Media> media = await this.fetchMediaList(\n            params: ParamsMediaList(\n                includeMediaIDs: fids, perPage: bulkBatchNum, pageNum: 1),\n          );\n          if (media.length != 0) {\n            media.forEach((fm) {\n              if (fm.id != null) featuredMediaByID[fm.id!] = fm;\n            });\n            var i = 2;\n            while (media.length == bulkBatchNum) {\n              media = await this.fetchMediaList(\n                params: ParamsMediaList(\n                  includeMediaIDs: fids,\n                  perPage: bulkBatchNum,\n                  pageNum: i,\n                ),\n              );\n              media.forEach((fm) {\n                if (fm.id != null) featuredMediaByID[fm.id!] = fm;\n              });\n              i += 1;\n            }\n          }\n        }\n      };\n\n      //handler to fetch attachments\n      var handleGettingAttachments = ({bool setAttachments = false}) async {\n        if (setAttachments) {\n          List<Media> attachments = await this.fetchMediaList(\n            params: ParamsMediaList(\n              includeParentIDs: pids,\n              perPage: bulkBatchNum,\n              pageNum: 1,\n            ),\n          );\n          if (attachments.length != 0) {\n            attachments.forEach((attachment) {\n              attachmentsForPostIDs[attachment.post]?.add(attachment);\n            });\n            var i = 2;\n            while (attachments.length == bulkBatchNum) {\n              attachments = await this.fetchMediaList(\n                params: ParamsMediaList(\n                  includeParentIDs: pids,\n                  perPage: bulkBatchNum,\n                  pageNum: i,\n                ),\n              );\n              attachments.forEach((attachment) {\n                attachmentsForPostIDs[attachment.post]?.add(attachment);\n              });\n              i += 1;\n            }\n          }\n        }\n      };\n\n      await Future.wait([\n        handleGettingAuthors(setAuthor: fetchAuthor),\n        handleGettingComments(setComments: fetchComments),\n        handleGettingCategories(setCategories: fetchCategories),\n        handleGettingTags(setTags: fetchTags),\n        handleGettingFeaturedMedia(setFeaturedMedia: fetchFeaturedMedia),\n        handleGettingAttachments(setAttachments: fetchAttachments),\n      ]);\n\n      //fill posts\n      postsByID.values.forEach((post) {\n        //handle Author\n        if (fetchAuthor) {\n          post.author = authorsByID[post.authorID];\n        }\n        //handle comments\n        if (fetchComments) {\n          post.comments = commentsForPostIDs[post.id];\n          post.commentsHierarchy = [];\n          if (post.comments != null) {\n            post.comments?.forEach((comment) {\n              if (comment.parent == 0)\n                post.commentsHierarchy?.add(\n                    _commentHierarchyBuilder(post.comments ?? [], comment));\n            });\n          }\n        }\n        //handle categories\n        if (fetchCategories) {\n          post.categories = [];\n          post.categoryIDs?.forEach((catid) {\n            if (categoriesByID[catid] != null)\n              post.categories?.add(categoriesByID[catid]!);\n          });\n        }\n        //handle tags\n        if (fetchTags) {\n          post.tags = [];\n          post.tagIDs?.forEach((id) {\n            if (tagsByID[id] != null) post.tags?.add(tagsByID[id]!);\n          });\n        }\n        //handle featured media\n        if (fetchFeaturedMedia) {\n          post.featuredMedia =\n              featuredMediaByID[featuredMediaIDForPostIDs[post.id]];\n        }\n        //handle attachments\n        if (fetchAttachments) {\n          post.attachments = attachmentsForPostIDs[post.id];\n        }\n      });\n\n      if (fetchAll && response.headers[\"x-wp-totalpages\"] != null) {\n        final totalPages = int.parse(response.headers[\"x-wp-totalpages\"]!);\n\n        for (int i = postParams.pageNum + 1; i <= totalPages; ++i) {\n          (await fetchPosts(\n            postParams: postParams.copyWith(pageNum: i),\n            fetchAuthor: fetchAuthor,\n            fetchComments: fetchComments,\n            orderComments: orderComments,\n            orderCommentsBy: orderCommentsBy,\n            fetchCategories: fetchCategories,\n            fetchTags: fetchTags,\n            fetchFeaturedMedia: fetchFeaturedMedia,\n            fetchAttachments: fetchAttachments,\n          ))\n              .forEach((p) {\n            if (p.id != null) postsByID[p.id!] = p;\n          });\n        }\n      }\n\n      return postsByID.values.toList();\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  ///This recursive function builds the hierarchy of comments for the given post\n  ///and comment. Only parent comments (direct comments to post) need to be\n  ///supplied.\n  CommentHierarchy _commentHierarchyBuilder(\n    List<Comment> commentList,\n    Comment comment,\n  ) {\n    final childComments = commentList.where((ele) =>\n        ele.id != comment.id && ele.parent != 0 && ele.parent == comment.id);\n\n    if (childComments.length == 0) {\n      return new CommentHierarchy(comment: comment);\n    } else {\n      List<CommentHierarchy> children = [];\n      childComments.forEach((c) {\n        children.add(_commentHierarchyBuilder(commentList, c));\n      });\n      return new CommentHierarchy(\n        comment: comment,\n        children: children,\n      );\n    }\n  }\n\n  /// This returns a list of [Page] based on the filter parameters\n  /// specified through [ParamsPageList] object. By default it returns only\n  /// [ParamsPageList.perPage] number of pages in page [ParamsPageList.pageNum].\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<List<Page>> fetchPages({required ParamsPageList params}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_PAGES);\n\n    url.write(params.toString());\n\n    final response =\n        await http.get(Uri.parse(url.toString()), headers: _urlHeader);\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      List<Page> pages = [];\n      final list = json.decode(response.body);\n      list.forEach((page) {\n        pages.add(Page.fromJson(page));\n      });\n      return pages;\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  /// This returns an object FetchUsersResult based on the filter parameters\n  /// specified through [ParamsUserList] object. By default it returns only\n  /// [ParamsUserList.perPage] number of users in page [ParamsUserList.pageNum].\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<FetchUsersResult> fetchUsers({required ParamsUserList params}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_USERS);\n\n    url.write(params.toString());\n\n    return _doUsersFetch(url);\n  }\n\n  /// This returns an object FetchUsersResult as defined by the input, based on the filter parameters\n  /// specified through [ParamsUserList] object. The url it fetches to is defined by the input [String] path. By default it returns only\n  /// [ParamsUserList.perPage] number of users in page [ParamsUserList.pageNum].\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<FetchUsersResult> fetchCustomUsers({\n    required String path,\n    required ParamsUserList params,\n  }) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + path);\n    url.write(params.toString());\n\n    return _doUsersFetch(url);\n  }\n\n  Future<FetchUsersResult> _doUsersFetch(StringBuffer url) async {\n    final response = await http.get(\n      Uri.parse(url.toString()),\n      headers: _urlHeader,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      List<User> users = [];\n      final list = json.decode(response.body);\n      int totalUsers = int.parse(response.headers['x-wp-total']!);\n\n      list.forEach((user) {\n        users.add(User.fromJson(user));\n      });\n      return FetchUsersResult(users, totalUsers);\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  /// This returns a list of [Comment] based on the filter parameters\n  /// specified through [ParamsCommentList] object. By default it returns only\n  /// [ParamsCommentList.perPage] number of comments in page [ParamsCommentList.pageNum].\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<List<Comment>> fetchComments({\n    required ParamsCommentList params,\n  }) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_COMMENTS);\n\n    url.write(params.toString());\n\n    final response = await http.get(\n      Uri.parse(url.toString()),\n      headers: _urlHeader,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      List<Comment> comments = [];\n      final list = json.decode(response.body);\n      list.forEach((comment) {\n        comments.add(Comment.fromJson(comment));\n      });\n      return comments;\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  /// This returns a list of [CommentHierarchy] based on the filter parameters\n  /// specified through [ParamsCommentList] object. The list returned has all\n  /// parent comments (i.e. comments directed towards posts) with\n  /// [CommentHierarchy.children] containing the replies to that comment.\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<List<CommentHierarchy>> fetchCommentsAsHierarchy({\n    required ParamsCommentList params,\n  }) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_COMMENTS);\n\n    url.write(params.toString());\n\n    final response = await http.get(\n      Uri.parse(url.toString()),\n      headers: _urlHeader,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      List<Comment> comments = [];\n      List<CommentHierarchy> commentsHierarchy = [];\n      final list = json.decode(response.body);\n      list.forEach((comment) {\n        comments.add(Comment.fromJson(comment));\n      });\n\n      comments.forEach((comment) {\n        if (comment.parent == 0)\n          commentsHierarchy.add(_commentHierarchyBuilder(comments, comment));\n      });\n      return commentsHierarchy;\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  /// This returns a list of [Category] based on the filter parameters\n  /// specified through [ParamsCategoryList] object. By default it returns only\n  /// [ParamsCategoryList.perPage] number of categories in page [ParamsCategoryList.pageNum].\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<List<Category>> fetchCategories({\n    required ParamsCategoryList params,\n    bool fetchAll = false,\n  }) async {\n    if (fetchAll) {\n      params = params.copyWith(perPage: 100);\n    }\n\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_CATEGORIES);\n\n    url.write(params.toString());\n\n    final response = await http.get(\n      Uri.parse(url.toString()),\n      headers: _urlHeader,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      List<Category> categories = [];\n      final list = json.decode(response.body);\n      list.forEach((category) {\n        categories.add(Category.fromJson(category));\n      });\n\n      if (fetchAll && response.headers[\"x-wp-totalpages\"] != null) {\n        final totalPages = int.parse(response.headers[\"x-wp-totalpages\"]!);\n\n        for (int i = params.pageNum + 1; i <= totalPages; ++i) {\n          categories.addAll(\n              await fetchCategories(params: params.copyWith(pageNum: i)));\n        }\n      }\n\n      return categories;\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  /// This returns a list of [Tag] based on the filter parameters\n  /// specified through [ParamsTagList] object. By default it returns only\n  /// [ParamsTagList.perPage] number of tags in page [ParamsTagList.pageNum].\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<List<Tag>> fetchTags({required ParamsTagList params}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_TAGS);\n\n    url.write(params.toString());\n\n    final response = await http.get(\n      Uri.parse(url.toString()),\n      headers: _urlHeader,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      List<Tag> tags = [];\n      final list = json.decode(response.body);\n      list.forEach((tag) {\n        tags.add(Tag.fromJson(tag));\n      });\n      return tags;\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  /// This returns a list of [Media] based on the filter parameters\n  /// specified through [ParamsMediaList] object. By default it returns only\n  /// [ParamsMediaList.perPage] number of tags in page [ParamsMediaList.pageNum].\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<List<Media>> fetchMediaList({required ParamsMediaList params}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_MEDIA);\n\n    url.write(params.toString());\n\n    final response = await http.get(\n      Uri.parse(url.toString()),\n      headers: _urlHeader,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      List<Media> media = [];\n      final list = json.decode(response.body);\n      list.forEach((m) {\n        media.add(Media.fromJson(m));\n      });\n      return media;\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n  /// This is used to create a [Post] in the site. Before this method can be called,\n  /// [User] creating the post needs to be authenticated first by calling\n  /// [WordPress.authenticateUser]. On success, the [Post] object is returned containing\n  /// post information.\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  ///\n  ///\n\n  Future<Post> createPost({required Post post}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_POSTS);\n\n    final response = await http.post(\n      Uri.parse(url.toString()),\n      headers: _urlHeader,\n      body: post.toJson(),\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return Post.fromJson(json.decode(response.body));\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n//  yahya - @mymakarim\n\n  Future<dynamic> uploadMedia(File image) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_MEDIA);\n    var file = image.readAsBytesSync();\n    final response = await http.post(\n      Uri.parse(url.toString()),\n      headers: {\n        \"Content-Type\": \"image/png\",\n        \"Content-Disposition\": \"form-data; filename=firstIg.png\",\n        \"Authorization\": \"${_urlHeader['Authorization']}\"\n      },\n      body: file,\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return json.decode(response.body);\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n\n// uploadMedia function added by: @GarvMaggu\n\n  Future<bool> createUser({required User user}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_USERS);\n\n    HttpClient httpClient = new HttpClient();\n    HttpClientRequest request =\n        await httpClient.postUrl(Uri.parse(url.toString()));\n    request.headers\n        .set(HttpHeaders.contentTypeHeader, \"application/json; charset=UTF-8\");\n    request.headers.set(HttpHeaders.acceptHeader, \"application/json\");\n    request.headers.set('Authorization', \"${_urlHeader['Authorization']}\");\n\n    request.add(utf8.encode(json.encode(user.toJson())));\n    HttpClientResponse response = await request.close();\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return true;\n    } else {\n      response.transform(utf8.decoder).listen((contents) {\n        try {\n          WordPressError err = WordPressError.fromJson(json.decode(contents));\n          throw err;\n        } catch (e) {\n          throw new WordPressError(message: contents);\n        }\n      });\n    }\n\n    return false;\n  }\n\n//  =====================\n//  UPDATE START\n//  =====================\n\n  Future<bool> updatePost({required int id, required Post post}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_POSTS + '/$id');\n\n    HttpClient httpClient = new HttpClient();\n    HttpClientRequest request =\n        await httpClient.postUrl(Uri.parse(url.toString()));\n    request.headers\n        .set(HttpHeaders.contentTypeHeader, \"application/json; charset=UTF-8\");\n    request.headers.set(HttpHeaders.acceptHeader, \"application/json\");\n    request.headers.set('Authorization', \"${_urlHeader['Authorization']}\");\n\n    request.add(utf8.encode(json.encode(post.toJson())));\n    HttpClientResponse response = await request.close();\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return true;\n    } else {\n      response.transform(utf8.decoder).listen((contents) {\n        try {\n          WordPressError err = WordPressError.fromJson(json.decode(contents));\n          throw err;\n        } catch (e) {\n          throw new WordPressError(message: contents);\n        }\n      });\n    }\n    return false;\n  }\n\n  Future<bool> updateComment(\n      {required int id, required Comment comment}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_COMMENTS + '/$id');\n\n    HttpClient httpClient = new HttpClient();\n    HttpClientRequest request =\n        await httpClient.postUrl(Uri.parse(url.toString()));\n    request.headers\n        .set(HttpHeaders.contentTypeHeader, \"application/json; charset=UTF-8\");\n    request.headers.set(HttpHeaders.acceptHeader, \"application/json\");\n    request.headers.set('Authorization', \"${_urlHeader['Authorization']}\");\n\n    request.add(utf8.encode(json.encode(comment.toJson())));\n    HttpClientResponse response = await request.close();\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return true;\n    } else {\n      response.transform(utf8.decoder).listen((contents) {\n        try {\n          WordPressError err = WordPressError.fromJson(json.decode(contents));\n          throw err;\n        } catch (e) {\n          throw new WordPressError(message: contents);\n        }\n      });\n    }\n    return false;\n  }\n\n  Future<bool> updateUser({required int id, required User user}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_USERS + '/$id');\n\n    HttpClient httpClient = new HttpClient();\n    HttpClientRequest request =\n        await httpClient.postUrl(Uri.parse(url.toString()));\n    request.headers\n        .set(HttpHeaders.contentTypeHeader, \"application/json; charset=UTF-8\");\n    request.headers.set(HttpHeaders.acceptHeader, \"application/json\");\n    request.headers.set('Authorization', \"${_urlHeader['Authorization']}\");\n\n    request.add(utf8.encode(json.encode(user.toJson())));\n    HttpClientResponse response = await request.close();\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return true;\n    } else {\n      response.transform(utf8.decoder).listen((contents) {\n        try {\n          WordPressError err = WordPressError.fromJson(json.decode(contents));\n          throw err;\n        } catch (e) {\n          throw new WordPressError(message: contents);\n        }\n      });\n    }\n    return false;\n  }\n\n//  =====================\n//  UPDATE END\n//  =====================\n\n//  =====================\n//  DELETE START\n//  =====================\n\n  Future<bool> deletePost({required int id}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_POSTS + '/$id');\n\n    HttpClient httpClient = new HttpClient();\n    HttpClientRequest request =\n        await httpClient.deleteUrl(Uri.parse(url.toString()));\n    request.headers\n        .set(HttpHeaders.contentTypeHeader, \"application/json; charset=UTF-8\");\n    request.headers.set(HttpHeaders.acceptHeader, \"application/json\");\n    request.headers.set('Authorization', \"${_urlHeader['Authorization']}\");\n\n    HttpClientResponse response = await request.close();\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return true;\n    } else {\n      response.transform(utf8.decoder).listen((contents) {\n        try {\n          WordPressError err = WordPressError.fromJson(json.decode(contents));\n          throw err;\n        } catch (e) {\n          throw new WordPressError(message: contents);\n        }\n      });\n    }\n    return false;\n  }\n\n  Future<bool> deleteComment({required int id}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_COMMENTS + '/$id');\n\n    HttpClient httpClient = new HttpClient();\n    HttpClientRequest request =\n        await httpClient.deleteUrl(Uri.parse(url.toString()));\n    request.headers\n        .set(HttpHeaders.contentTypeHeader, \"application/json; charset=UTF-8\");\n    request.headers.set(HttpHeaders.acceptHeader, \"application/json\");\n    request.headers.set('Authorization', \"${_urlHeader['Authorization']}\");\n\n    HttpClientResponse response = await request.close();\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return true;\n    } else {\n      response.transform(utf8.decoder).listen((contents) {\n        try {\n          WordPressError err = WordPressError.fromJson(json.decode(contents));\n          throw err;\n        } catch (e) {\n          throw new WordPressError(message: contents);\n        }\n      });\n    }\n    return false;\n  }\n\n  Future<bool> deleteUser({\n    required int id,\n    required int reassign,\n  }) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_USERS + '/$id');\n\n    HttpClient httpClient = new HttpClient();\n    HttpClientRequest request =\n        await httpClient.deleteUrl(Uri.parse(url.toString()));\n    request.headers\n        .set(HttpHeaders.contentTypeHeader, \"application/json; charset=UTF-8\");\n    request.headers.set(HttpHeaders.acceptHeader, \"application/json\");\n    request.headers.set('Authorization', \"${_urlHeader['Authorization']}\");\n\n    request\n        .add(utf8.encode(json.encode({\"reassign\": reassign, \"force\": true})));\n    HttpClientResponse response = await request.close();\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return true;\n    } else {\n      response.transform(utf8.decoder).listen((contents) {\n        try {\n          WordPressError err = WordPressError.fromJson(json.decode(contents));\n          throw err;\n        } catch (e) {\n          throw new WordPressError(message: contents);\n        }\n      });\n    }\n    return false;\n  }\n\n//  =====================\n//  UPDATE END\n//  =====================\n\n//  end yahya - @mymakarim\n\n  /// This is used to create a [Comment] for a [Post]. Before this method can be called,\n  /// [User] writing the comment needs to be authenticated first by calling\n  /// [WordPress.authenticateUser]. On success, the [Comment] object is returned containing\n  /// comment information.\n  ///\n  /// In case of an error, a [WordPressError] object is thrown.\n  Future<Comment> createComment({required Comment comment}) async {\n    final StringBuffer url = new StringBuffer(_baseUrl + URL_COMMENTS);\n\n    final response = await http.post(\n      Uri.parse(url.toString()),\n      headers: _urlHeader,\n      body: comment.toJson(),\n    );\n\n    if (response.statusCode >= 200 && response.statusCode < 300) {\n      return Comment.fromJson(json.decode(response.body));\n    } else {\n      try {\n        WordPressError err =\n            WordPressError.fromJson(json.decode(response.body));\n        throw err;\n      } catch (e) {\n        throw new WordPressError(message: response.body);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/requests/params_category_list.dart",
    "content": "import 'package:flutter_wordpress/constants.dart';\n\n/// This class holds all arguments which can be used to filter Categories when using\n/// [WordPress.fetchCategories] method.\n///\n/// [List Categories' Arguments](https://developer.wordpress.org/rest-api/reference/categories/#list-categories)\nclass ParamsCategoryList {\n  final WordPressContext context;\n  final int pageNum;\n  final int perPage;\n  final String searchQuery;\n  final List<int> excludeCategoryIDs;\n  final List<int> includeCategoryIDs;\n  final Order order;\n  final CategoryTagOrderBy orderBy;\n  final bool hideEmpty;\n  final int? parent;\n  final int? post;\n  final String slug;\n\n  ParamsCategoryList({\n    this.context = WordPressContext.view,\n    this.pageNum = 1,\n    this.perPage = 10,\n    this.searchQuery = '',\n    this.excludeCategoryIDs = const [],\n    this.includeCategoryIDs = const [],\n    this.order = Order.asc,\n    this.orderBy = CategoryTagOrderBy.name,\n    this.hideEmpty = false,\n    this.parent,\n    this.post,\n    this.slug = '',\n  });\n\n  Map<String, String> toMap() {\n    return {\n      'context': '${enumStringToName(this.context.toString())}',\n      'page': '${this.pageNum}',\n      'per_page': '${this.perPage}',\n      'search': '${this.searchQuery}',\n      'exclude': '${listToUrlString(this.excludeCategoryIDs)}',\n      'include': '${listToUrlString(this.includeCategoryIDs)}',\n      'order': '${enumStringToName(this.order.toString())}',\n      'orderby': '${enumStringToName(this.orderBy.toString())}',\n      'hide_empty': '${this.hideEmpty}',\n      'parent': '${this.parent == null ? '' : this.parent}',\n      'post': '${this.post == null ? '' : this.post}',\n      'slug': '${this.slug}',\n    };\n  }\n\n  ParamsCategoryList copyWith({\n    int? pageNum,\n    int? perPage\n  }) {\n    return ParamsCategoryList(\n      context: context,\n      order: order,\n      orderBy: orderBy,\n      pageNum: pageNum ?? this.pageNum,\n      perPage: perPage ?? this.perPage,\n      searchQuery: searchQuery,\n      slug: slug,\n      excludeCategoryIDs: excludeCategoryIDs,\n      hideEmpty: hideEmpty,\n      includeCategoryIDs: includeCategoryIDs,\n      parent: parent,\n      post: post\n    );\n  }\n\n  @override\n  String toString() {\n    return constructUrlParams(toMap());\n  }\n}\n"
  },
  {
    "path": "lib/requests/params_comment_list.dart",
    "content": "import 'package:flutter_wordpress/constants.dart';\n\n/// This class holds all arguments which can be used to filter comments when using\n/// [WordPress.fetchComments] method.\n///\n/// [List Comments' Arguments](https://developer.wordpress.org/rest-api/reference/comments/#list-comments)\nclass ParamsCommentList {\n  final WordPressContext context;\n  final int pageNum;\n  final int perPage;\n  final String searchQuery;\n  final String afterDate;\n  final List<int> includeAuthorIDs;\n  final List<int> excludeAuthorIDs;\n  final String authorEmail;\n  final String beforeDate;\n  final List<int> excludeCommentIDs;\n  final List<int> includeCommentIDs;\n  final int? offset;\n  final Order order;\n  final CommentOrderBy orderBy;\n  final List<int> includeParentIDs;\n  final List<int> excludeParentIDs;\n  final List<int> includePostIDs;\n  final CommentStatus commentStatus;\n  final CommentType commentType;\n  final String postPassword;\n\n  ParamsCommentList({\n    this.context = WordPressContext.view,\n    this.pageNum = 1,\n    this.perPage = 10,\n    this.searchQuery = '',\n    this.afterDate = '',\n    this.includeAuthorIDs = const [],\n    this.excludeAuthorIDs = const [],\n    this.authorEmail = '',\n    this.beforeDate = '',\n    this.excludeCommentIDs = const [],\n    this.includeCommentIDs = const [],\n    this.offset,\n    this.order = Order.desc,\n    this.orderBy = CommentOrderBy.date_gmt,\n    this.includeParentIDs = const [],\n    this.excludeParentIDs = const [],\n    this.includePostIDs = const [],\n    this.commentStatus = CommentStatus.approve,\n    this.commentType = CommentType.comment,\n    this.postPassword = '',\n  });\n\n  Map<String, String> toMap() {\n    return {\n      'context': '${enumStringToName(this.context.toString())}',\n      'page': '${this.pageNum}',\n      'per_page': '${this.perPage}',\n      'search': '${this.searchQuery}',\n      'after': '${this.afterDate}',\n      'author': '${listToUrlString(this.includeAuthorIDs)}',\n      'author_exclude': '${listToUrlString(this.excludeAuthorIDs)}',\n      'author_email': '${this.authorEmail}',\n      'before': '${this.beforeDate}',\n      'exclude': '${listToUrlString(excludeCommentIDs)}',\n      'include': '${listToUrlString(includeCommentIDs)}',\n      'offset': '${this.offset == null ? '' : this.offset}',\n      'order': '${enumStringToName(this.order.toString())}',\n      'orderby': '${enumStringToName(this.orderBy.toString())}',\n      'parent': '${listToUrlString(this.includeParentIDs)}',\n      'parent_exclude': '${listToUrlString(this.excludeParentIDs)}',\n      'post': '${listToUrlString(this.includePostIDs)}',\n      'status': '${enumStringToName(this.commentStatus.toString())}',\n      'type': '${enumStringToName(this.commentType.toString())}',\n      'password': '${this.postPassword}',\n    };\n  }\n\n  @override\n  String toString() {\n    return constructUrlParams(toMap());\n  }\n}\n"
  },
  {
    "path": "lib/requests/params_media_list.dart",
    "content": "import 'package:flutter_wordpress/constants.dart';\n\n/// This class holds all arguments which can be used to filter media when using\n/// [WordPress.fetchMediaList] method.\n///\n/// [List Media Arguments](https://developer.wordpress.org/rest-api/reference/media/#list-media)\nclass ParamsMediaList {\n  final WordPressContext context;\n  final int pageNum;\n  final int perPage;\n  final String searchQuery;\n  final String afterDate;\n  final List<int> includeAuthorIDs;\n  final List<int> excludeAuthorIDs;\n  final String beforeDate;\n  final List<int> excludeMediaIDs;\n  final List<int> includeMediaIDs;\n  final int? offset;\n  final Order order;\n  final MediaOrderBy orderBy;\n  final List<int> includeParentIDs;\n  final List<int> excludeParentIDs;\n  final String slug;\n  final MediaStatus mediaStatus;\n  final MediaType? mediaType;\n  final String mimeType;\n\n  ParamsMediaList({\n    this.context = WordPressContext.view,\n    this.pageNum = 1,\n    this.perPage = 10,\n    this.searchQuery = '',\n    this.afterDate = '',\n    this.includeAuthorIDs = const [],\n    this.excludeAuthorIDs = const [],\n    this.beforeDate = '',\n    this.excludeMediaIDs = const [],\n    this.includeMediaIDs = const [],\n    this.offset,\n    this.order = Order.desc,\n    this.orderBy = MediaOrderBy.date,\n    this.excludeParentIDs = const [],\n    this.includeParentIDs = const [],\n    this.slug = '',\n    this.mediaStatus = MediaStatus.inherit,\n    this.mediaType,\n    this.mimeType = '',\n  });\n\n  Map<String, String> toMap() {\n    return {\n      'context': '${enumStringToName(this.context.toString())}',\n      'page': '${this.pageNum}',\n      'per_page': '${this.perPage}',\n      'search': '${this.searchQuery}',\n      'after': '${this.afterDate}',\n      'author': '${listToUrlString(this.includeAuthorIDs)}',\n      'author_exclude': '${listToUrlString(this.excludeAuthorIDs)}',\n      'before': '${this.beforeDate}',\n      'exclude': '${listToUrlString(excludeMediaIDs)}',\n      'include': '${listToUrlString(includeMediaIDs)}',\n      'offset': '${this.offset == null ? '' : this.offset}',\n      'order': '${enumStringToName(this.order.toString())}',\n      'orderby': '${enumStringToName(this.orderBy.toString())}',\n      'parent': '${listToUrlString(includeParentIDs)}',\n      'parent_exclude': '${listToUrlString(excludeParentIDs)}',\n      'slug': '${this.slug}',\n      'status': '${enumStringToName(this.mediaStatus.toString())}',\n      'media_type':\n          '${this.mediaType == null ? '' : enumStringToName(this.mediaType.toString())}',\n      'mime_type': '${this.mimeType}',\n    };\n  }\n\n  @override\n  String toString() {\n    return constructUrlParams(toMap());\n  }\n}\n"
  },
  {
    "path": "lib/requests/params_page_list.dart",
    "content": "import 'package:flutter_wordpress/constants.dart';\n\n/// This class holds all arguments which can be used to filter pages when using\n/// [WordPress.fetchPages] method.\n///\n/// [List Pages' Arguments](https://developer.wordpress.org/rest-api/reference/pages/#list-pages)\nclass ParamsPageList {\n  final WordPressContext context;\n  final int pageNum;\n  final int perPage;\n  final String searchQuery;\n  final String afterDate;\n  final List<int> includeAuthorIDs;\n  final List<int> excludeAuthorIDs;\n  final String beforeDate;\n  final List<int> excludePageIDs;\n  final List<int> includePageIDs;\n  final int? menuOrder;\n  final int? offset;\n  final Order order;\n  final PageOrderBy orderBy;\n  final List<int> includeParentIDs;\n  final List<int> excludeParentIDs;\n  final String slug;\n  final PostPageStatus pageStatus;\n\n  ParamsPageList({\n    this.context = WordPressContext.view,\n    this.pageNum = 1,\n    this.perPage = 10,\n    this.searchQuery = '',\n    this.afterDate = '',\n    this.includeAuthorIDs = const [],\n    this.excludeAuthorIDs = const [],\n    this.beforeDate = '',\n    this.excludePageIDs = const [],\n    this.includePageIDs = const [],\n    this.menuOrder,\n    this.offset,\n    this.order = Order.desc,\n    this.orderBy = PageOrderBy.date,\n    this.includeParentIDs = const [],\n    this.excludeParentIDs = const [],\n    this.slug = '',\n    this.pageStatus = PostPageStatus.publish,\n  });\n\n  Map<String, String> toMap() {\n    return {\n      'context': '${enumStringToName(this.context.toString())}',\n      'page': '${this.pageNum}',\n      'per_page': '${this.perPage}',\n      'search': '${this.searchQuery}',\n      'after': '${this.afterDate}',\n      'author': '${listToUrlString(this.includeAuthorIDs)}',\n      'author_exclude': '${listToUrlString(this.excludeAuthorIDs)}',\n      'before': '${this.beforeDate}',\n      'exclude': '${listToUrlString(excludePageIDs)}',\n      'include': '${listToUrlString(includePageIDs)}',\n      'menu_order': '${this.menuOrder == null ? '' : this.menuOrder}',\n      'offset': '${this.offset == null ? '' : this.offset}',\n      'order': '${enumStringToName(this.order.toString())}',\n      'orderby': '${enumStringToName(this.orderBy.toString())}',\n      'parent': '${listToUrlString(includeParentIDs)}',\n      'parent_exclude': '${listToUrlString(excludeParentIDs)}',\n      'slug': '${this.slug}',\n      'status': '${enumStringToName(this.pageStatus.toString())}',\n    };\n  }\n\n  @override\n  String toString() {\n    return constructUrlParams(toMap());\n  }\n}\n"
  },
  {
    "path": "lib/requests/params_post_list.dart",
    "content": "import 'package:flutter_wordpress/constants.dart';\n\n/// This class holds all arguments which can be used to filter posts when using\n/// [WordPress.fetchPosts] method.\n///\n/// [List Posts' Arguments](https://developer.wordpress.org/rest-api/reference/posts/#list-posts)\nclass ParamsPostList {\n  final WordPressContext context;\n  final int pageNum;\n  final int perPage;\n  final String searchQuery;\n  final String afterDate;\n  final String beforeDate;\n  final List<int> includeAuthorIDs;\n  final List<int> excludeAuthorIDs;\n  final List<int> includePostIDs;\n  final List<int> excludePostIDs;\n  final int? offset;\n  final Order order;\n  final PostOrderBy orderBy;\n  final String slug;\n  final PostPageStatus postStatus;\n  final List<int> includeCategories;\n  final List<int> excludeCategories;\n  final List<int> includeTags;\n  final List<int> excludeTags;\n  final bool? sticky;\n\n  ParamsPostList({\n    this.context = WordPressContext.view,\n    this.pageNum = 1,\n    this.perPage = 10,\n    this.searchQuery = '',\n    this.afterDate = '',\n    this.beforeDate = '',\n    this.includeAuthorIDs = const [],\n    this.excludeAuthorIDs = const [],\n    this.includePostIDs = const [],\n    this.excludePostIDs = const [],\n    this.offset,\n    this.order = Order.desc,\n    this.orderBy = PostOrderBy.date,\n    this.slug = '',\n    this.postStatus = PostPageStatus.publish,\n    this.includeCategories = const [],\n    this.excludeCategories = const [],\n    this.includeTags = const [],\n    this.excludeTags = const [],\n    this.sticky,\n  });\n\n  Map<String, String> toMap() {\n    return {\n      'context': '${enumStringToName(this.context.toString())}',\n      'page': '${this.pageNum}',\n      'per_page': '${this.perPage}',\n      'search': '${this.searchQuery}',\n      'after': '${this.afterDate}',\n      'before': '${this.beforeDate}',\n      'author': '${listToUrlString(this.includeAuthorIDs)}',\n      'author_exclude': '${listToUrlString(this.excludeAuthorIDs)}',\n      'include': '${listToUrlString(includePostIDs)}',\n      'exclude': '${listToUrlString(excludePostIDs)}',\n      'offset': '${this.offset == null ? '' : this.offset}',\n      'order': '${enumStringToName(this.order.toString())}',\n      'orderby': '${enumStringToName(this.orderBy.toString())}',\n      'slug': '${this.slug}',\n      'status': '${enumStringToName(this.postStatus.toString())}',\n      'categories': '${listToUrlString(includeCategories)}',\n      'categories_exclude': '${listToUrlString(excludeCategories)}',\n      'tags': '${listToUrlString(includeTags)}',\n      'tags_exclude': '${listToUrlString(excludeTags)}',\n      'sticky': '${this.sticky == null ? '' : this.sticky}',\n    };\n  }\n\nParamsPostList copyWith({\n  int? pageNum,\n  int? perPage,\n}) {\n  return ParamsPostList(\n    afterDate: afterDate,\n    beforeDate: beforeDate,\n    context: context,\n    excludeAuthorIDs: excludeAuthorIDs,\n    excludeCategories: excludeCategories,\n    excludePostIDs: excludePostIDs,\n    excludeTags: excludeTags,\n    includeAuthorIDs: includeAuthorIDs,\n    includeCategories: includeCategories,\n    includePostIDs: includePostIDs,\n    includeTags: includeTags,\n    offset: offset,\n    order: order,\n    orderBy: orderBy,\n    pageNum: pageNum ?? this.pageNum,\n    perPage: perPage ?? this.perPage,\n    postStatus: postStatus,\n    searchQuery: searchQuery,\n    slug: slug,\n    sticky: sticky\n  );\n}\n\n  @override\n  String toString() {\n    return constructUrlParams(toMap());\n  }\n}\n"
  },
  {
    "path": "lib/requests/params_tag_list.dart",
    "content": "import 'package:flutter_wordpress/constants.dart';\n\n/// This class holds all arguments which can be used to filter Tags when using\n/// [WordPress.fetchTags] method.\n///\n/// [List Tags' Arguments](https://developer.wordpress.org/rest-api/reference/tags/#list-tags)\nclass ParamsTagList {\n  final WordPressContext context;\n  final int pageNum;\n  final int perPage;\n  final String searchQuery;\n  final List<int> excludeTagIDs;\n  final List<int> includeTagIDs;\n  final Order order;\n  final CategoryTagOrderBy orderBy;\n  final bool? hideEmpty;\n  final int? post;\n  final String slug;\n\n  ParamsTagList({\n    this.context = WordPressContext.view,\n    this.pageNum = 1,\n    this.perPage = 10,\n    this.searchQuery = '',\n    this.excludeTagIDs = const [],\n    this.includeTagIDs = const [],\n    this.order = Order.asc,\n    this.orderBy = CategoryTagOrderBy.name,\n    this.hideEmpty,\n    this.post,\n    this.slug = '',\n  });\n\n  Map<String, String> toMap() {\n    return {\n      'context': '${enumStringToName(this.context.toString())}',\n      'page': '${this.pageNum}',\n      'per_page': '${this.perPage}',\n      'search': '${this.searchQuery}',\n      'exclude': '${listToUrlString(this.excludeTagIDs)}',\n      'include': '${listToUrlString(this.includeTagIDs)}',\n      'order': '${enumStringToName(this.order.toString())}',\n      'orderby': '${enumStringToName(this.orderBy.toString())}',\n      'hide_empty': '${this.hideEmpty == null ? '' : this.hideEmpty}',\n      'post': '${this.post == null ? '' : this.post}',\n      'slug': '${this.slug}',\n    };\n  }\n\n  @override\n  String toString() {\n    return constructUrlParams(toMap());\n  }\n}\n"
  },
  {
    "path": "lib/requests/params_user_list.dart",
    "content": "import 'package:flutter_wordpress/constants.dart';\n\n/// This class holds all arguments which can be used to filter users when using\n/// [WordPress.fetchUsers] method.\n///\n/// [List Users' Arguments](https://developer.wordpress.org/rest-api/reference/users/#list-users)\nclass ParamsUserList {\n  final WordPressContext context;\n  final int pageNum;\n  final int perPage;\n  final String searchQuery;\n  final List<int> includeUserIDs;\n  final List<int> excludeUserIDs;\n  final int? offset;\n  final Order order;\n  final UserOrderBy orderBy;\n  final String slug;\n  final List<String> roles;\n\n  ParamsUserList({\n    this.context = WordPressContext.view,\n    this.pageNum = 1,\n    this.perPage = 10,\n    this.searchQuery = '',\n    this.includeUserIDs = const [],\n    this.excludeUserIDs = const [],\n    this.offset,\n    this.order = Order.asc,\n    this.orderBy = UserOrderBy.name,\n    this.slug = '',\n    this.roles = const [],\n  });\n\n  Map<String, String> toMap() {\n    return {\n      'context': '${enumStringToName(this.context.toString())}',\n      'page': '${this.pageNum}',\n      'per_page': '${this.perPage}',\n      'search': '${this.searchQuery}',\n      'include': '${listToUrlString(this.includeUserIDs)}',\n      'exclude': '${listToUrlString(this.excludeUserIDs)}',\n      'offset': '${this.offset == null ? '' : this.offset}',\n      'order': '${enumStringToName(this.order.toString())}',\n      'orderby': '${enumStringToName(this.orderBy.toString())}',\n      'slug': '${this.slug}',\n      'roles': '${listToUrlString(this.roles)}',\n    };\n  }\n\n  @override\n  String toString() {\n    return constructUrlParams(toMap());\n  }\n}\n"
  },
  {
    "path": "lib/schemas/avatar_urls.dart",
    "content": "class AvatarUrls {\n  String? s24;\n  String? s48;\n  String? s96;\n\n  AvatarUrls({\n    this.s24,\n    this.s48,\n    this.s96,\n  });\n\n  AvatarUrls.fromJson(Map<String, dynamic> json) {\n    s24 = json['24'];\n    s48 = json['48'];\n    s96 = json['96'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    \n    data['24'] = this.s24;\n    data['48'] = this.s48;\n    data['96'] = this.s96;\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/capabilities.dart",
    "content": "class Capabilities {\n  String? manageTerms;\n  String? editTerms;\n  String? deleteTerms;\n  String? assignTerms;\n  String? editPost;\n  String? readPost;\n  String? deletePost;\n  String? editPosts;\n  String? editOthersPosts;\n  String? publishPosts;\n  String? readPrivatePosts;\n  String? read;\n  String? deletePosts;\n  String? deletePrivatePosts;\n  String? deletePublishedPosts;\n  String? deleteOthersPosts;\n  String? editPrivatePosts;\n  String? editPublishedPosts;\n  String? createPosts;\n\n  Capabilities({\n    this.manageTerms,\n    this.editTerms,\n    this.deleteTerms,\n    this.assignTerms,\n    this.editPost,\n    this.readPost,\n    this.deletePost,\n    this.editPosts,\n    this.editOthersPosts,\n    this.publishPosts,\n    this.readPrivatePosts,\n    this.read,\n    this.deletePosts,\n    this.deletePrivatePosts,\n    this.deletePublishedPosts,\n    this.deleteOthersPosts,\n    this.editPrivatePosts,\n    this.editPublishedPosts,\n    this.createPosts,\n  });\n\n  Capabilities.fromJson(Map<String, dynamic> json) {\n    manageTerms = json['manage_terms'];\n    editTerms = json['edit_terms'];\n    deleteTerms = json['delete_terms'];\n    assignTerms = json['assign_terms'];\n    editPost = json['edit_post'];\n    readPost = json['read_post'];\n    deletePost = json['delete_post'];\n    editPosts = json['edit_posts'];\n    editOthersPosts = json['edit_others_posts'];\n    publishPosts = json['publish_posts'];\n    readPrivatePosts = json['read_private_posts'];\n    read = json['read'];\n    deletePosts = json['delete_posts'];\n    deletePrivatePosts = json['delete_private_posts'];\n    deletePublishedPosts = json['delete_published_posts'];\n    deleteOthersPosts = json['delete_others_posts'];\n    editPrivatePosts = json['edit_private_posts'];\n    editPublishedPosts = json['edit_published_posts'];\n    createPosts = json['create_posts'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['manage_terms'] = this.manageTerms;\n    data['edit_terms'] = this.editTerms;\n    data['delete_terms'] = this.deleteTerms;\n    data['assign_terms'] = this.assignTerms;\n    data['edit_post'] = this.editPost;\n    data['read_post'] = this.readPost;\n    data['delete_post'] = this.deletePost;\n    data['edit_posts'] = this.editPosts;\n    data['edit_others_posts'] = this.editOthersPosts;\n    data['publish_posts'] = this.publishPosts;\n    data['read_private_posts'] = this.readPrivatePosts;\n    data['read'] = this.read;\n    data['delete_posts'] = this.deletePosts;\n    data['delete_private_posts'] = this.deletePrivatePosts;\n    data['delete_published_posts'] = this.deletePublishedPosts;\n    data['delete_others_posts'] = this.deleteOthersPosts;\n    data['edit_private_posts'] = this.editPrivatePosts;\n    data['edit_published_posts'] = this.editPublishedPosts;\n    data['create_posts'] = this.createPosts;\n    \n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/category.dart",
    "content": "import 'links.dart';\n\nclass Category {\n  int? id;\n  int? count;\n  String? description;\n  String? link;\n  String? name;\n  String? slug;\n  String? taxonomy;\n  int? parent;\n  Links? lLinks;\n\n  Category({\n    this.id,\n    this.count,\n    this.description,\n    this.link,\n    this.name,\n    this.slug,\n    this.taxonomy,\n    this.parent,\n    this.lLinks,\n  });\n\n  Category.fromJson(Map<String, dynamic> json) {\n    id = json['id'];\n    count = json['count'];\n    description = json['description'];\n    link = json['link'];\n    name = json['name'];\n    slug = json['slug'];\n    taxonomy = json['taxonomy'];\n    parent = json['parent'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    \n    data['id'] = this.id;\n    data['count'] = this.count;\n    data['description'] = this.description;\n    data['link'] = this.link;\n    data['name'] = this.name;\n    data['slug'] = this.slug;\n    data['taxonomy'] = this.taxonomy;\n    data['parent'] = this.parent;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/comment.dart",
    "content": "import 'package:flutter_wordpress/constants.dart';\n\nimport 'avatar_urls.dart';\nimport 'content.dart';\nimport 'links.dart';\n\n/// A [WordPress Comment](https://developer.wordpress.org/rest-api/reference/comments/)\n///\n/// Refer the above link to see which arguments are set based on different\n/// context modes ([WordPressContext]).\nclass Comment {\n  /// ID of the comment.\n  int? id;\n\n  /// ID of the post on which to comment.\n  int? post;\n\n  /// ID of the parent comment in case of reply.\n  /// This should be 0 in case of a new comment.\n  int? parent;\n\n  /// ID of the author who is going to comment.\n  int? author;\n  String? authorName;\n  String? authorEmail;\n  String? authorUrl;\n  String? authorIp;\n  String? authorUserAgent;\n\n  /// The date the comment was written, in the site's timezone.\n  String? date;\n\n  /// The date the comment was written, in GMT.\n  String? dateGmt;\n\n  /// Content of the comment.\n  Content? content;\n  String? link;\n\n  /// This can only be set by an editor/administrator.\n  CommentStatus? status;\n\n  /// This can only be set by an editor/administrator.\n  CommentType? type;\n  AvatarUrls? authorAvatarUrls;\n  Links? lLinks;\n\n  Comment({\n    required this.author,\n    required this.post,\n    required String content,\n    this.authorEmail,\n    this.authorIp,\n    this.authorName,\n    this.authorUrl,\n    this.authorUserAgent,\n    this.date,\n    this.dateGmt,\n    this.parent = 0,\n    this.status,\n  }) : content = new Content(rendered: content);\n\n  Comment.fromJson(Map<String, dynamic> json) {\n    id = json['id'];\n    post = json['post'];\n    parent = json['parent'];\n    author = json['author'];\n    authorName = json['author_name'];\n    authorEmail = json['author_email'];\n    authorUrl = json['author_url'];\n    authorIp = json['author_ip'];\n    authorUserAgent = json['author_user_agent'];\n    date = json['date'];\n    dateGmt = json['date_gmt'];\n    content = (json['content'] != null\n        ? new Content.fromJson(json['content']!)\n        : null)!;\n    link = json['link'];\n    if (json['status'] != null) {\n      CommentStatus.values.forEach((val) {\n        if (enumStringToName(val.toString()) == json['status']) {\n          status = val;\n          return;\n        }\n      });\n    }\n    if (json['type'] != null) {\n      CommentType.values.forEach((val) {\n        if (enumStringToName(val.toString()) == json['type']) {\n          type = val;\n          return;\n        }\n      });\n    }\n    authorAvatarUrls = json['author_avatar_urls'] != null\n        ? new AvatarUrls.fromJson(json['author_avatar_urls'])\n        : null;\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['post'] = this.post;\n    data['parent'] = this.parent;\n    data['author'] = this.author;\n    data['author_name'] = this.authorName;\n    data['author_email'] = this.authorEmail;\n    data['author_url'] = this.authorUrl;\n    data['author_ip'] = this.authorIp;\n    data['author_user_agent'] = this.authorUserAgent;\n    data['date'] = this.date;\n    data['date_gmt'] = this.dateGmt;\n    data['content'] = this.content?.toJson();\n    data['status'] = enumStringToName(this.status.toString());\n\n    return data;\n  }\n\n  @override\n  String toString() {\n    return 'Comment: {id: $id, author: $authorName, post: $post, parent: $parent}';\n  }\n}\n"
  },
  {
    "path": "lib/schemas/comment_hierarchy.dart",
    "content": "import 'comment.dart';\n\n/// This class is used to store comments as a hierarchy.\nclass CommentHierarchy {\n  /// Parent comment.\n  final Comment comment;\n\n  /// Replies to the parent comment.\n  final List<CommentHierarchy>? children;\n\n  CommentHierarchy({\n    required this.comment,\n    this.children,\n  });\n\n  @override\n  String toString() {\n    return '$comment, children: [$children]';\n  }\n}\n"
  },
  {
    "path": "lib/schemas/content.dart",
    "content": "class Content {\n  String? raw;\n  String? rendered;\n  bool? protected;\n  int? blockVersion;\n\n  Content({this.rendered});\n\n  Content.fromJson(Map<String, dynamic> json) {\n    raw = json['raw'];\n    rendered = json['rendered'];\n    protected = json['protected'];\n    blockVersion = json['block_version'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    \n    data['raw'] = this.raw;\n    data['rendered'] = this.rendered;\n    data['protected'] = this.protected;\n    data['block_version'] = this.blockVersion;\n    \n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/excerpt.dart",
    "content": "class Excerpt {\n  String? raw;\n  String? rendered;\n  bool? protected;\n\n  Excerpt({this.rendered});\n\n  Excerpt.fromJson(Map<String, dynamic> json) {\n    raw = json['raw'];\n    rendered = json['rendered'];\n    protected = json['protected'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    \n    data['raw'] = this.raw;\n    data['rendered'] = this.rendered;\n    data['protected'] = this.protected;\n    \n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/fetch_user_result.dart",
    "content": "import 'user.dart';\n\nclass FetchUsersResult {\n  List<User> users = const [];\n  int? totalUsers;\n\n  FetchUsersResult(List<User> users, int totalUsers) {\n    this.users = users;\n    this.totalUsers = totalUsers;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/guid.dart",
    "content": "class Guid {\n  String? rendered;\n  String? raw;\n\n  Guid.fromJson(Map<String, dynamic> json) {\n    rendered = json['rendered'];\n    raw = json['raw'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    \n    data['rendered'] = this.rendered;\n    data['raw'] = this.raw;\n    \n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/jwt_response.dart",
    "content": "class JWTResponse {\n  String? token;\n  String? userEmail;\n  String? userNicename;\n  String? userDisplayName;\n\n  JWTResponse({\n    this.token,\n    this.userEmail,\n    this.userNicename,\n    this.userDisplayName,\n  });\n\n  JWTResponse.fromJson(Map<String, dynamic> json) {\n    token = json['token'];\n    userEmail = json['user_email'];\n    userNicename = json['user_nicename'];\n    userDisplayName = json['user_display_name'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    \n    data['token'] = this.token;\n    data['user_email'] = this.userEmail;\n    data['user_nicename'] = this.userNicename;\n    data['user_display_name'] = this.userDisplayName;\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/labels.dart",
    "content": "class Labels {\n  String? name;\n  String? singularName;\n  String? searchItems;\n  String? popularItems;\n  String? allItems;\n  String? parentItem;\n  String? parentItemColon;\n  String? addNew;\n  String? addNewItem;\n  String? editItem;\n  String? newItem;\n  String? viewItem;\n  String? viewItems;\n  String? notFound;\n  String? notFoundInTrash;\n  String? archives;\n  String? attributes;\n  String? insertIntoItem;\n  String? uploadedToThisItem;\n  String? featuredImage;\n  String? setFeaturedImage;\n  String? removeFeaturedImage;\n  String? useFeaturedImage;\n  String? filterItemsList;\n  String? itemsListNavigation;\n  String? itemsList;\n  String? itemPublished;\n  String? itemPublishedPrivately;\n  String? itemRevertedToDraft;\n  String? itemScheduled;\n  String? itemUpdated;\n  String? menuName;\n  String? nameAdminBar;\n  String? updateItem;\n  String? newItemName;\n  String? separateItemsWithCommas;\n  String? addOrRemoveItems;\n  String? chooseFromMostUsed;\n  String? noTerms;\n  String? mostUsed;\n  String? backToItems;\n\n  Labels({\n    this.name,\n    this.singularName,\n    this.searchItems,\n    this.popularItems,\n    this.allItems,\n    this.parentItem,\n    this.parentItemColon,\n    this.addNew,\n    this.addNewItem,\n    this.editItem,\n    this.newItem,\n    this.viewItem,\n    this.viewItems,\n    this.notFound,\n    this.notFoundInTrash,\n    this.archives,\n    this.attributes,\n    this.insertIntoItem,\n    this.uploadedToThisItem,\n    this.featuredImage,\n    this.setFeaturedImage,\n    this.removeFeaturedImage,\n    this.useFeaturedImage,\n    this.filterItemsList,\n    this.itemsListNavigation,\n    this.itemsList,\n    this.itemPublished,\n    this.itemPublishedPrivately,\n    this.itemRevertedToDraft,\n    this.itemScheduled,\n    this.itemUpdated,\n    this.menuName,\n    this.nameAdminBar,\n    this.updateItem,\n    this.newItemName,\n    this.separateItemsWithCommas,\n    this.addOrRemoveItems,\n    this.chooseFromMostUsed,\n    this.noTerms,\n    this.mostUsed,\n    this.backToItems,\n  });\n\n  Labels.fromJson(Map<String, dynamic> json) {\n    name = json['name'];\n    singularName = json['singular_name'];\n    searchItems = json['search_items'];\n    popularItems = json['popular_items'];\n    allItems = json['all_items'];\n    parentItem = json['parent_item'];\n    parentItemColon = json['parent_item_colon'];\n    addNew = json['add_new'];\n    addNewItem = json['add_new_item'];\n    editItem = json['edit_item'];\n    newItem = json['new_item'];\n    viewItem = json['view_item'];\n    viewItems = json['view_items'];\n    notFound = json['not_found'];\n    notFoundInTrash = json['not_found_in_trash'];\n    archives = json['archives'];\n    attributes = json['attributes'];\n    insertIntoItem = json['insert_into_item'];\n    uploadedToThisItem = json['uploaded_to_this_item'];\n    featuredImage = json['featured_image'];\n    setFeaturedImage = json['set_featured_image'];\n    removeFeaturedImage = json['remove_featured_image'];\n    useFeaturedImage = json['use_featured_image'];\n    filterItemsList = json['filter_items_list'];\n    itemsListNavigation = json['items_list_navigation'];\n    itemsList = json['items_list'];\n    itemPublished = json['item_published'];\n    itemPublishedPrivately = json['item_published_privately'];\n    itemRevertedToDraft = json['item_reverted_to_draft'];\n    itemScheduled = json['item_scheduled'];\n    itemUpdated = json['item_updated'];\n    menuName = json['menu_name'];\n    nameAdminBar = json['name_admin_bar'];\n    updateItem = json['update_item'];\n    newItemName = json['new_item_name'];\n    separateItemsWithCommas = json['separate_items_with_commas'];\n    addOrRemoveItems = json['add_or_remove_items'];\n    chooseFromMostUsed = json['choose_from_most_used'];\n    noTerms = json['no_terms'];\n    mostUsed = json['most_used'];\n    backToItems = json['back_to_items'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    \n    data['name'] = this.name;\n    data['singular_name'] = this.singularName;\n    data['search_items'] = this.searchItems;\n    data['popular_items'] = this.popularItems;\n    data['all_items'] = this.allItems;\n    data['parent_item'] = this.parentItem;\n    data['parent_item_colon'] = this.parentItemColon;\n    data['add_new'] = this.addNew;\n    data['add_new_item'] = this.addNewItem;\n    data['edit_item'] = this.editItem;\n    data['new_item'] = this.newItem;\n    data['view_item'] = this.viewItem;\n    data['view_items'] = this.viewItems;\n    data['not_found'] = this.notFound;\n    data['not_found_in_trash'] = this.notFoundInTrash;\n    data['archives'] = this.archives;\n    data['attributes'] = this.attributes;\n    data['insert_into_item'] = this.insertIntoItem;\n    data['uploaded_to_this_item'] = this.uploadedToThisItem;\n    data['featured_image'] = this.featuredImage;\n    data['set_featured_image'] = this.setFeaturedImage;\n    data['remove_featured_image'] = this.removeFeaturedImage;\n    data['use_featured_image'] = this.useFeaturedImage;\n    data['filter_items_list'] = this.filterItemsList;\n    data['items_list_navigation'] = this.itemsListNavigation;\n    data['items_list'] = this.itemsList;\n    data['item_published'] = this.itemPublished;\n    data['item_published_privately'] = this.itemPublishedPrivately;\n    data['item_reverted_to_draft'] = this.itemRevertedToDraft;\n    data['item_scheduled'] = this.itemScheduled;\n    data['item_updated'] = this.itemUpdated;\n    data['menu_name'] = this.menuName;\n    data['name_admin_bar'] = this.nameAdminBar;\n    data['update_item'] = this.updateItem;\n    data['new_item_name'] = this.newItemName;\n    data['separate_items_with_commas'] = this.separateItemsWithCommas;\n    data['add_or_remove_items'] = this.addOrRemoveItems;\n    data['choose_from_most_used'] = this.chooseFromMostUsed;\n    data['no_terms'] = this.noTerms;\n    data['most_used'] = this.mostUsed;\n    data['back_to_items'] = this.backToItems;\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/links.dart",
    "content": "class Links {\n  List<Self>? self;\n  List<Collection>? collection;\n  List<About>? about;\n  List<Author>? author;\n  List<Replies>? replies;\n  List<Archives>? archives;\n  List<VersionHistory>? versionHistory;\n  List<WpPostType>? wpPostType;\n  List<PredecessorVersion>? predecessorVersion;\n  List<WpFeaturedmedia>? wpFeaturedmedia;\n  List<WpAttachment>? wpAttachment;\n  List<WpTerm>? wpTerm;\n  List<WpActionPublish>? wpActionPublish;\n  List<WpActionUnfilteredHtml>? wpActionUnfilteredHtml;\n  List<WpActionSticky>? wpActionSticky;\n  List<WpActionAssignAuthor>? wpActionAssignAuthor;\n  List<WpActionCreateCategories>? wpActionCreateCategories;\n  List<WpActionAssignCategories>? wpActionAssignCategories;\n  List<WpActionCreateTags>? wpActionCreateTags;\n  List<WpActionAssignTags>? wpActionAssignTags;\n  List<WpItems>? wpItems;\n  List<Up>? up;\n  List<InReplyTo>? inReplyTo;\n  List<Children>? children;\n  List<Curies>? curies;\n\n  Links.fromJson(Map<String, dynamic> json) {\n    if (json['self'] != null) {\n      self = [];\n      json['self'].forEach((v) {\n        self?.add(new Self.fromJson(v));\n      });\n    }\n    if (json['collection'] != null) {\n      collection = [];\n      json['collection'].forEach((v) {\n        collection?.add(new Collection.fromJson(v));\n      });\n    }\n    if (json['about'] != null) {\n      about = [];\n      json['about'].forEach((v) {\n        about?.add(new About.fromJson(v));\n      });\n    }\n    if (json['author'] != null) {\n      author = [];\n      json['author'].forEach((v) {\n        author?.add(new Author.fromJson(v));\n      });\n    }\n    if (json['replies'] != null) {\n      replies = [];\n      json['replies'].forEach((v) {\n        replies?.add(new Replies.fromJson(v));\n      });\n    }\n    if (json['archives'] != null) {\n      archives = [];\n      json['archives'].forEach((v) {\n        archives?.add(new Archives.fromJson(v));\n      });\n    }\n    if (json['version-history'] != null) {\n      versionHistory = [];\n      json['version-history'].forEach((v) {\n        versionHistory?.add(new VersionHistory.fromJson(v));\n      });\n    }\n    if (json['wp:post_type'] != null) {\n      wpPostType = [];\n      json['wp:post_type'].forEach((v) {\n        wpPostType?.add(new WpPostType.fromJson(v));\n      });\n    }\n    if (json['predecessor-version'] != null) {\n      predecessorVersion = [];\n      json['predecessor-version'].forEach((v) {\n        predecessorVersion?.add(new PredecessorVersion.fromJson(v));\n      });\n    }\n    if (json['wp:featuredmedia'] != null) {\n      wpFeaturedmedia = [];\n      json['wp:featuredmedia'].forEach((v) {\n        wpFeaturedmedia?.add(new WpFeaturedmedia.fromJson(v));\n      });\n    }\n    if (json['wp:attachment'] != null) {\n      wpAttachment = [];\n      json['wp:attachment'].forEach((v) {\n        wpAttachment?.add(new WpAttachment.fromJson(v));\n      });\n    }\n    if (json['wp:term'] != null) {\n      wpTerm = [];\n      json['wp:term'].forEach((v) {\n        wpTerm?.add(new WpTerm.fromJson(v));\n      });\n    }\n    if (json['wp:action-publish'] != null) {\n      wpActionPublish = [];\n      json['wp:action-publish'].forEach((v) {\n        wpActionPublish?.add(new WpActionPublish.fromJson(v));\n      });\n    }\n    if (json['wp:action-unfiltered-html'] != null) {\n      wpActionUnfilteredHtml = [];\n      json['wp:action-unfiltered-html'].forEach((v) {\n        wpActionUnfilteredHtml?.add(new WpActionUnfilteredHtml.fromJson(v));\n      });\n    }\n    if (json['wp:action-sticky'] != null) {\n      wpActionSticky = [];\n      json['wp:action-sticky'].forEach((v) {\n        wpActionSticky?.add(new WpActionSticky.fromJson(v));\n      });\n    }\n    if (json['wp:action-assign-author'] != null) {\n      wpActionAssignAuthor = [];\n      json['wp:action-assign-author'].forEach((v) {\n        wpActionAssignAuthor?.add(new WpActionAssignAuthor.fromJson(v));\n      });\n    }\n    if (json['wp:action-create-categories'] != null) {\n      wpActionCreateCategories = [];\n      json['wp:action-create-categories'].forEach((v) {\n        wpActionCreateCategories?.add(new WpActionCreateCategories.fromJson(v));\n      });\n    }\n    if (json['wp:action-assign-categories'] != null) {\n      wpActionAssignCategories = [];\n      json['wp:action-assign-categories'].forEach((v) {\n        wpActionAssignCategories?.add(new WpActionAssignCategories.fromJson(v));\n      });\n    }\n    if (json['wp:action-create-tags'] != null) {\n      wpActionCreateTags = [];\n      json['wp:action-create-tags'].forEach((v) {\n        wpActionCreateTags?.add(new WpActionCreateTags.fromJson(v));\n      });\n    }\n    if (json['wp:action-assign-tags'] != null) {\n      wpActionAssignTags = [];\n      json['wp:action-assign-tags'].forEach((v) {\n        wpActionAssignTags?.add(new WpActionAssignTags.fromJson(v));\n      });\n    }\n    if (json['wp:items'] != null) {\n      wpItems = [];\n      json['wp:items'].forEach((v) {\n        wpItems?.add(new WpItems.fromJson(v));\n      });\n    }\n    if (json['up'] != null) {\n      up = [];\n      json['up'].forEach((v) {\n        up?.add(new Up.fromJson(v));\n      });\n    }\n    if (json['in-reply-to'] != null) {\n      inReplyTo = [];\n      json['in-reply-to'].forEach((v) {\n        inReplyTo?.add(new InReplyTo.fromJson(v));\n      });\n    }\n    if (json['children'] != null) {\n      children = [];\n      json['children'].forEach((v) {\n        children?.add(new Children.fromJson(v));\n      });\n    }\n    if (json['curies'] != null) {\n      curies = [];\n      json['curies'].forEach((v) {\n        curies?.add(new Curies.fromJson(v));\n      });\n    }\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['self'] = this.self?.map((v) => v.toJson()).toList();\n    data['collection'] = this.collection?.map((v) => v.toJson()).toList();\n    data['about'] = this.about?.map((v) => v.toJson()).toList();\n    data['author'] = this.author?.map((v) => v.toJson()).toList();\n    data['replies'] = this.replies?.map((v) => v.toJson()).toList();\n    data['archives'] = this.archives?.map((v) => v.toJson()).toList();\n    data['version-history'] =\n        this.versionHistory?.map((v) => v.toJson()).toList();\n    data['wp:post_type'] = this.wpPostType?.map((v) => v.toJson()).toList();\n    data['predecessor-version'] =\n        this.predecessorVersion?.map((v) => v.toJson()).toList();\n    data['wp:featuredmedia'] =\n        this.wpFeaturedmedia?.map((v) => v.toJson()).toList();\n    data['wp:attachment'] = this.wpAttachment?.map((v) => v.toJson()).toList();\n    data['wp:term'] = this.wpTerm?.map((v) => v.toJson()).toList();\n    data['wp:action-publish'] =\n        this.wpActionPublish?.map((v) => v.toJson()).toList();\n    data['wp:action-unfiltered-html'] =\n        this.wpActionUnfilteredHtml?.map((v) => v.toJson()).toList();\n    data['wp:action-sticky'] =\n        this.wpActionSticky?.map((v) => v.toJson()).toList();\n    data['wp:action-assign-author'] =\n        this.wpActionAssignAuthor?.map((v) => v.toJson()).toList();\n    data['wp:action-create-categories'] =\n        this.wpActionCreateCategories?.map((v) => v.toJson()).toList();\n    data['wp:action-assign-categories'] =\n        this.wpActionAssignCategories?.map((v) => v.toJson()).toList();\n    data['wp:action-create-tags'] =\n        this.wpActionCreateTags?.map((v) => v.toJson()).toList();\n    data['wp:action-assign-tags'] =\n        this.wpActionAssignTags?.map((v) => v.toJson()).toList();\n    data['wp:items'] = this.wpItems?.map((v) => v.toJson()).toList();\n    data['up'] = this.up?.map((v) => v.toJson()).toList();\n    data['in-reply-to'] = this.inReplyTo?.map((v) => v.toJson()).toList();\n    data['children'] = this.children?.map((v) => v.toJson()).toList();\n    data['curies'] = this.curies?.map((v) => v.toJson()).toList();\n\n    return data;\n  }\n}\n\nclass Self {\n  String? href;\n\n  Self({this.href});\n\n  Self.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass Collection {\n  String? href;\n\n  Collection({this.href});\n\n  Collection.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass About {\n  String? href;\n\n  About({this.href});\n\n  About.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass Author {\n  bool? embeddable;\n  String? href;\n\n  Author({\n    this.embeddable,\n    this.href,\n  });\n\n  Author.fromJson(Map<String, dynamic> json) {\n    embeddable = json['embeddable'];\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.embeddable != null) {\n      data['embeddable'] = this.embeddable;\n    }\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass Replies {\n  bool? embeddable;\n  String? href;\n\n  Replies({\n    this.embeddable,\n    this.href,\n  });\n\n  Replies.fromJson(Map<String, dynamic> json) {\n    embeddable = json['embeddable'];\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.embeddable != null) {\n      data['embeddable'] = this.embeddable;\n    }\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass Archives {\n  String? href;\n\n  Archives({this.href});\n\n  Archives.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass VersionHistory {\n  int? count;\n  String? href;\n\n  VersionHistory({\n    this.count,\n    this.href,\n  });\n\n  VersionHistory.fromJson(Map<String, dynamic> json) {\n    count = json['count'];\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.count != null) {\n      data['count'] = this.count;\n    }\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpPostType {\n  String? href;\n\n  WpPostType({this.href});\n\n  WpPostType.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass PredecessorVersion {\n  int? id;\n  String? href;\n\n  PredecessorVersion({\n    this.id,\n    this.href,\n  });\n\n  PredecessorVersion.fromJson(Map<String, dynamic> json) {\n    id = json['id'];\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    if (this.id != null) {\n      data['id'] = this.id;\n    }\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpFeaturedmedia {\n  bool? embeddable;\n  String? href;\n\n  WpFeaturedmedia({\n    this.embeddable,\n    this.href,\n  });\n\n  WpFeaturedmedia.fromJson(Map<String, dynamic> json) {\n    embeddable = json['embeddable'];\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.embeddable != null) {\n      data['embeddable'] = this.embeddable;\n    }\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpAttachment {\n  String? href;\n\n  WpAttachment({this.href});\n\n  WpAttachment.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpTerm {\n  String? taxonomy;\n  bool? embeddable;\n  String? href;\n\n  WpTerm({\n    this.taxonomy,\n    this.embeddable,\n    this.href,\n  });\n\n  WpTerm.fromJson(Map<String, dynamic> json) {\n    taxonomy = json['taxonomy'];\n    embeddable = json['embeddable'];\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.taxonomy != null) {\n      data['taxonomy'] = this.taxonomy;\n    }\n    if (this.embeddable != null) {\n      data['embeddable'] = this.embeddable;\n    }\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpActionPublish {\n  String? href;\n\n  WpActionPublish({this.href});\n\n  WpActionPublish.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpActionUnfilteredHtml {\n  String? href;\n\n  WpActionUnfilteredHtml({this.href});\n\n  WpActionUnfilteredHtml.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpActionSticky {\n  String? href;\n\n  WpActionSticky({this.href});\n\n  WpActionSticky.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpActionAssignAuthor {\n  String? href;\n\n  WpActionAssignAuthor({this.href});\n\n  WpActionAssignAuthor.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpActionCreateCategories {\n  String? href;\n\n  WpActionCreateCategories({this.href});\n\n  WpActionCreateCategories.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpActionAssignCategories {\n  String? href;\n\n  WpActionAssignCategories({this.href});\n\n  WpActionAssignCategories.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpActionCreateTags {\n  String? href;\n\n  WpActionCreateTags({this.href});\n\n  WpActionCreateTags.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpActionAssignTags {\n  String? href;\n\n  WpActionAssignTags({this.href});\n\n  WpActionAssignTags.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass WpItems {\n  String? href;\n\n  WpItems({this.href});\n\n  WpItems.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass Up {\n  bool? embeddable;\n  String? postType;\n  String? href;\n\n  Up({\n    this.embeddable,\n    this.postType,\n    this.href,\n  });\n\n  Up.fromJson(Map<String, dynamic> json) {\n    embeddable = json['embeddable'];\n    postType = json['post_type'];\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.embeddable != null) {\n      data['embeddable'] = this.embeddable;\n    }\n    if (this.postType != null) {\n      data['post_type'] = this.postType;\n    }\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass InReplyTo {\n  bool? embeddable;\n  String? href;\n\n  InReplyTo({\n    this.embeddable,\n    this.href,\n  });\n\n  InReplyTo.fromJson(Map<String, dynamic> json) {\n    embeddable = json['embeddable'];\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.embeddable != null) {\n      data['embeddable'] = this.embeddable;\n    }\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass Children {\n  String? href;\n\n  Children({this.href});\n\n  Children.fromJson(Map<String, dynamic> json) {\n    href = json['href'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    return data;\n  }\n}\n\nclass Curies {\n  String? name;\n  String? href;\n  bool? templated;\n\n  Curies({\n    this.name,\n    this.href,\n    this.templated,\n  });\n\n  Curies.fromJson(Map<String, dynamic> json) {\n    name = json['name'];\n    href = json['href'];\n    templated = json['templated'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n    if (this.name != null) {\n      data['name'] = this.name;\n    }\n    if (this.href != null) {\n      data['href'] = this.href;\n    }\n    if (this.templated != null) {\n      data['templated'] = this.templated;\n    }\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/media.dart",
    "content": "import 'guid.dart';\nimport 'links.dart';\nimport 'title.dart';\n\nclass Media {\n  int? id;\n  String? date;\n  String? dateGmt;\n  Guid? guid;\n  String? modified;\n  String? modifiedGmt;\n  String? slug;\n  String? status;\n  String? type;\n  String? link;\n  Title? title;\n  int? author;\n  String? commentStatus;\n  String? pingStatus;\n  String? template;\n  String? permalinkTemplate;\n  String? generatedSlug;\n  Description? description;\n  Caption? caption;\n  String? altText;\n  String? mediaType;\n  String? mimeType;\n  MediaDetails? mediaDetails;\n  int? post;\n  String? sourceUrl;\n  Links? lLinks;\n\n  Media({\n    this.id,\n    this.date,\n    this.dateGmt,\n    this.guid,\n    this.modified,\n    this.modifiedGmt,\n    this.slug,\n    this.status,\n    this.type,\n    this.link,\n    this.title,\n    this.author,\n    this.commentStatus,\n    this.pingStatus,\n    this.template,\n    this.permalinkTemplate,\n    this.generatedSlug,\n    this.description,\n    this.caption,\n    this.altText,\n    this.mediaType,\n    this.mimeType,\n    this.mediaDetails,\n    this.post,\n    this.sourceUrl,\n    this.lLinks,\n  });\n\n  Media.fromJson(Map<String, dynamic> json) {\n    id = json['id'];\n    date = json['date'];\n    dateGmt = json['date_gmt'];\n    guid = json['guid'] != null ? new Guid.fromJson(json['guid']) : null;\n    modified = json['modified'];\n    modifiedGmt = json['modified_gmt'];\n    slug = json['slug'];\n    status = json['status'];\n    type = json['type'];\n    link = json['link'];\n    title = json['title'] != null ? new Title.fromJson(json['title']) : null;\n    author = json['author'];\n    commentStatus = json['comment_status'];\n    pingStatus = json['ping_status'];\n    template = json['template'];\n    permalinkTemplate = json['permalink_template'];\n    generatedSlug = json['generated_slug'];\n    description = json['description'] != null\n        ? new Description.fromJson(json['description'])\n        : null;\n    caption =\n        json['caption'] != null ? new Caption.fromJson(json['caption']) : null;\n    altText = json['alt_text'];\n    mediaType = json['media_type'];\n    mimeType = json['mime_type'];\n    mediaDetails = json['media_details'] != null\n        ? new MediaDetails.fromJson(json['media_details'])\n        : null;\n    post = json['post'];\n    sourceUrl = json['source_url'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['id'] = this.id;\n    data['date'] = this.date;\n    data['date_gmt'] = this.dateGmt;\n    data['guid'] = this.guid?.toJson();\n    data['modified'] = this.modified;\n    data['modified_gmt'] = this.modifiedGmt;\n    data['slug'] = this.slug;\n    data['status'] = this.status;\n    data['type'] = this.type;\n    data['link'] = this.link;\n    data['title'] = this.title?.toJson();\n    data['author'] = this.author;\n    data['comment_status'] = this.commentStatus;\n    data['ping_status'] = this.pingStatus;\n    data['template'] = this.template;\n    data['permalink_template'] = this.permalinkTemplate;\n    data['generated_slug'] = this.generatedSlug;\n    data['description'] = this.description?.toJson();\n    data['caption'] = this.caption?.toJson();\n    data['alt_text'] = this.altText;\n    data['media_type'] = this.mediaType;\n    data['mime_type'] = this.mimeType;\n    data['media_details'] = this.mediaDetails?.toJson();\n    data['post'] = this.post;\n    data['source_url'] = this.sourceUrl;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n\nclass Description {\n  String? raw;\n  String? rendered;\n\n  Description({\n    this.raw,\n    this.rendered,\n  });\n\n  Description.fromJson(Map<String, dynamic> json) {\n    raw = json['raw'];\n    rendered = json['rendered'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['raw'] = this.raw;\n    data['rendered'] = this.rendered;\n\n    return data;\n  }\n}\n\nclass Caption {\n  String? raw;\n  String? rendered;\n\n  Caption({\n    this.raw,\n    this.rendered,\n  });\n\n  Caption.fromJson(Map<String, dynamic> json) {\n    raw = json['raw'];\n    rendered = json['rendered'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['raw'] = this.raw;\n    data['rendered'] = this.rendered;\n\n    return data;\n  }\n}\n\nclass MediaDetails {\n  int? width;\n  int? height;\n  String? file;\n  Sizes? sizes;\n  ImageMeta? imageMeta;\n\n  MediaDetails({\n    this.width,\n    this.height,\n    this.file,\n    this.sizes,\n    this.imageMeta,\n  });\n\n  MediaDetails.fromJson(Map<String, dynamic> json) {\n    width = json['width'];\n    height = json['height'];\n    file = json['file'];\n    sizes = json['sizes'] != null ? new Sizes.fromJson(json['sizes']) : null;\n    imageMeta = json['image_meta'] != null\n        ? new ImageMeta.fromJson(json['image_meta'])\n        : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['width'] = this.width;\n    data['height'] = this.height;\n    data['file'] = this.file;\n    data['sizes'] = this.sizes?.toJson();\n    data['image_meta'] = this.imageMeta?.toJson();\n\n    return data;\n  }\n}\n\nclass Sizes {\n  Thumbnail? thumbnail;\n  Medium? medium;\n  MediumLarge? mediumLarge;\n  Large? large;\n  PostThumbnail? postThumbnail;\n  Full? full;\n\n  Sizes({\n    this.thumbnail,\n    this.medium,\n    this.mediumLarge,\n    this.postThumbnail,\n    this.large,\n    this.full,\n  });\n\n  Sizes.fromJson(Map<String, dynamic> json) {\n    thumbnail = json['thumbnail'] != null\n        ? new Thumbnail.fromJson(json['thumbnail'])\n        : null;\n    medium =\n        json['medium'] != null ? new Medium.fromJson(json['medium']) : null;\n    mediumLarge = json['medium_large'] != null\n        ? new MediumLarge.fromJson(json['medium_large'])\n        : null;\n    large = json['large'] != null ? new Large.fromJson(json['large']) : null;\n    postThumbnail = json['post-thumbnail'] != null\n        ? new PostThumbnail.fromJson(json['post-thumbnail'])\n        : null;\n    full = json['full'] != null ? new Full.fromJson(json['full']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['thumbnail'] = this.thumbnail?.toJson();\n    data['medium'] = this.medium?.toJson();\n    data['medium_large'] = this.mediumLarge?.toJson();\n    data['large'] = this.large?.toJson();\n    data['post-thumbnail'] = this.postThumbnail?.toJson();\n    data['full'] = this.full?.toJson();\n\n    return data;\n  }\n}\n\nclass Thumbnail {\n  String? file;\n  int? width;\n  int? height;\n  String? mimeType;\n  String? sourceUrl;\n\n  Thumbnail({\n    this.file,\n    this.width,\n    this.height,\n    this.mimeType,\n    this.sourceUrl,\n  });\n\n  Thumbnail.fromJson(Map<String, dynamic> json) {\n    file = json['file'];\n    width = json['width'];\n    height = json['height'];\n    mimeType = json['mime_type'];\n    sourceUrl = json['source_url'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['file'] = this.file;\n    data['width'] = this.width;\n    data['height'] = this.height;\n    data['mime_type'] = this.mimeType;\n    data['source_url'] = this.sourceUrl;\n\n    return data;\n  }\n}\n\nclass Medium {\n  String? file;\n  int? width;\n  int? height;\n  String? mimeType;\n  String? sourceUrl;\n\n  Medium({\n    this.file,\n    this.width,\n    this.height,\n    this.mimeType,\n    this.sourceUrl,\n  });\n\n  Medium.fromJson(Map<String, dynamic> json) {\n    file = json['file'];\n    width = json['width'];\n    height = json['height'];\n    mimeType = json['mime_type'];\n    sourceUrl = json['source_url'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['file'] = this.file;\n    data['width'] = this.width;\n    data['height'] = this.height;\n    data['mime_type'] = this.mimeType;\n    data['source_url'] = this.sourceUrl;\n\n    return data;\n  }\n}\n\nclass MediumLarge {\n  String? file;\n  int? width;\n  int? height;\n  String? mimeType;\n  String? sourceUrl;\n\n  MediumLarge({\n    this.file,\n    this.width,\n    this.height,\n    this.mimeType,\n    this.sourceUrl,\n  });\n\n  MediumLarge.fromJson(Map<String, dynamic> json) {\n    file = json['file'];\n    width = json['width'];\n    height = json['height'];\n    mimeType = json['mime_type'];\n    sourceUrl = json['source_url'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['file'] = this.file;\n    data['width'] = this.width;\n    data['height'] = this.height;\n    data['mime_type'] = this.mimeType;\n    data['source_url'] = this.sourceUrl;\n\n    return data;\n  }\n}\n\nclass Large {\n  String? file;\n  int? width;\n  int? height;\n  String? mimeType;\n  String? sourceUrl;\n\n  Large({\n    this.file,\n    this.width,\n    this.height,\n    this.mimeType,\n    this.sourceUrl,\n  });\n\n  Large.fromJson(Map<String, dynamic> json) {\n    file = json['file'];\n    width = json['width'];\n    height = json['height'];\n    mimeType = json['mime_type'];\n    sourceUrl = json['source_url'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['file'] = this.file;\n    data['width'] = this.width;\n    data['height'] = this.height;\n    data['mime_type'] = this.mimeType;\n    data['source_url'] = this.sourceUrl;\n\n    return data;\n  }\n}\n\nclass PostThumbnail {\n  String? file;\n  int? width;\n  int? height;\n  String? mimeType;\n  String? sourceUrl;\n\n  PostThumbnail({\n    this.file,\n    this.width,\n    this.height,\n    this.mimeType,\n    this.sourceUrl,\n  });\n\n  PostThumbnail.fromJson(Map<String, dynamic> json) {\n    file = json['file'];\n    width = json['width'];\n    height = json['height'];\n    mimeType = json['mime_type'];\n    sourceUrl = json['source_url'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['file'] = this.file;\n    data['width'] = this.width;\n    data['height'] = this.height;\n    data['mime_type'] = this.mimeType;\n    data['source_url'] = this.sourceUrl;\n\n    return data;\n  }\n}\n\nclass Full {\n  String? file;\n  int? width;\n  int? height;\n  String? mimeType;\n  String? sourceUrl;\n\n  Full({\n    this.file,\n    this.width,\n    this.height,\n    this.mimeType,\n    this.sourceUrl,\n  });\n\n  Full.fromJson(Map<String, dynamic> json) {\n    file = json['file'];\n    width = json['width'];\n    height = json['height'];\n    mimeType = json['mime_type'];\n    sourceUrl = json['source_url'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['file'] = this.file;\n    data['width'] = this.width;\n    data['height'] = this.height;\n    data['mime_type'] = this.mimeType;\n    data['source_url'] = this.sourceUrl;\n\n    return data;\n  }\n}\n\nclass ImageMeta {\n  String? aperture;\n  String? credit;\n  String? camera;\n  String? caption;\n  String? createdTimestamp;\n  String? copyright;\n  String? focalLength;\n  String? iso;\n  String? shutterSpeed;\n  String? title;\n  String? orientation;\n\n  ImageMeta({\n    this.aperture,\n    this.credit,\n    this.camera,\n    this.caption,\n    this.createdTimestamp,\n    this.copyright,\n    this.focalLength,\n    this.iso,\n    this.shutterSpeed,\n    this.title,\n    this.orientation,\n  });\n\n  ImageMeta.fromJson(Map<String, dynamic> json) {\n    aperture = json['aperture'];\n    credit = json['credit'];\n    camera = json['camera'];\n    caption = json['caption'];\n    createdTimestamp = json['created_timestamp'];\n    copyright = json['copyright'];\n    focalLength = json['focal_length'];\n    iso = json['iso'];\n    shutterSpeed = json['shutter_speed'];\n    title = json['title'];\n    orientation = json['orientation'].toString();\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['aperture'] = this.aperture;\n    data['credit'] = this.credit;\n    data['camera'] = this.camera;\n    data['caption'] = this.caption;\n    data['created_timestamp'] = this.createdTimestamp;\n    data['copyright'] = this.copyright;\n    data['focal_length'] = this.focalLength;\n    data['iso'] = this.iso;\n    data['shutter_speed'] = this.shutterSpeed;\n    data['title'] = this.title;\n    data['orientation'] = this.orientation;\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/page.dart",
    "content": "import 'content.dart';\nimport 'excerpt.dart';\nimport 'guid.dart';\nimport 'links.dart';\nimport 'title.dart';\n\nclass Page {\n  int? id;\n  String? date;\n  String? dateGmt;\n  Guid? guid;\n  String? modified;\n  String? modifiedGmt;\n  String? password;\n  String? slug;\n  String? status;\n  String? type;\n  String? link;\n  Title? title;\n  Content? content;\n  Excerpt? excerpt;\n  int? author;\n  int? featuredMedia;\n  int? parent;\n  int? menuOrder;\n  String? commentStatus;\n  String? pingStatus;\n  String? template;\n  String? permalinkTemplate;\n  String? generatedSlug;\n  Links? lLinks;\n\n  Page({\n    this.id,\n    this.date,\n    this.dateGmt,\n    this.guid,\n    this.modified,\n    this.modifiedGmt,\n    this.password,\n    this.slug,\n    this.status,\n    this.type,\n    this.link,\n    this.title,\n    this.content,\n    this.excerpt,\n    this.author,\n    this.featuredMedia,\n    this.parent,\n    this.menuOrder,\n    this.commentStatus,\n    this.pingStatus,\n    this.template,\n    this.permalinkTemplate,\n    this.generatedSlug,\n    this.lLinks,\n  });\n\n  Page.fromJson(Map<String, dynamic> json) {\n    id = json['id'];\n    date = json['date'];\n    dateGmt = json['date_gmt'];\n    guid = json['guid'] != null ? new Guid.fromJson(json['guid']) : null;\n    modified = json['modified'];\n    modifiedGmt = json['modified_gmt'];\n    password = json['password'];\n    slug = json['slug'];\n    status = json['status'];\n    type = json['type'];\n    link = json['link'];\n    title = json['title'] != null ? new Title.fromJson(json['title']) : null;\n    content =\n        json['content'] != null ? new Content.fromJson(json['content']) : null;\n    excerpt =\n        json['excerpt'] != null ? new Excerpt.fromJson(json['excerpt']) : null;\n    author = json['author'];\n    featuredMedia = json['featured_media'];\n    parent = json['parent'];\n    menuOrder = json['menu_order'];\n    commentStatus = json['comment_status'];\n    pingStatus = json['ping_status'];\n    template = json['template'];\n    permalinkTemplate = json['permalink_template'];\n    generatedSlug = json['generated_slug'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['id'] = this.id;\n    data['date'] = this.date;\n    data['date_gmt'] = this.dateGmt;\n    data['guid'] = this.guid?.toJson();\n    data['modified'] = this.modified;\n    data['modified_gmt'] = this.modifiedGmt;\n    data['password'] = this.password;\n    data['slug'] = this.slug;\n    data['status'] = this.status;\n    data['type'] = this.type;\n    data['link'] = this.link;\n    data['title'] = this.title?.toJson();\n    data['content'] = this.content?.toJson();\n    data['excerpt'] = this.excerpt?.toJson();\n    data['author'] = this.author;\n    data['featured_media'] = this.featuredMedia;\n    data['parent'] = this.parent;\n    data['menu_order'] = this.menuOrder;\n    data['comment_status'] = this.commentStatus;\n    data['ping_status'] = this.pingStatus;\n    data['template'] = this.template;\n    data['permalink_template'] = this.permalinkTemplate;\n    data['generated_slug'] = this.generatedSlug;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/post.dart",
    "content": "import 'package:flutter_wordpress/constants.dart';\n\nimport 'category.dart';\nimport 'comment.dart';\nimport 'comment_hierarchy.dart';\nimport 'content.dart';\nimport 'excerpt.dart';\nimport 'guid.dart';\nimport 'links.dart';\nimport 'media.dart';\nimport 'tag.dart';\nimport 'title.dart';\nimport 'user.dart';\n\n/// A [WordPress Post](https://developer.wordpress.org/rest-api/reference/posts/)\n///\n/// Refer the above link to see which arguments are set based on different context modes.\n/// ([WordPressContext]).\nclass Post {\n  /// ID of the post\n  int? id;\n\n  /// The date the post was published, in the site's Timezone.\n  String? date;\n\n  /// The date the post was published, in GMT.\n  String? dateGmt;\n  Guid? guid;\n  String? modified;\n  String? modifiedGmt;\n\n  /// Password for the post in case it needs to be password protected.\n  String? password;\n\n  /// An alphanumeric identifier unique to each post.\n  String? slug;\n\n  /// The state in which the post should be created (draft, publish etc.)\n  PostPageStatus? status;\n  String? type;\n  String? link;\n\n  /// Post title\n  Title? title;\n\n  /// Post content\n  Content? content;\n\n  /// Post excerpt\n  Excerpt? excerpt;\n\n  /// ID of the post author. Refer [User].\n  int? authorID;\n\n  int? featuredMediaID;\n\n  /// Whether the post allows commenting.\n  PostCommentStatus? commentStatus;\n\n  /// Whether the post can be pinged.\n  PostPingStatus? pingStatus;\n\n  /// Whether the post needs to sticky i.e. a Featured post.\n  bool? sticky;\n  String? template;\n\n  /// The format of the post.\n  PostFormat? format;\n\n  /// List of IDs of categories this post belongs to.\n  List<int>? categoryIDs;\n\n  /// List of IDs of tags this post should have.\n  List<int>? tagIDs;\n  String? permalinkTemplate;\n  String? generatedSlug;\n  Links? lLinks;\n\n  /// The [User] object denoting the author of the post.\n  User? author;\n\n  /// A list of comments for the post.\n  List<Comment>? comments;\n\n  /// A list of comments for the post, where each\n  /// [CommentHierarchy] object is a direct comment to the post, with\n  /// [CommentHierarchy.children] containing replies to that comment.\n  List<CommentHierarchy>? commentsHierarchy;\n\n  /// A list of categories assigned to the post.\n  List<Category>? categories;\n\n  /// A list of tags assigned to the post.\n  List<Tag>? tags;\n\n  /// A list of attachments contained in the post.\n  List<Media>? attachments;\n\n  /// The featured Media of the post.\n  Media? featuredMedia;\n\n  Post({\n    this.date,\n    this.dateGmt,\n    this.password,\n    this.slug,\n    this.status = PostPageStatus.publish,\n    required String title,\n    required String content,\n    required String excerpt,\n    required this.authorID,\n    String? featuredMedia,\n    this.featuredMediaID,\n    this.commentStatus = PostCommentStatus.open,\n    this.pingStatus = PostPingStatus.open,\n    this.sticky,\n    this.template,\n    this.format = PostFormat.standard,\n    this.categoryIDs,\n    this.tagIDs,\n  })  : this.title = new Title(rendered: title),\n        this.featuredMedia = new Media(sourceUrl: featuredMedia),\n        this.content = new Content(rendered: content),\n        this.excerpt = new Excerpt(rendered: excerpt);\n\n  Post.fromJson(Map<String, dynamic> json) {\n    id = json['id'];\n    date = json['date'];\n    dateGmt = json['date_gmt'];\n    guid = json['guid'] != null ? new Guid.fromJson(json['guid']) : null;\n    modified = json['modified'];\n    modifiedGmt = json['modified_gmt'];\n    password = json['password'];\n    slug = json['slug'];\n    if (json['status'] != null) {\n      PostPageStatus.values.forEach((val) {\n        if (enumStringToName(val.toString()) == json['status']) {\n          status = val;\n          return;\n        }\n      });\n    }\n    type = json['type'];\n    link = json['link'];\n    title = json['title'] != null ? new Title.fromJson(json['title']) : null;\n    content =\n        json['content'] != null ? new Content.fromJson(json['content']) : null;\n    excerpt =\n        json['excerpt'] != null ? new Excerpt.fromJson(json['excerpt']) : null;\n    authorID = json['author'];\n    featuredMediaID = json['featured_media'];\n    if (json['comment_status'] != null) {\n      PostCommentStatus.values.forEach((val) {\n        if (enumStringToName(val.toString()) == json['comment_status']) {\n          commentStatus = val;\n          return;\n        }\n      });\n    }\n    if (json['ping_status'] != null) {\n      PostPingStatus.values.forEach((val) {\n        if (enumStringToName(val.toString()) == json['ping_status']) {\n          pingStatus = val;\n          return;\n        }\n      });\n    }\n    sticky = json['sticky'];\n    template = json['template'];\n    if (json['format'] != null) {\n      PostFormat.values.forEach((val) {\n        if (enumStringToName(val.toString()) == json['format']) {\n          format = val;\n          return;\n        }\n      });\n    }\n    categoryIDs =\n        json['categories'] != null ? json['categories'].cast<int>() : null;\n    tagIDs = json['tags'] != null ? json['tags'].cast<int>() : null;\n    permalinkTemplate = json['permalink_template'];\n    generatedSlug = json['generated_slug'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['date'] = this.date;\n    data['date_gmt'] = this.dateGmt;\n    data['password'] = this.password;\n    data['slug'] = this.slug;\n    data['status'] = enumStringToName(this.status.toString());\n    data['title'] = this.title?.toJson();\n    data['content'] = this.content?.toJson();\n    data['excerpt'] = this.excerpt?.toJson();\n    data['author'] = this.authorID;\n    data['featured_media'] = this.featuredMediaID;\n    data['comment_status'] = enumStringToName(this.commentStatus.toString());\n    data['ping_status'] = enumStringToName(this.pingStatus.toString());\n    data['sticky'] = this.sticky;\n    data['template'] = this.template;\n    data['format'] = enumStringToName(this.format.toString());\n    data['categories'] = listToUrlString(this.categoryIDs ?? []);\n    data['tags'] = listToUrlString(this.tagIDs ?? []);\n\n    return data;\n  }\n\n  @override\n  String toString() {\n    return 'Post: { id: $id, title: ${title?.rendered}, '\n        'author: {id: $authorID, name: ${author?.name}}}';\n  }\n}\n"
  },
  {
    "path": "lib/schemas/post_statuses.dart",
    "content": "import 'links.dart';\n\nclass PostStatuses {\n  Publish? publish;\n  Future? future;\n  Draft? draft;\n  Pending? pending;\n  Private? private;\n  Trash? trash;\n\n  PostStatuses({\n    this.publish,\n    this.future,\n    this.draft,\n    this.pending,\n    this.private,\n    this.trash,\n  });\n\n  PostStatuses.fromJson(Map<String, dynamic> json) {\n    publish =\n        json['publish'] != null ? new Publish.fromJson(json['publish']) : null;\n    future =\n        json['future'] != null ? new Future.fromJson(json['future']) : null;\n    draft = json['draft'] != null ? new Draft.fromJson(json['draft']) : null;\n    pending =\n        json['pending'] != null ? new Pending.fromJson(json['pending']) : null;\n    private =\n        json['private'] != null ? new Private.fromJson(json['private']) : null;\n    trash = json['trash'] != null ? new Trash.fromJson(json['trash']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['publish'] = this.publish?.toJson();\n    data['future'] = this.future?.toJson();\n    data['draft'] = this.draft?.toJson();\n    data['pending'] = this.pending?.toJson();\n    data['private'] = this.private?.toJson();\n    data['trash'] = this.trash?.toJson();\n\n    return data;\n  }\n}\n\nclass Publish {\n  String? name;\n  bool? private;\n  bool? protected;\n  bool? public;\n  bool? queryable;\n  bool? showInList;\n  String? slug;\n  Links? lLinks;\n\n  Publish({\n    this.name,\n    this.private,\n    this.protected,\n    this.public,\n    this.queryable,\n    this.showInList,\n    this.slug,\n    this.lLinks,\n  });\n\n  Publish.fromJson(Map<String, dynamic> json) {\n    name = json['name'];\n    private = json['private'];\n    protected = json['protected'];\n    public = json['public'];\n    queryable = json['queryable'];\n    showInList = json['show_in_list'];\n    slug = json['slug'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['name'] = this.name;\n    data['private'] = this.private;\n    data['protected'] = this.protected;\n    data['public'] = this.public;\n    data['queryable'] = this.queryable;\n    data['show_in_list'] = this.showInList;\n    data['slug'] = this.slug;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n\nclass Future {\n  String? name;\n  bool? private;\n  bool? protected;\n  bool? public;\n  bool? queryable;\n  bool? showInList;\n  String? slug;\n  Links? lLinks;\n\n  Future({\n    this.name,\n    this.private,\n    this.protected,\n    this.public,\n    this.queryable,\n    this.showInList,\n    this.slug,\n    this.lLinks,\n  });\n\n  Future.fromJson(Map<String, dynamic> json) {\n    name = json['name'];\n    private = json['private'];\n    protected = json['protected'];\n    public = json['public'];\n    queryable = json['queryable'];\n    showInList = json['show_in_list'];\n    slug = json['slug'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['name'] = this.name;\n    data['private'] = this.private;\n    data['protected'] = this.protected;\n    data['public'] = this.public;\n    data['queryable'] = this.queryable;\n    data['show_in_list'] = this.showInList;\n    data['slug'] = this.slug;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n\nclass Draft {\n  String? name;\n  bool? private;\n  bool? protected;\n  bool? public;\n  bool? queryable;\n  bool? showInList;\n  String? slug;\n  Links? lLinks;\n\n  Draft({\n    this.name,\n    this.private,\n    this.protected,\n    this.public,\n    this.queryable,\n    this.showInList,\n    this.slug,\n    this.lLinks,\n  });\n\n  Draft.fromJson(Map<String, dynamic> json) {\n    name = json['name'];\n    private = json['private'];\n    protected = json['protected'];\n    public = json['public'];\n    queryable = json['queryable'];\n    showInList = json['show_in_list'];\n    slug = json['slug'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['name'] = this.name;\n    data['private'] = this.private;\n    data['protected'] = this.protected;\n    data['public'] = this.public;\n    data['queryable'] = this.queryable;\n    data['show_in_list'] = this.showInList;\n    data['slug'] = this.slug;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n\nclass Pending {\n  String? name;\n  bool? private;\n  bool? protected;\n  bool? public;\n  bool? queryable;\n  bool? showInList;\n  String? slug;\n  Links? lLinks;\n\n  Pending({\n    this.name,\n    this.private,\n    this.protected,\n    this.public,\n    this.queryable,\n    this.showInList,\n    this.slug,\n    this.lLinks,\n  });\n\n  Pending.fromJson(Map<String, dynamic> json) {\n    name = json['name'];\n    private = json['private'];\n    protected = json['protected'];\n    public = json['public'];\n    queryable = json['queryable'];\n    showInList = json['show_in_list'];\n    slug = json['slug'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['name'] = this.name;\n    data['private'] = this.private;\n    data['protected'] = this.protected;\n    data['public'] = this.public;\n    data['queryable'] = this.queryable;\n    data['show_in_list'] = this.showInList;\n    data['slug'] = this.slug;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n\nclass Private {\n  String? name;\n  bool? private;\n  bool? protected;\n  bool? public;\n  bool? queryable;\n  bool? showInList;\n  String? slug;\n  Links? lLinks;\n\n  Private({\n    this.name,\n    this.private,\n    this.protected,\n    this.public,\n    this.queryable,\n    this.showInList,\n    this.slug,\n    this.lLinks,\n  });\n\n  Private.fromJson(Map<String, dynamic> json) {\n    name = json['name'];\n    private = json['private'];\n    protected = json['protected'];\n    public = json['public'];\n    queryable = json['queryable'];\n    showInList = json['show_in_list'];\n    slug = json['slug'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['name'] = this.name;\n    data['private'] = this.private;\n    data['protected'] = this.protected;\n    data['public'] = this.public;\n    data['queryable'] = this.queryable;\n    data['show_in_list'] = this.showInList;\n    data['slug'] = this.slug;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n\nclass Trash {\n  String? name;\n  bool? private;\n  bool? protected;\n  bool? public;\n  bool? queryable;\n  bool? showInList;\n  String? slug;\n  Links? lLinks;\n\n  Trash({\n    this.name,\n    this.private,\n    this.protected,\n    this.public,\n    this.queryable,\n    this.showInList,\n    this.slug,\n    this.lLinks,\n  });\n\n  Trash.fromJson(Map<String, dynamic> json) {\n    name = json['name'];\n    private = json['private'];\n    protected = json['protected'];\n    public = json['public'];\n    queryable = json['queryable'];\n    showInList = json['show_in_list'];\n    slug = json['slug'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['name'] = this.name;\n    data['private'] = this.private;\n    data['protected'] = this.protected;\n    data['public'] = this.public;\n    data['queryable'] = this.queryable;\n    data['show_in_list'] = this.showInList;\n    data['slug'] = this.slug;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/post_types.dart",
    "content": "import 'capabilities.dart';\nimport 'labels.dart';\nimport 'links.dart';\n\nclass PostTypes {\n  PostTypePost? post;\n  PostTypePage? page;\n  Attachment? attachment;\n  WpBlock? wpBlock;\n\n  PostTypes({\n    this.post,\n    this.page,\n    this.attachment,\n    this.wpBlock,\n  });\n\n  PostTypes.fromJson(Map<String, dynamic> json) {\n    post =\n        json['post'] != null ? new PostTypePost.fromJson(json['post']) : null;\n    page =\n        json['page'] != null ? new PostTypePage.fromJson(json['page']) : null;\n    attachment = json['attachment'] != null\n        ? new Attachment.fromJson(json['attachment'])\n        : null;\n    wpBlock = json['wp_block'] != null\n        ? new WpBlock.fromJson(json['wp_block'])\n        : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['post'] = this.post?.toJson();\n    data['page'] = this.page?.toJson();\n    data['attachment'] = this.attachment?.toJson();\n    data['wp_block'] = this.wpBlock?.toJson();\n\n    return data;\n  }\n}\n\nclass PostTypePost {\n  Capabilities? capabilities;\n  String? description;\n  bool? hierarchical;\n  bool? viewable;\n  Labels? labels;\n  String? name;\n  String? slug;\n  Supports? supports;\n  List<String>? taxonomies;\n  String? restBase;\n  Links? lLinks;\n\n  PostTypePost({\n    this.capabilities,\n    this.description,\n    this.hierarchical,\n    this.viewable,\n    this.labels,\n    this.name,\n    this.slug,\n    this.supports,\n    this.taxonomies,\n    this.restBase,\n    this.lLinks,\n  });\n\n  PostTypePost.fromJson(Map<String, dynamic> json) {\n    capabilities = json['capabilities'] != null\n        ? new Capabilities.fromJson(json['capabilities'])\n        : null;\n    description = json['description'];\n    hierarchical = json['hierarchical'];\n    viewable = json['viewable'];\n    labels =\n        json['labels'] != null ? new Labels.fromJson(json['labels']) : null;\n    name = json['name'];\n    slug = json['slug'];\n    supports = json['supports'] != null\n        ? new Supports.fromJson(json['supports'])\n        : null;\n    taxonomies = json['taxonomies'].cast<String>();\n    restBase = json['rest_base'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['capabilities'] = this.capabilities?.toJson();\n    data['description'] = this.description;\n    data['hierarchical'] = this.hierarchical;\n    data['viewable'] = this.viewable;\n    data['labels'] = this.labels?.toJson();\n    data['name'] = this.name;\n    data['slug'] = this.slug;\n    data['supports'] = this.supports?.toJson();\n    data['taxonomies'] = this.taxonomies;\n    data['rest_base'] = this.restBase;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n\nclass Supports {\n  bool? title;\n  bool? editor;\n  bool? author;\n  bool? thumbnail;\n  bool? excerpt;\n  bool? trackbacks;\n  bool? customFields;\n  bool? comments;\n  bool? revisions;\n  bool? postFormats;\n\n  Supports({\n    this.title,\n    this.editor,\n    this.author,\n    this.thumbnail,\n    this.excerpt,\n    this.trackbacks,\n    this.customFields,\n    this.comments,\n    this.revisions,\n    this.postFormats,\n  });\n\n  Supports.fromJson(Map<String, dynamic> json) {\n    title = json['title'];\n    editor = json['editor'];\n    author = json['author'];\n    thumbnail = json['thumbnail'];\n    excerpt = json['excerpt'];\n    trackbacks = json['trackbacks'];\n    customFields = json['custom-fields'];\n    comments = json['comments'];\n    revisions = json['revisions'];\n    postFormats = json['post-formats'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['title'] = this.title;\n    data['editor'] = this.editor;\n    data['author'] = this.author;\n    data['thumbnail'] = this.thumbnail;\n    data['excerpt'] = this.excerpt;\n    data['trackbacks'] = this.trackbacks;\n    data['custom-fields'] = this.customFields;\n    data['comments'] = this.comments;\n    data['revisions'] = this.revisions;\n    data['post-formats'] = this.postFormats;\n\n    return data;\n  }\n}\n\nclass PostTypePage {\n  Capabilities? capabilities;\n  String? description;\n  bool? hierarchical;\n  bool? viewable;\n  Labels? labels;\n  String? name;\n  String? slug;\n  Supports? supports;\n  List<int>? taxonomies;\n  String? restBase;\n  Links? lLinks;\n\n  PostTypePage({\n    this.capabilities,\n    this.description,\n    this.hierarchical,\n    this.viewable,\n    this.labels,\n    this.name,\n    this.slug,\n    this.supports,\n    this.taxonomies,\n    this.restBase,\n    this.lLinks,\n  });\n\n  PostTypePage.fromJson(Map<String, dynamic> json) {\n    capabilities = json['capabilities'] != null\n        ? new Capabilities.fromJson(json['capabilities'])\n        : null;\n    description = json['description'];\n    hierarchical = json['hierarchical'];\n    viewable = json['viewable'];\n    labels =\n        json['labels'] != null ? new Labels.fromJson(json['labels']) : null;\n    name = json['name'];\n    slug = json['slug'];\n    supports = json['supports'] != null\n        ? new Supports.fromJson(json['supports'])\n        : null;\n    taxonomies = json['taxonomies'].cast<int>();\n    restBase = json['rest_base'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['capabilities'] = this.capabilities?.toJson();\n    data['description'] = this.description;\n    data['hierarchical'] = this.hierarchical;\n    data['viewable'] = this.viewable;\n    data['labels'] = this.labels?.toJson();\n    data['name'] = this.name;\n    data['slug'] = this.slug;\n    data['supports'] = this.supports?.toJson();\n    data['taxonomies'] = this.taxonomies;\n    data['rest_base'] = this.restBase;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n\nclass Attachment {\n  Capabilities? capabilities;\n  String? description;\n  bool? hierarchical;\n  bool? viewable;\n  Labels? labels;\n  String? name;\n  String? slug;\n  Supports? supports;\n  List<int>? taxonomies;\n  String? restBase;\n  Links? lLinks;\n\n  Attachment({\n    this.capabilities,\n    this.description,\n    this.hierarchical,\n    this.viewable,\n    this.labels,\n    this.name,\n    this.slug,\n    this.supports,\n    this.taxonomies,\n    this.restBase,\n    this.lLinks,\n  });\n\n  Attachment.fromJson(Map<String, dynamic> json) {\n    capabilities = json['capabilities'] != null\n        ? new Capabilities.fromJson(json['capabilities'])\n        : null;\n    description = json['description'];\n    hierarchical = json['hierarchical'];\n    viewable = json['viewable'];\n    labels =\n        json['labels'] != null ? new Labels.fromJson(json['labels']) : null;\n    name = json['name'];\n    slug = json['slug'];\n    supports = json['supports'] != null\n        ? new Supports.fromJson(json['supports'])\n        : null;\n    taxonomies = json['taxonomies'].cast<int>();\n    restBase = json['rest_base'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['capabilities'] = this.capabilities?.toJson();\n    data['description'] = this.description;\n    data['hierarchical'] = this.hierarchical;\n    data['viewable'] = this.viewable;\n    data['labels'] = this.labels?.toJson();\n    data['name'] = this.name;\n    data['slug'] = this.slug;\n    data['supports'] = this.supports?.toJson();\n    data['taxonomies'] = this.taxonomies;\n    data['rest_base'] = this.restBase;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n\nclass WpBlock {\n  Capabilities? capabilities;\n  String? description;\n  bool? hierarchical;\n  bool? viewable;\n  Labels? labels;\n  String? name;\n  String? slug;\n  Supports? supports;\n  List<int>? taxonomies;\n  String? restBase;\n  Links? lLinks;\n\n  WpBlock({\n    this.capabilities,\n    this.description,\n    this.hierarchical,\n    this.viewable,\n    this.labels,\n    this.name,\n    this.slug,\n    this.supports,\n    this.taxonomies,\n    this.restBase,\n    this.lLinks,\n  });\n\n  WpBlock.fromJson(Map<String, dynamic> json) {\n    capabilities = json['capabilities'] != null\n        ? new Capabilities.fromJson(json['capabilities'])\n        : null;\n    description = json['description'];\n    hierarchical = json['hierarchical'];\n    viewable = json['viewable'];\n    labels =\n        json['labels'] != null ? new Labels.fromJson(json['labels']) : null;\n    name = json['name'];\n    slug = json['slug'];\n    supports = json['supports'] != null\n        ? new Supports.fromJson(json['supports'])\n        : null;\n    taxonomies = json['taxonomies'].cast<int>();\n    restBase = json['rest_base'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['capabilities'] = this.capabilities?.toJson();\n    data['description'] = this.description;\n    data['hierarchical'] = this.hierarchical;\n    data['viewable'] = this.viewable;\n    data['labels'] = this.labels?.toJson();\n    data['name'] = this.name;\n    data['slug'] = this.slug;\n    data['supports'] = this.supports?.toJson();\n    data['taxonomies'] = this.taxonomies;\n    data['rest_base'] = this.restBase;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/settings.dart",
    "content": "class Settings {\n  String? title;\n  String? description;\n  String? url;\n  String? email;\n  String? timezone;\n  String? dateFormat;\n  String? timeFormat;\n  int? startOfWeek;\n  String? language;\n  bool? useSmilies;\n  int? defaultCategory;\n  String? defaultPostFormat;\n  int? postsPerPage;\n  String? defaultPingStatus;\n  String? defaultCommentStatus;\n\n  Settings({\n    this.title,\n    this.description,\n    this.url,\n    this.email,\n    this.timezone,\n    this.dateFormat,\n    this.timeFormat,\n    this.startOfWeek,\n    this.language,\n    this.useSmilies,\n    this.defaultCategory,\n    this.defaultPostFormat,\n    this.postsPerPage,\n    this.defaultPingStatus,\n    this.defaultCommentStatus,\n  });\n\n  Settings.fromJson(Map<String, dynamic> json) {\n    title = json['title'];\n    description = json['description'];\n    url = json['url'];\n    email = json['email'];\n    timezone = json['timezone'];\n    dateFormat = json['date_format'];\n    timeFormat = json['time_format'];\n    startOfWeek = json['start_of_week'];\n    language = json['language'];\n    useSmilies = json['use_smilies'];\n    defaultCategory = json['default_category'];\n    defaultPostFormat = json['default_post_format'];\n    postsPerPage = json['posts_per_page'];\n    defaultPingStatus = json['default_ping_status'];\n    defaultCommentStatus = json['default_comment_status'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['title'] = this.title;\n    data['description'] = this.description;\n    data['url'] = this.url;\n    data['email'] = this.email;\n    data['timezone'] = this.timezone;\n    data['date_format'] = this.dateFormat;\n    data['time_format'] = this.timeFormat;\n    data['start_of_week'] = this.startOfWeek;\n    data['language'] = this.language;\n    data['use_smilies'] = this.useSmilies;\n    data['default_category'] = this.defaultCategory;\n    data['default_post_format'] = this.defaultPostFormat;\n    data['posts_per_page'] = this.postsPerPage;\n    data['default_ping_status'] = this.defaultPingStatus;\n    data['default_comment_status'] = this.defaultCommentStatus;\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/tag.dart",
    "content": "import 'links.dart';\n\nclass Tag {\n  int? id;\n  int? count;\n  String? description;\n  String? link;\n  String? name;\n  String? slug;\n  String? taxonomy;\n  Links? lLinks;\n\n  Tag({\n    this.id,\n    this.count,\n    this.description,\n    this.link,\n    this.name,\n    this.slug,\n    this.taxonomy,\n    this.lLinks,\n  });\n\n  Tag.fromJson(Map<String, dynamic> json) {\n    id = json['id'];\n    count = json['count'];\n    description = json['description'];\n    link = json['link'];\n    name = json['name'];\n    slug = json['slug'];\n    taxonomy = json['taxonomy'];\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['id'] = this.id;\n    data['count'] = this.count;\n    data['description'] = this.description;\n    data['link'] = this.link;\n    data['name'] = this.name;\n    data['slug'] = this.slug;\n    data['taxonomy'] = this.taxonomy;\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/taxonomies.dart",
    "content": "import 'capabilities.dart';\nimport 'labels.dart';\nimport 'links.dart';\n\nclass Taxonomies {\n  TaxonomyCategory? category;\n  TaxonomyPostTag? postTag;\n\n  Taxonomies({\n    this.category,\n    this.postTag,\n  });\n\n  Taxonomies.fromJson(Map<String, dynamic> json) {\n    category = json['category'] != null\n        ? new TaxonomyCategory.fromJson(json['category'])\n        : null;\n    postTag = json['post_tag'] != null\n        ? new TaxonomyPostTag.fromJson(json['post_tag'])\n        : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['category'] = this.category?.toJson();\n    data['post_tag'] = this.postTag?.toJson();\n\n    return data;\n  }\n}\n\nclass TaxonomyCategory {\n  String? name;\n  String? slug;\n  Capabilities? capabilities;\n  String? description;\n  Labels? labels;\n  List<String>? types;\n  bool? showCloud;\n  bool? hierarchical;\n  String? restBase;\n  Visibility? visibility;\n  Links? lLinks;\n\n  TaxonomyCategory({\n    this.name,\n    this.slug,\n    this.capabilities,\n    this.description,\n    this.labels,\n    this.types,\n    this.showCloud,\n    this.hierarchical,\n    this.restBase,\n    this.visibility,\n    this.lLinks,\n  });\n\n  TaxonomyCategory.fromJson(Map<String, dynamic> json) {\n    name = json['name'];\n    slug = json['slug'];\n    capabilities = json['capabilities'] != null\n        ? new Capabilities.fromJson(json['capabilities'])\n        : null;\n    description = json['description'];\n    labels =\n        json['labels'] != null ? new Labels.fromJson(json['labels']) : null;\n    types = json['types'].cast<String>();\n    showCloud = json['show_cloud'];\n    hierarchical = json['hierarchical'];\n    restBase = json['rest_base'];\n    visibility = json['visibility'] != null\n        ? new Visibility.fromJson(json['visibility'])\n        : null;\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['name'] = this.name;\n    data['slug'] = this.slug;\n    data['capabilities'] = this.capabilities?.toJson();\n    data['description'] = this.description;\n    data['labels'] = this.labels?.toJson();\n    data['types'] = this.types;\n    data['show_cloud'] = this.showCloud;\n    data['hierarchical'] = this.hierarchical;\n    data['rest_base'] = this.restBase;\n    data['visibility'] = this.visibility?.toJson();\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n\nclass Visibility {\n  bool? public;\n  bool? publiclyQueryable;\n  bool? showAdminColumn;\n  bool? showInNavMenus;\n  bool? showInQuickEdit;\n  bool? showUi;\n\n  Visibility({\n    this.public,\n    this.publiclyQueryable,\n    this.showAdminColumn,\n    this.showInNavMenus,\n    this.showInQuickEdit,\n    this.showUi,\n  });\n\n  Visibility.fromJson(Map<String, dynamic> json) {\n    public = json['public'];\n    publiclyQueryable = json['publicly_queryable'];\n    showAdminColumn = json['show_admin_column'];\n    showInNavMenus = json['show_in_nav_menus'];\n    showInQuickEdit = json['show_in_quick_edit'];\n    showUi = json['show_ui'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['public'] = this.public;\n    data['publicly_queryable'] = this.publiclyQueryable;\n    data['show_admin_column'] = this.showAdminColumn;\n    data['show_in_nav_menus'] = this.showInNavMenus;\n    data['show_in_quick_edit'] = this.showInQuickEdit;\n    data['show_ui'] = this.showUi;\n\n    return data;\n  }\n}\n\nclass TaxonomyPostTag {\n  String? name;\n  String? slug;\n  Capabilities? capabilities;\n  String? description;\n  Labels? labels;\n  List<String>? types;\n  bool? showCloud;\n  bool? hierarchical;\n  String? restBase;\n  Visibility? visibility;\n  Links? lLinks;\n\n  TaxonomyPostTag({\n    this.name,\n    this.slug,\n    this.capabilities,\n    this.description,\n    this.labels,\n    this.types,\n    this.showCloud,\n    this.hierarchical,\n    this.restBase,\n    this.visibility,\n    this.lLinks,\n  });\n\n  TaxonomyPostTag.fromJson(Map<String, dynamic> json) {\n    name = json['name'];\n    slug = json['slug'];\n    capabilities = json['capabilities'] != null\n        ? new Capabilities.fromJson(json['capabilities'])\n        : null;\n    description = json['description'];\n    labels =\n        json['labels'] != null ? new Labels.fromJson(json['labels']) : null;\n    types = json['types'].cast<String>();\n    showCloud = json['show_cloud'];\n    hierarchical = json['hierarchical'];\n    restBase = json['rest_base'];\n    visibility = json['visibility'] != null\n        ? new Visibility.fromJson(json['visibility'])\n        : null;\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['name'] = this.name;\n    data['slug'] = this.slug;\n    data['capabilities'] = this.capabilities?.toJson();\n    data['labels'] = this.labels?.toJson();\n    data['description'] = this.description;\n    data['types'] = this.types;\n    data['show_cloud'] = this.showCloud;\n    data['hierarchical'] = this.hierarchical;\n    data['rest_base'] = this.restBase;\n    data['visibility'] = this.visibility?.toJson();\n    data['_links'] = this.lLinks?.toJson();\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/title.dart",
    "content": "class Title {\n  String? raw;\n  String? rendered;\n\n  Title({this.rendered});\n\n  Title.fromJson(Map<String, dynamic> json) {\n    raw = json['raw'];\n    rendered = json['rendered'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['raw'] = this.raw;\n    data['rendered'] = this.rendered;\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/user.dart",
    "content": "import 'avatar_urls.dart';\nimport 'links.dart';\n\nclass User {\n  int? id;\n  String? username;\n  String? name;\n  String? firstName;\n  String? lastName;\n  String? email;\n  String? url;\n  String? description;\n  String? link;\n  String? locale;\n  String? nickname;\n  String? slug;\n  List<String>? roles;\n  String? registeredDate;\n  UserCapabilities? capabilities;\n  UserExtraCapabilities? extraCapabilities;\n  AvatarUrls? avatarUrls;\n  Map<String, dynamic>? meta;\n  Links? lLinks;\n//  yahya - @mymakarim\n  String? password;\n//  end yahya - @mymakarim\n\n  User({\n    this.id,\n    this.username,\n    this.name,\n    this.firstName,\n    this.lastName,\n    this.email,\n    this.url,\n    this.description,\n    this.link,\n    this.locale,\n    this.nickname,\n    this.slug,\n    this.roles,\n    this.registeredDate,\n    this.capabilities,\n    this.extraCapabilities,\n    this.avatarUrls,\n    this.meta,\n    this.lLinks,\n    this.password,\n  });\n\n  User.fromJson(Map<String, dynamic> json) {\n    id = json['id'];\n    username = json['username'];\n    name = json['name'];\n    firstName = json['first_name'];\n    lastName = json['last_name'];\n    email = json['email'];\n    url = json['url'];\n    description = json['description'];\n    link = json['link'];\n    locale = json['locale'];\n    nickname = json['nickname'];\n    slug = json['slug'];\n    if (json['roles'] != null) roles = json['roles'].cast<String>();\n    registeredDate = json['registered_date'];\n    capabilities = json['capabilities'] != null\n        ? new UserCapabilities.fromJson(json['capabilities'])\n        : null;\n    extraCapabilities = json['extra_capabilities'] != null\n        ? new UserExtraCapabilities.fromJson(json['extra_capabilities'])\n        : null;\n    avatarUrls = json['avatar_urls'] != null\n        ? new AvatarUrls.fromJson(json['avatar_urls'])\n        : null;\n\n    if (json['meta'] != null && json['meta'].length > 0) {\n      meta = new Map<String, dynamic>();\n      json['meta'].forEach((k, v) {\n        meta![k] = v;\n      });\n    }\n    lLinks = json['_links'] != null ? new Links.fromJson(json['_links']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['id'] = this.id;\n    data['username'] = this.username;\n    data['name'] = this.name;\n    data['first_name'] = this.firstName;\n    data['last_name'] = this.lastName;\n    data['email'] = this.email;\n    data['url'] = this.url;\n    data['description'] = this.description;\n    data['link'] = this.link;\n    data['locale'] = this.locale;\n    data['nickname'] = this.nickname;\n    data['slug'] = this.slug;\n    data['roles'] = this.roles;\n    data['registered_date'] = this.registeredDate;\n    data['capabilities'] = this.capabilities?.toJson();\n    data['extra_capabilities'] = this.extraCapabilities?.toJson();\n    data['avatar_urls'] = this.avatarUrls?.toJson();\n    data['meta'] = this.meta;\n    data['_links'] = this.lLinks?.toJson();\n    data['password'] = this.password;\n\n    return data;\n  }\n\n  @override\n  String toString() {\n    return 'id: $id, name: $name';\n  }\n}\n\nclass UserCapabilities {\n  bool? switchThemes;\n  bool? editThemes;\n  bool? activatePlugins;\n  bool? editPlugins;\n  bool? editUsers;\n  bool? editFiles;\n  bool? manageOptions;\n  bool? moderateComments;\n  bool? manageCategories;\n  bool? manageLinks;\n  bool? uploadFiles;\n  bool? import;\n  bool? unfilteredHtml;\n  bool? editPosts;\n  bool? editOthersPosts;\n  bool? editPublishedPosts;\n  bool? publishPosts;\n  bool? editPages;\n  bool? read;\n  bool? level10;\n  bool? level9;\n  bool? level8;\n  bool? level7;\n  bool? level6;\n  bool? level5;\n  bool? level4;\n  bool? level3;\n  bool? level2;\n  bool? level1;\n  bool? level0;\n  bool? editOthersPages;\n  bool? editPublishedPages;\n  bool? publishPages;\n  bool? deletePages;\n  bool? deleteOthersPages;\n  bool? deletePublishedPages;\n  bool? deletePosts;\n  bool? deleteOthersPosts;\n  bool? deletePublishedPosts;\n  bool? deletePrivatePosts;\n  bool? editPrivatePosts;\n  bool? readPrivatePosts;\n  bool? deletePrivatePages;\n  bool? editPrivatePages;\n  bool? readPrivatePages;\n  bool? deleteUsers;\n  bool? createUsers;\n  bool? unfilteredUpload;\n  bool? editDashboard;\n  bool? updatePlugins;\n  bool? deletePlugins;\n  bool? installPlugins;\n  bool? updateThemes;\n  bool? installThemes;\n  bool? updateCore;\n  bool? listUsers;\n  bool? removeUsers;\n  bool? promoteUsers;\n  bool? editThemeOptions;\n  bool? deleteThemes;\n  bool? export;\n  bool? administrator;\n\n  UserCapabilities({\n    this.switchThemes,\n    this.editThemes,\n    this.activatePlugins,\n    this.editPlugins,\n    this.editUsers,\n    this.editFiles,\n    this.manageOptions,\n    this.moderateComments,\n    this.manageCategories,\n    this.manageLinks,\n    this.uploadFiles,\n    this.import,\n    this.unfilteredHtml,\n    this.editPosts,\n    this.editOthersPosts,\n    this.editPublishedPosts,\n    this.publishPosts,\n    this.editPages,\n    this.read,\n    this.level10,\n    this.level9,\n    this.level8,\n    this.level7,\n    this.level6,\n    this.level5,\n    this.level4,\n    this.level3,\n    this.level2,\n    this.level1,\n    this.level0,\n    this.editOthersPages,\n    this.editPublishedPages,\n    this.publishPages,\n    this.deletePages,\n    this.deleteOthersPages,\n    this.deletePublishedPages,\n    this.deletePosts,\n    this.deleteOthersPosts,\n    this.deletePublishedPosts,\n    this.deletePrivatePosts,\n    this.editPrivatePosts,\n    this.readPrivatePosts,\n    this.deletePrivatePages,\n    this.editPrivatePages,\n    this.readPrivatePages,\n    this.deleteUsers,\n    this.createUsers,\n    this.unfilteredUpload,\n    this.editDashboard,\n    this.updatePlugins,\n    this.deletePlugins,\n    this.installPlugins,\n    this.updateThemes,\n    this.installThemes,\n    this.updateCore,\n    this.listUsers,\n    this.removeUsers,\n    this.promoteUsers,\n    this.editThemeOptions,\n    this.deleteThemes,\n    this.export,\n    this.administrator,\n  });\n\n  UserCapabilities.fromJson(Map<String, dynamic> json) {\n    switchThemes = json['switch_themes'];\n    editThemes = json['edit_themes'];\n    activatePlugins = json['activate_plugins'];\n    editPlugins = json['edit_plugins'];\n    editUsers = json['edit_users'];\n    editFiles = json['edit_files'];\n    manageOptions = json['manage_options'];\n    moderateComments = json['moderate_comments'];\n    manageCategories = json['manage_categories'];\n    manageLinks = json['manage_links'];\n    uploadFiles = json['upload_files'];\n    import = json['import'];\n    unfilteredHtml = json['unfiltered_html'];\n    editPosts = json['edit_posts'];\n    editOthersPosts = json['edit_others_posts'];\n    editPublishedPosts = json['edit_published_posts'];\n    publishPosts = json['publish_posts'];\n    editPages = json['edit_pages'];\n    read = json['read'];\n    level10 = json['level_10'];\n    level9 = json['level_9'];\n    level8 = json['level_8'];\n    level7 = json['level_7'];\n    level6 = json['level_6'];\n    level5 = json['level_5'];\n    level4 = json['level_4'];\n    level3 = json['level_3'];\n    level2 = json['level_2'];\n    level1 = json['level_1'];\n    level0 = json['level_0'];\n    editOthersPages = json['edit_others_pages'];\n    editPublishedPages = json['edit_published_pages'];\n    publishPages = json['publish_pages'];\n    deletePages = json['delete_pages'];\n    deleteOthersPages = json['delete_others_pages'];\n    deletePublishedPages = json['delete_published_pages'];\n    deletePosts = json['delete_posts'];\n    deleteOthersPosts = json['delete_others_posts'];\n    deletePublishedPosts = json['delete_published_posts'];\n    deletePrivatePosts = json['delete_private_posts'];\n    editPrivatePosts = json['edit_private_posts'];\n    readPrivatePosts = json['read_private_posts'];\n    deletePrivatePages = json['delete_private_pages'];\n    editPrivatePages = json['edit_private_pages'];\n    readPrivatePages = json['read_private_pages'];\n    deleteUsers = json['delete_users'];\n    createUsers = json['create_users'];\n    unfilteredUpload = json['unfiltered_upload'];\n    editDashboard = json['edit_dashboard'];\n    updatePlugins = json['update_plugins'];\n    deletePlugins = json['delete_plugins'];\n    installPlugins = json['install_plugins'];\n    updateThemes = json['update_themes'];\n    installThemes = json['install_themes'];\n    updateCore = json['update_core'];\n    listUsers = json['list_users'];\n    removeUsers = json['remove_users'];\n    promoteUsers = json['promote_users'];\n    editThemeOptions = json['edit_theme_options'];\n    deleteThemes = json['delete_themes'];\n    export = json['export'];\n    administrator = json['administrator'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['switch_themes'] = this.switchThemes;\n    data['edit_themes'] = this.editThemes;\n    data['activate_plugins'] = this.activatePlugins;\n    data['edit_plugins'] = this.editPlugins;\n    data['edit_users'] = this.editUsers;\n    data['edit_files'] = this.editFiles;\n    data['manage_options'] = this.manageOptions;\n    data['moderate_comments'] = this.moderateComments;\n    data['manage_categories'] = this.manageCategories;\n    data['manage_links'] = this.manageLinks;\n    data['upload_files'] = this.uploadFiles;\n    data['import'] = this.import;\n    data['unfiltered_html'] = this.unfilteredHtml;\n    data['edit_posts'] = this.editPosts;\n    data['edit_others_posts'] = this.editOthersPosts;\n    data['edit_published_posts'] = this.editPublishedPosts;\n    data['publish_posts'] = this.publishPosts;\n    data['edit_pages'] = this.editPages;\n    data['read'] = this.read;\n    data['level_10'] = this.level10;\n    data['level_9'] = this.level9;\n    data['level_8'] = this.level8;\n    data['level_7'] = this.level7;\n    data['level_6'] = this.level6;\n    data['level_5'] = this.level5;\n    data['level_4'] = this.level4;\n    data['level_3'] = this.level3;\n    data['level_2'] = this.level2;\n    data['level_1'] = this.level1;\n    data['level_0'] = this.level0;\n    data['edit_others_pages'] = this.editOthersPages;\n    data['edit_published_pages'] = this.editPublishedPages;\n    data['publish_pages'] = this.publishPages;\n    data['delete_pages'] = this.deletePages;\n    data['delete_others_pages'] = this.deleteOthersPages;\n    data['delete_published_pages'] = this.deletePublishedPages;\n    data['delete_posts'] = this.deletePosts;\n    data['delete_others_posts'] = this.deleteOthersPosts;\n    data['delete_published_posts'] = this.deletePublishedPosts;\n    data['delete_private_posts'] = this.deletePrivatePosts;\n    data['edit_private_posts'] = this.editPrivatePosts;\n    data['read_private_posts'] = this.readPrivatePosts;\n    data['delete_private_pages'] = this.deletePrivatePages;\n    data['edit_private_pages'] = this.editPrivatePages;\n    data['read_private_pages'] = this.readPrivatePages;\n    data['delete_users'] = this.deleteUsers;\n    data['create_users'] = this.createUsers;\n    data['unfiltered_upload'] = this.unfilteredUpload;\n    data['edit_dashboard'] = this.editDashboard;\n    data['update_plugins'] = this.updatePlugins;\n    data['delete_plugins'] = this.deletePlugins;\n    data['install_plugins'] = this.installPlugins;\n    data['update_themes'] = this.updateThemes;\n    data['install_themes'] = this.installThemes;\n    data['update_core'] = this.updateCore;\n    data['list_users'] = this.listUsers;\n    data['remove_users'] = this.removeUsers;\n    data['promote_users'] = this.promoteUsers;\n    data['edit_theme_options'] = this.editThemeOptions;\n    data['delete_themes'] = this.deleteThemes;\n    data['export'] = this.export;\n    data['administrator'] = this.administrator;\n\n    return data;\n  }\n}\n\nclass UserExtraCapabilities {\n  bool? administrator;\n\n  UserExtraCapabilities({this.administrator});\n\n  UserExtraCapabilities.fromJson(Map<String, dynamic> json) {\n    administrator = json['administrator'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['administrator'] = this.administrator;\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "lib/schemas/wordpress_error.dart",
    "content": "/// All API related errors are thrown as an object of this class.\nclass WordPressError {\n  String? code;\n  String? message;\n  Data? data;\n\n  WordPressError({\n    this.code,\n    this.message,\n    this.data,\n  });\n\n  WordPressError.fromJson(Map<String, dynamic> json) {\n    code = json['code'];\n    message = json['message'];\n    data = json['data'] != null ? new Data.fromJson(json['data']) : null;\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['code'] = this.code;\n    data['message'] = this.message;\n    data['data'] = this.data?.toJson();\n\n    return data;\n  }\n\n  @override\n  String toString() {\n    return 'WordPress Error! code: $code, message: $message, status: ${data == null ? null : data?.status}';\n  }\n}\n\nclass Data {\n  int? status;\n\n  Data({this.status});\n\n  Data.fromJson(Map<String, dynamic> json) {\n    status = json['status'];\n  }\n\n  Map<String, dynamic> toJson() {\n    final Map<String, dynamic> data = new Map<String, dynamic>();\n\n    data['status'] = this.status;\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "pubspec.yaml",
    "content": "name: flutter_wordpress\ndescription: This library uses WordPress REST-API-V2 to provide a way for your application to\n  interact with your WordPress website.\nversion: 0.3.0-nullsafety.0\nauthors:\n  - Sachin Ganesh <sachin@dreamsoftin.com>\n  - Suraj Shettigar <suraj@dreamsoftin.com>\n  - Harm-Jan Roskam <harmjanroskam@gmail.com>\n  - Yahya Makarim <ymakarim@gmail.com>\n  - Oladapo Adeola Omonayajo <omonayajo@zohomail.com>\nhomepage: https://github.com/dreamsoftin/flutter_wordpress\n\nenvironment:\n  sdk: '>=2.12.0-29.7.beta <3.0.0'\n\ndependencies:\n  http: ^0.13.4\n"
  }
]