diff --git a/.deploy_git b/.deploy_git new file mode 160000 index 0000000..259bca3 --- /dev/null +++ b/.deploy_git @@ -0,0 +1 @@ +Subproject commit 259bca33b20493eed69cf055209ae5cfefb7b313 diff --git a/2019/04/09/sitecore-wish-list/index.html b/2019/04/09/sitecore-wish-list/index.html deleted file mode 100644 index 282f54f..0000000 --- a/2019/04/09/sitecore-wish-list/index.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - - - Sitecore wish list | Sitecore Source - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
-
-
-

- - Sitecore wish list - -

- - - - - -
- -
Sitecore version: 9.1
- - -
  1. 1. Features
    1. 1.1. Workflow & Workbox
    2. 1.2. Media cropping OTB
      1. 1.2.1. Sitecore Modules
      2. 1.2.2. DAM’s (Digital Asset Management)
    3. 1.3. Options for hosting media externally
    4. 1.4. Personalisation with CDN
  2. 2. Development
    1. 2.1. Async Sitecore Controllers
  3. 3. Documentation
    1. 3.1. Better scaling guidelines
  4. 4. Examples
    1. 4.1. Helix & Habitat ✔
- -
-
-

sitecore angel

-

This post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between.
Please feel free to comment below or email me on rdias@1digit.co.uk if you want me to add something to this list, correct me or let me know if a wish has been granted.

-

Features

Workflow & Workbox

I’ve been working with Sitecore since version 5.3 and I must say that the workbox seems to have hardly changed.
We are selling Sitecore to clients with thousands of content items, globally distributed authoring teams and this content is often constantly changing. The current workbox isn’t suitable for large volumes of content and authors are often requesting to bypass the Sitecore workflow altogether which is a very bad thing.
Start thinking about:

-
    -
  • Redoing the UI to make approving large numbers of content realistic
  • -
  • Better methods of grouping content and assiging to individual approvers
  • -
  • Using the search index to power the new workflow UI
  • -
  • SXA is out, we can start approving partial designs/ composites etc as a whole
  • -
-

Media cropping OTB

One of the biggest issues we see on many Sitecore websites is the fact that content authors seem to upload and use very large (200KB<) images on their site. They often allocate for the best looking image on Macbook Pro Retina screens without any notion of what this would do to a mobile site for example.
Larger page weights also get penalised by google so this is another loss.

-

Sitecore has a great media processing pipeline which will let you pass in parameters for width and height, you can use this to resize images and you can set the process quality to around 75 to get really good image compression.

-

The problem is that most websites need to have different aspect ratios for an individual image and simply resizing will not do, we need to be able to crop and optimize.

-

Sitecore Modules

There is a nice tool in the marketplace now:

-
    -
  • Image field with cropping, this needs some tweaking for us to define a fixed/limited number of crops per site, otherwise it does a great job.
  • -
-

DAM’s (Digital Asset Management)

There are DAM integrations like Digizuite (which at the time of writing has the most complete DAM integration with Sitecore) and Sitecore has recently acquired Stylelabs (which will do the job). Both of these have cropping functionality (and much more), the problem is that that these are paid services and have a lot more functionality and a pricetag to match.

-

Sitecore should have a middle-ground solution that comes with the core platform.

-

Options for hosting media externally

Although using a DAM solves this problem, we should be able to select more than 2 options for storing media (Blob, File system) by default.

-

I’ve worked with clients who are starting to have huge Master and Web Db’s (> 20GB) and 95% of the space is used up by media blobs. Moving these externally would not only allow us more flexibility for backingup/restoring and moving DB’s around, it can also prove invaluable when we have downtime because of deployment issues, sync issues, publishing issues where we would need to restore our web DB’s ASAP.

-

Thanks to Kate Orlova we’ve got a nice module which I hope Sitecore adopts:
External asset management in Sitecore. I’ve not used this personally but it looks nice and clean after having a browse of the code and its a Helix foundation project to boot!
This can easily be adpated for multiple DFS’s and cloud hosting providers.

-

Personalisation with CDN

At the moment Sitecore does all of its personalisation on the client side unless you start using some JSS functionality.
If you’re a client with a global presense (and there are a lot of these) who needs to cover more than one geographical region and don’t want to spend large sums on a geographically distributed CD node system then you will most likely be using a CDN like Akamai, Cloudlare or any number of players.
If we want to make use of Sitecores’ rich personalisation and analytics we won’t be able to edge cache the actual documents (Media or any other assets are not an issue). If we edge cache the document then the persona profiling won’t work nor will other personalisation functionality.
Sitecore needs to move personalisation and content profiling to the client side so that working with CDN’s won’t hinder any Sitecore functionality.

-

Development

Async Sitecore Controllers

Please please can we have async controllers? the ability to mark renderings as async would be fantastic, this means non-essential renderings can be loaded asynctonously without our pages needing to ‘wait’ for them. The sooner the server can respond with the DOM the better.

1
public async Task<ActionResult> MarketingTile()

-

Here is a nice article about how async methods work in ASP.NET.

-

Documentation

Better scaling guidelines

It would be great to see more guidelines on how to horizontally scale a solution so that we can span multiple geographical datacentres.
Sitecore has provided some documentation on clustering and geographic distribution which shows the elements we would need for something like this but it’s all very high level:

-

Each Content Delivery (CD) cluster which should be in its own data canter should have its own

-
    -
  • Session State DB
  • -
  • Web DB
  • -
  • Core DB
    Sitecore horizontal web cluster
  • -
-

So we can make some assumptions, that we have a load balancing strategy that sends visitors to their own cluster based on reverse GeoIP lookup.
What will we be sacrificing for this type of configuration? for example if we rely on the new Identity Server, this isn’t built for multi-geography scale so its not an option.
We can’t have extranet users in the CoreDb anymore, so what is the alternative soluiton?
What are the implications on upgrading Sitecore?

-

Examples

What can Sitecore provide in terms of examples, tutorials and demo enviornments?

-

Helix & Habitat ✔

This was going to be about providing better Helix project examples than Habitat. Luckily, this is going to happen already as announced by Peter Brinkman at Sugcon London 2019.
There will be 3 new demo environments released (with source code) for small, medium and enterprise scale Sitecore Helix solutions!

- -
- - - - - - - -
- -
-
-
- -
- - - -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - diff --git a/2019/04/17/sitecore-xp-9-1-update-1-and-sitecore-commerce-9-1-installation-issues/index.html b/2019/04/17/sitecore-xp-9-1-update-1-and-sitecore-commerce-9-1-installation-issues/index.html deleted file mode 100644 index 5146395..0000000 --- a/2019/04/17/sitecore-xp-9-1-update-1-and-sitecore-commerce-9-1-installation-issues/index.html +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - - Some issues and solutions I faced when installing Sitecore commerce 9.1 with Sitecore 9.1.1 (9.1 Update 1) | Sitecore Source - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
-
-
-

- - Some issues and solutions I faced when installing Sitecore commerce 9.1 with Sitecore 9.1.1 (9.1 Update 1) - -

- - - - - -
- - -
  1. 1. Sitecore 9.1 update 1 issues
    1. 1.1. license.xml has not expired
  2. 2. Sitecore 9.1 Commerce install
    1. 2.1. Make sure your Identity server cert is trusted
    2. 2.2. No storefront site?
    3. 2.3. How long does the install take to complate?
- -
-
-

The first thing to recommend is, use Viet Hoangs installation guides and his scrips, there are things like trusted itentity server certs which and needed for the commerce install that Sitecores default installation for 9.1.1 does not have:

- -

Sitecore 9.1 update 1 issues

-

license.xml has not expired

You will see issues like:

1
2
Install-SitecoreConfiguration : Failed to start service 'Sitecore XConnect Search Indexer -
sc911.xconnect.local-IndexWorker (sc911.xconnect.local-IndexWorker)'.

-

Failed to start service

-

Once the above error was sorted then I got the failiure below:

-
1
2
Install-SitecoreConfiguration : Failed to start service 'Sitecore Marketing Automation Engine -
sc911.xconnect.local-MarketingAutomationService (sc911.xconnect.local-MarketingAutomationService)'.
-

Failed to start marketting service

-

Did and uninstall an reinstall and still no luck. It looks like a license file issue again, I made sure it’s the correct license, made sure all host entries and certs were deleted via the cert MMS and restarted the machine, kicked off the installation and everything worked this time!

-

Sitecore 9.1 Commerce install

Make sure your Identity server cert is trusted

You need to make sure that you don’t see any SSL validation error when navigating to the https:// URL of your identity server. If you have an error, then go back to you SC 9.1 Update 1 install and sort this out first.

-

If you’re seeing this, then your commerce installation will not complete:
Sitecore identity server not trusted
Make sure the SSL cert is trusted:
Sitecore identity server is trusted

-

No storefront site?

Don’t use the latest version of powershell (5.0), Viet Hoang mentions this in his blog. As far as I am concernted, Powershell Extenstion 4.7.2 is mandatory for a SC 9.1 Commerce install.
No Storefront site

-

How long does the install take to complate?

It took my i7 18GB RAM SSD laptop almost an hour to complete:
Installation time for commerce

- -
- - - - - - - -
- -
-
-
- -
- - - -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..bdf911a --- /dev/null +++ b/_config.yml @@ -0,0 +1,120 @@ +# Hexo Configuration +## Docs: https://hexo.io/docs/configuration.html +## Source: https://github.com/hexojs/hexo/ + +# Site +title: Sitecore Source +subtitle: C# .NET and Sitecore +description: A Sitecore blog dedicated to perfomance, scaling and other technical goodies with Sitecore +keywords: +author: Richard Dias +language: en-GB +timezone: +avatar: /images/avatar.jpg +favicon: /images/favicon.ico + +# URL +## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' +url: http://sitecoresource.com +root: / +permalink: :year/:month/:day/:title/ +permalink_defaults: + +# Directory +source_dir: source +public_dir: public +tag_dir: tags +archive_dir: archives +category_dir: categories +code_dir: downloads/code +i18n_dir: :lang +skip_render: + +# Writing +new_post_name: :title.md # File name of new posts +default_layout: post +titlecase: false # Transform title into titlecase +external_link: true # Open external links in new tab +filename_case: 0 +render_drafts: false +post_asset_folder: false +relative_link: false +future: true +highlight: + enable: true + line_number: true + auto_detect: false + tab_replace: + +# Home page setting +# path: Root path for your blogs index page. (default = '') +# per_page: Posts displayed per page. (0 = disable pagination) +# order_by: Posts order. (Order by date descending by default) +index_generator: + path: '' + per_page: 10 + order_by: -date + +# Category & Tag +default_category: uncategorized +category_map: +tag_map: + +# Date / Time format +## Hexo uses Moment.js to parse and display date +## You can customize the date format as defined in +## http://momentjs.com/docs/#/displaying/format/ +date_format: DD-MMM-YYYY +time_format: HH:mm:ss + +# Pagination +## Set per_page to 0 to disable pagination +per_page: 10 +pagination_dir: page + +# Extensions +## Plugins: https://hexo.io/plugins/ +## Themes: https://hexo.io/themes/ +theme: material-flow + +# Generator json content +jsonContent: + meta: false + keywords: false + pages: + title: true + slug: false + date: false + updated: false + comments: false + path: false + link: false + permalink: true + excerpt: false + keywords: false + text: true + raw: false + content: false + posts: + title: true + slug: false + date: false + updated: false + comments: false + path: false + link: false + permalink: true + excerpt: false + keywords: false + text: true + raw: false + content: false + categories: false + tags: false + +# Deployment +## Docs: https://hexo.io/docs/deployment.html +deploy: + type: git + repo: git@github.com:richdman/richdman.github.io.git + branch: master \ No newline at end of file diff --git a/about/index.html b/about/index.html deleted file mode 100644 index 4fe3bae..0000000 --- a/about/index.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - About | Sitecore Source - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
-
-
-

- - About - -

- - -
- - -
- -
-
-

I’ve been working with Sitecore as a technology since version 5.3 was launched. I’ve moved on to architecting some of the largest Sitecore solutions in the UK including hsbc.com, Euromoney Plc, Universal Music and ASOS.com and I started this blog because it’s time to start sharing some of the things I’ve learnt over the last 12 years.

-

LinkedIn
Badge
Things I enjoy considerably more than coding stuff:

-

Skiingchillingchilling!HikingBoatDance

- -
- - - -
- -
- -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2019/04/index.html b/archives/2019/04/index.html deleted file mode 100644 index 699a09b..0000000 --- a/archives/2019/04/index.html +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - Archives: 2019/4 | Sitecore Source - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
- - - - -
- -
-
-
- -

- - Some issues and solutions I faced when installing Sitecore commerce 9.1 with Sitecore 9.1.1 (9.1 Update 1) - -

- - - - - - -
-
-

The first thing to recommend is, use Viet Hoangs installation guides and his scrips, there are things like trusted itentity server certs which and needed for the commerce install that Sitecores default installation for 9.1.1 does not have:

- -

Sitecore 9.1 update 1 issues

- - -
- Read More -
- - - - - -
-
-
- -
-
-
- -

- - Sitecore wish list - -

- - - - - - -
-
-

sitecore angel

-

This post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between.
Please feel free to comment below or email me on rdias@1digit.co.uk if you want me to add something to this list, correct me or let me know if a wish has been granted.
- - -

- Read More -
- - - - - -

-
-
- -
- - - -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2019/index.html b/archives/2019/index.html deleted file mode 100644 index a75deca..0000000 --- a/archives/2019/index.html +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - Archives: 2019 | Sitecore Source - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
- - - - -
- -
-
-
- -

- - Some issues and solutions I faced when installing Sitecore commerce 9.1 with Sitecore 9.1.1 (9.1 Update 1) - -

- - - - - - -
-
-

The first thing to recommend is, use Viet Hoangs installation guides and his scrips, there are things like trusted itentity server certs which and needed for the commerce install that Sitecores default installation for 9.1.1 does not have:

- -

Sitecore 9.1 update 1 issues

- - -
- Read More -
- - - - - -
-
-
- -
-
-
- -

- - Sitecore wish list - -

- - - - - - -
-
-

sitecore angel

-

This post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between.
Please feel free to comment below or email me on rdias@1digit.co.uk if you want me to add something to this list, correct me or let me know if a wish has been granted.
- - -

- Read More -
- - - - - -

-
-
- -
- - - -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/index.html b/archives/index.html deleted file mode 100644 index a2c114b..0000000 --- a/archives/index.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - - - Archives | Sitecore Source - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
- - - -
-
- - - - - - - - - - - - - - - - - - - - - - diff --git a/atom.xml b/atom.xml deleted file mode 100644 index 8fa8b40..0000000 --- a/atom.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - Sitecore Source - - C# .NET and Sitecore - - - - 2019-05-14T10:23:59.021Z - http://sitecoresource.com/ - - - Richard Dias - - - - Hexo - - - Some issues and solutions I faced when installing Sitecore commerce 9.1 with Sitecore 9.1.1 (9.1 Update 1) - - http://sitecoresource.com/2019/04/17/sitecore-xp-9-1-update-1-and-sitecore-commerce-9-1-installation-issues/ - 2019-04-17T12:35:41.000Z - 2019-05-14T10:23:59.021Z - - The first thing to recommend is, use Viet Hoangs installation guides and his scrips, there are things like trusted itentity server certs which and needed for the commerce install that Sitecores default installation for 9.1.1 does not have:

Sitecore 9.1 update 1 issues

license.xml has not expired

You will see issues like:

1
2
Install-SitecoreConfiguration : Failed to start service 'Sitecore XConnect Search Indexer -
sc911.xconnect.local-IndexWorker (sc911.xconnect.local-IndexWorker)'.

Failed to start service

Once the above error was sorted then I got the failiure below:

1
2
Install-SitecoreConfiguration : Failed to start service 'Sitecore Marketing Automation Engine -
sc911.xconnect.local-MarketingAutomationService (sc911.xconnect.local-MarketingAutomationService)'.

Failed to start marketting service

Did and uninstall an reinstall and still no luck. It looks like a license file issue again, I made sure it’s the correct license, made sure all host entries and certs were deleted via the cert MMS and restarted the machine, kicked off the installation and everything worked this time!

Sitecore 9.1 Commerce install

Make sure your Identity server cert is trusted

You need to make sure that you don’t see any SSL validation error when navigating to the https:// URL of your identity server. If you have an error, then go back to you SC 9.1 Update 1 install and sort this out first.

If you’re seeing this, then your commerce installation will not complete:
Sitecore identity server not trusted
Make sure the SSL cert is trusted:
Sitecore identity server is trusted

No storefront site?

Don’t use the latest version of powershell (5.0), Viet Hoang mentions this in his blog. As far as I am concernted, Powershell Extenstion 4.7.2 is mandatory for a SC 9.1 Commerce install.
No Storefront site

How long does the install take to complate?

It took my i7 18GB RAM SSD laptop almost an hour to complete:
Installation time for commerce

]]>
- - - - <p>The first thing to recommend is, use Viet Hoangs installation guides and his scrips, there are things like trusted itentity server certs which and needed for the commerce install that Sitecores default installation for 9.1.1 does not have:</p> -<ul> -<li><a href="https://buoctrenmay.com/2019/04/06/sitecore-xp-9-1-update-1-step-by-step-install-guide-on-your-machine/" title="Sitecore XP 9.1 Update 1 – Step by step Install Guide on your machine" target="_blank" rel="noopener">Sitecore XP 9.1 Update 1 – Step by step Install Guide on your machine</a> - first install SC 9.1 Update 1</li> -<li><a href="https://buoctrenmay.com/2019/04/18/sitecore-commerce-9-1-initial-release-step-by-step-install-guide-on-your-machine/" title="Sitecore Commerce 9.1 Initial Release – Step by step Install Guide on your machine" target="_blank" rel="noopener">Sitecore Commerce 9.1 Initial Release – Step by step Install Guide on your machine</a></li> -</ul> -<h1 id="Sitecore-9-1-update-1-issues"><a href="#Sitecore-9-1-update-1-issues" class="headerlink" title="Sitecore 9.1 update 1 issues"></a>Sitecore 9.1 update 1 issues</h1> - - - - - - - - - - - - -
- - - Sitecore wish list - - http://sitecoresource.com/2019/04/09/sitecore-wish-list/ - 2019-04-08T23:00:00.000Z - 2019-04-11T00:16:09.837Z - - sitecore angel

This post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between.
Please feel free to comment below or email me on rdias@1digit.co.uk if you want me to add something to this list, correct me or let me know if a wish has been granted.

Features

Workflow & Workbox

I’ve been working with Sitecore since version 5.3 and I must say that the workbox seems to have hardly changed.
We are selling Sitecore to clients with thousands of content items, globally distributed authoring teams and this content is often constantly changing. The current workbox isn’t suitable for large volumes of content and authors are often requesting to bypass the Sitecore workflow altogether which is a very bad thing.
Start thinking about:

  • Redoing the UI to make approving large numbers of content realistic
  • Better methods of grouping content and assiging to individual approvers
  • Using the search index to power the new workflow UI
  • SXA is out, we can start approving partial designs/ composites etc as a whole

Media cropping OTB

One of the biggest issues we see on many Sitecore websites is the fact that content authors seem to upload and use very large (200KB<) images on their site. They often allocate for the best looking image on Macbook Pro Retina screens without any notion of what this would do to a mobile site for example.
Larger page weights also get penalised by google so this is another loss.

Sitecore has a great media processing pipeline which will let you pass in parameters for width and height, you can use this to resize images and you can set the process quality to around 75 to get really good image compression.

The problem is that most websites need to have different aspect ratios for an individual image and simply resizing will not do, we need to be able to crop and optimize.

Sitecore Modules

There is a nice tool in the marketplace now:

  • Image field with cropping, this needs some tweaking for us to define a fixed/limited number of crops per site, otherwise it does a great job.

DAM’s (Digital Asset Management)

There are DAM integrations like Digizuite (which at the time of writing has the most complete DAM integration with Sitecore) and Sitecore has recently acquired Stylelabs (which will do the job). Both of these have cropping functionality (and much more), the problem is that that these are paid services and have a lot more functionality and a pricetag to match.

Sitecore should have a middle-ground solution that comes with the core platform.

Options for hosting media externally

Although using a DAM solves this problem, we should be able to select more than 2 options for storing media (Blob, File system) by default.

I’ve worked with clients who are starting to have huge Master and Web Db’s (> 20GB) and 95% of the space is used up by media blobs. Moving these externally would not only allow us more flexibility for backingup/restoring and moving DB’s around, it can also prove invaluable when we have downtime because of deployment issues, sync issues, publishing issues where we would need to restore our web DB’s ASAP.

Thanks to Kate Orlova we’ve got a nice module which I hope Sitecore adopts:
External asset management in Sitecore. I’ve not used this personally but it looks nice and clean after having a browse of the code and its a Helix foundation project to boot!
This can easily be adpated for multiple DFS’s and cloud hosting providers.

Personalisation with CDN

At the moment Sitecore does all of its personalisation on the client side unless you start using some JSS functionality.
If you’re a client with a global presense (and there are a lot of these) who needs to cover more than one geographical region and don’t want to spend large sums on a geographically distributed CD node system then you will most likely be using a CDN like Akamai, Cloudlare or any number of players.
If we want to make use of Sitecores’ rich personalisation and analytics we won’t be able to edge cache the actual documents (Media or any other assets are not an issue). If we edge cache the document then the persona profiling won’t work nor will other personalisation functionality.
Sitecore needs to move personalisation and content profiling to the client side so that working with CDN’s won’t hinder any Sitecore functionality.

Development

Async Sitecore Controllers

Please please can we have async controllers? the ability to mark renderings as async would be fantastic, this means non-essential renderings can be loaded asynctonously without our pages needing to ‘wait’ for them. The sooner the server can respond with the DOM the better.

1
public async Task<ActionResult> MarketingTile()

Here is a nice article about how async methods work in ASP.NET.

Documentation

Better scaling guidelines

It would be great to see more guidelines on how to horizontally scale a solution so that we can span multiple geographical datacentres.
Sitecore has provided some documentation on clustering and geographic distribution which shows the elements we would need for something like this but it’s all very high level:

Each Content Delivery (CD) cluster which should be in its own data canter should have its own

  • Session State DB
  • Web DB
  • Core DB
    Sitecore horizontal web cluster

So we can make some assumptions, that we have a load balancing strategy that sends visitors to their own cluster based on reverse GeoIP lookup.
What will we be sacrificing for this type of configuration? for example if we rely on the new Identity Server, this isn’t built for multi-geography scale so its not an option.
We can’t have extranet users in the CoreDb anymore, so what is the alternative soluiton?
What are the implications on upgrading Sitecore?

Examples

What can Sitecore provide in terms of examples, tutorials and demo enviornments?

Helix & Habitat ✔

This was going to be about providing better Helix project examples than Habitat. Luckily, this is going to happen already as announced by Peter Brinkman at Sugcon London 2019.
There will be 3 new demo environments released (with source code) for small, medium and enterprise scale Sitecore Helix solutions!

]]>
- - - - This is a master list of features/ upgrades/ documentation that we wish Sitecore would have - - - - - - - - - - - - - - - - - - - - -
- -
diff --git a/categories/Sitecore-Commerce-9-1/index.html b/categories/Sitecore-Commerce-9-1/index.html deleted file mode 100644 index 669db5b..0000000 --- a/categories/Sitecore-Commerce-9-1/index.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - - - Category: Sitecore Commerce 9.1 | Sitecore Source - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
- - - -
- -
-
-
- -

- - Some issues and solutions I faced when installing Sitecore commerce 9.1 with Sitecore 9.1.1 (9.1 Update 1) - -

- - - - - - -
-
-

The first thing to recommend is, use Viet Hoangs installation guides and his scrips, there are things like trusted itentity server certs which and needed for the commerce install that Sitecores default installation for 9.1.1 does not have:

- -

Sitecore 9.1 update 1 issues

- - -
- Read More -
- - - - - -
-
-
- -
- - -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - diff --git a/categories/Sitecore-Features/Sitecore/index.html b/categories/Sitecore-Features/Sitecore/index.html deleted file mode 100644 index 14546a3..0000000 --- a/categories/Sitecore-Features/Sitecore/index.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - - - - Category: Sitecore | Sitecore Source - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
- - - -
- -
-
-
- -

- - Sitecore wish list - -

- - - - - - -
-
-

sitecore angel

-

This post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between.
Please feel free to comment below or email me on rdias@1digit.co.uk if you want me to add something to this list, correct me or let me know if a wish has been granted.
- - -

- Read More -
- - - - - -

-
-
- -
- - -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - diff --git a/categories/Sitecore-Features/index.html b/categories/Sitecore-Features/index.html deleted file mode 100644 index 32a0076..0000000 --- a/categories/Sitecore-Features/index.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - - - - Category: Sitecore Features | Sitecore Source - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
- - - -
- -
-
-
- -

- - Sitecore wish list - -

- - - - - - -
-
-

sitecore angel

-

This post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between.
Please feel free to comment below or email me on rdias@1digit.co.uk if you want me to add something to this list, correct me or let me know if a wish has been granted.
- - -

- Read More -
- - - - - -

-
-
- -
- - -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - diff --git a/content.json b/content.json deleted file mode 100644 index 9e2961c..0000000 --- a/content.json +++ /dev/null @@ -1 +0,0 @@ -{"pages":[{"title":"About","permalink":"http://sitecoresource.com/about/index.html","text":"I’ve been working with Sitecore as a technology since version 5.3 was launched. I’ve moved on to architecting some of the largest Sitecore solutions in the UK including hsbc.com, Euromoney Plc, Universal Music and ASOS.com and I started this blog because it’s time to start sharing some of the things I’ve learnt over the last 12 years. LinkedInThings I enjoy considerably more than coding stuff: !"}],"posts":[{"title":"Some issues and solutions I faced when installing Sitecore commerce 9.1 with Sitecore 9.1.1 (9.1 Update 1)","permalink":"http://sitecoresource.com/2019/04/17/sitecore-xp-9-1-update-1-and-sitecore-commerce-9-1-installation-issues/","text":"The first thing to recommend is, use Viet Hoangs installation guides and his scrips, there are things like trusted itentity server certs which and needed for the commerce install that Sitecores default installation for 9.1.1 does not have: Sitecore XP 9.1 Update 1 – Step by step Install Guide on your machine - first install SC 9.1 Update 1 Sitecore Commerce 9.1 Initial Release – Step by step Install Guide on your machine Sitecore 9.1 update 1 issues license.xml has not expiredYou will see issues like:12Install-SitecoreConfiguration : Failed to start service 'Sitecore XConnect Search Indexer -sc911.xconnect.local-IndexWorker (sc911.xconnect.local-IndexWorker)'. Once the above error was sorted then I got the failiure below: 12Install-SitecoreConfiguration : Failed to start service 'Sitecore Marketing Automation Engine -sc911.xconnect.local-MarketingAutomationService (sc911.xconnect.local-MarketingAutomationService)'. Did and uninstall an reinstall and still no luck. It looks like a license file issue again, I made sure it’s the correct license, made sure all host entries and certs were deleted via the cert MMS and restarted the machine, kicked off the installation and everything worked this time! Sitecore 9.1 Commerce installMake sure your Identity server cert is trustedYou need to make sure that you don’t see any SSL validation error when navigating to the https:// URL of your identity server. If you have an error, then go back to you SC 9.1 Update 1 install and sort this out first. If you’re seeing this, then your commerce installation will not complete:Make sure the SSL cert is trusted: No storefront site?Don’t use the latest version of powershell (5.0), Viet Hoang mentions this in his blog. As far as I am concernted, Powershell Extenstion 4.7.2 is mandatory for a SC 9.1 Commerce install. How long does the install take to complate?It took my i7 18GB RAM SSD laptop almost an hour to complete:"},{"title":"Sitecore wish list","permalink":"http://sitecoresource.com/2019/04/09/sitecore-wish-list/","text":"This post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between.Please feel free to comment below or email me on rdias@1digit.co.uk if you want me to add something to this list, correct me or let me know if a wish has been granted. FeaturesWorkflow & WorkboxI’ve been working with Sitecore since version 5.3 and I must say that the workbox seems to have hardly changed.We are selling Sitecore to clients with thousands of content items, globally distributed authoring teams and this content is often constantly changing. The current workbox isn’t suitable for large volumes of content and authors are often requesting to bypass the Sitecore workflow altogether which is a very bad thing.Start thinking about: Redoing the UI to make approving large numbers of content realistic Better methods of grouping content and assiging to individual approvers Using the search index to power the new workflow UI SXA is out, we can start approving partial designs/ composites etc as a whole Media cropping OTBOne of the biggest issues we see on many Sitecore websites is the fact that content authors seem to upload and use very large (200KB<) images on their site. They often allocate for the best looking image on Macbook Pro Retina screens without any notion of what this would do to a mobile site for example.Larger page weights also get penalised by google so this is another loss. Sitecore has a great media processing pipeline which will let you pass in parameters for width and height, you can use this to resize images and you can set the process quality to around 75 to get really good image compression. The problem is that most websites need to have different aspect ratios for an individual image and simply resizing will not do, we need to be able to crop and optimize. Sitecore ModulesThere is a nice tool in the marketplace now: Image field with cropping, this needs some tweaking for us to define a fixed/limited number of crops per site, otherwise it does a great job. DAM’s (Digital Asset Management)There are DAM integrations like Digizuite (which at the time of writing has the most complete DAM integration with Sitecore) and Sitecore has recently acquired Stylelabs (which will do the job). Both of these have cropping functionality (and much more), the problem is that that these are paid services and have a lot more functionality and a pricetag to match. Sitecore should have a middle-ground solution that comes with the core platform. Options for hosting media externallyAlthough using a DAM solves this problem, we should be able to select more than 2 options for storing media (Blob, File system) by default. I’ve worked with clients who are starting to have huge Master and Web Db’s (> 20GB) and 95% of the space is used up by media blobs. Moving these externally would not only allow us more flexibility for backingup/restoring and moving DB’s around, it can also prove invaluable when we have downtime because of deployment issues, sync issues, publishing issues where we would need to restore our web DB’s ASAP. Thanks to Kate Orlova we’ve got a nice module which I hope Sitecore adopts:External asset management in Sitecore. I’ve not used this personally but it looks nice and clean after having a browse of the code and its a Helix foundation project to boot!This can easily be adpated for multiple DFS’s and cloud hosting providers. Personalisation with CDNAt the moment Sitecore does all of its personalisation on the client side unless you start using some JSS functionality.If you’re a client with a global presense (and there are a lot of these) who needs to cover more than one geographical region and don’t want to spend large sums on a geographically distributed CD node system then you will most likely be using a CDN like Akamai, Cloudlare or any number of players.If we want to make use of Sitecores’ rich personalisation and analytics we won’t be able to edge cache the actual documents (Media or any other assets are not an issue). If we edge cache the document then the persona profiling won’t work nor will other personalisation functionality.Sitecore needs to move personalisation and content profiling to the client side so that working with CDN’s won’t hinder any Sitecore functionality. DevelopmentAsync Sitecore ControllersPlease please can we have async controllers? the ability to mark renderings as async would be fantastic, this means non-essential renderings can be loaded asynctonously without our pages needing to ‘wait’ for them. The sooner the server can respond with the DOM the better.1public async Task<ActionResult> MarketingTile() Here is a nice article about how async methods work in ASP.NET. DocumentationBetter scaling guidelinesIt would be great to see more guidelines on how to horizontally scale a solution so that we can span multiple geographical datacentres.Sitecore has provided some documentation on clustering and geographic distribution which shows the elements we would need for something like this but it’s all very high level: Each Content Delivery (CD) cluster which should be in its own data canter should have its own Session State DB Web DB Core DB So we can make some assumptions, that we have a load balancing strategy that sends visitors to their own cluster based on reverse GeoIP lookup.What will we be sacrificing for this type of configuration? for example if we rely on the new Identity Server, this isn’t built for multi-geography scale so its not an option.We can’t have extranet users in the CoreDb anymore, so what is the alternative soluiton?What are the implications on upgrading Sitecore? ExamplesWhat can Sitecore provide in terms of examples, tutorials and demo enviornments? Helix & Habitat ✔This was going to be about providing better Helix project examples than Habitat. Luckily, this is going to happen already as announced by Peter Brinkman at Sugcon London 2019.There will be 3 new demo environments released (with source code) for small, medium and enterprise scale Sitecore Helix solutions!"}]} \ No newline at end of file diff --git a/db.json b/db.json new file mode 100644 index 0000000..29d4554 --- /dev/null +++ b/db.json @@ -0,0 +1 @@ +{"meta":{"version":1,"warehouse":"2.2.0"},"models":{"Asset":[{"_id":"source/CNAME","path":"CNAME","modified":0,"renderable":0},{"_id":"themes/material-flow/source/style.less","path":"style.less","modified":0,"renderable":1},{"_id":"source/images/avatar.jpg","path":"images/avatar.jpg","modified":0,"renderable":0},{"_id":"themes/material-flow/source/fonts/icomoon.eot","path":"fonts/icomoon.eot","modified":0,"renderable":1},{"_id":"themes/material-flow/source/fonts/icomoon.svg","path":"fonts/icomoon.svg","modified":0,"renderable":1},{"_id":"themes/material-flow/source/fonts/icomoon.ttf","path":"fonts/icomoon.ttf","modified":0,"renderable":1},{"_id":"themes/material-flow/source/fonts/selection.json","path":"fonts/selection.json","modified":0,"renderable":1},{"_id":"themes/material-flow/source/fonts/icomoon.woff","path":"fonts/icomoon.woff","modified":0,"renderable":1},{"_id":"themes/material-flow/source/js/app.js","path":"js/app.js","modified":0,"renderable":1},{"_id":"themes/material-flow/source/js/jquery.fitvids.js","path":"js/jquery.fitvids.js","modified":0,"renderable":1},{"_id":"themes/material-flow/source/js/search.js","path":"js/search.js","modified":0,"renderable":1},{"_id":"source/images/favicon.ico","path":"images/favicon.ico","modified":0,"renderable":0},{"_id":"source/images/logo.png","path":"images/logo.png","modified":0,"renderable":0},{"_id":"source/images/wishlist/sitecore-angel.png","path":"images/wishlist/sitecore-angel.png","modified":0,"renderable":0},{"_id":"source/images/wishlist/angel.png","path":"images/wishlist/angel.png","modified":1,"renderable":0}],"Cache":[{"_id":"source/CNAME","hash":"812489f6ea897a8653e285625fa72e1701c6a4e4","modified":1554720701946},{"_id":"themes/landscape/.gitignore","hash":"ea2b285a29690f1eabbad0f3a158e34e9ccd1d86","modified":1554719577136},{"_id":"themes/landscape/Gruntfile.js","hash":"412e30530784993c8997aa8b1319c669b83b91c2","modified":1554719577138},{"_id":"themes/landscape/LICENSE","hash":"82ce1e15ddeabeaaca60e2186b5a3ce42b1a9c49","modified":1554719577142},{"_id":"themes/landscape/README.md","hash":"67fedfb66304f103c412f6be110bf3c40c75d4ac","modified":1554719577143},{"_id":"themes/landscape/_config.yml","hash":"ce9d2939245209b8f5c5bbbdadc917d86057d032","modified":1554719577144},{"_id":"themes/landscape/package.json","hash":"6e567a9654e61eb3f548c75edef380c2e135c433","modified":1554719577200},{"_id":"source/_posts/hello-world.md","hash":"029f91fccbe8f87c0f3ea10c4042300d2fa7edc0","modified":1554719572240},{"_id":"themes/landscape/languages/de.yml","hash":"d45cea36c5c83d7d09afcd1c26fff4a4c513c25b","modified":1554719577146},{"_id":"themes/landscape/languages/default.yml","hash":"f26a34a7983d4bc17c65c7f0f14da598e62ce66d","modified":1554719577147},{"_id":"themes/landscape/languages/es.yml","hash":"e3b4937da4cd2d0393b8a0ba310e70fc605cc431","modified":1554719577148},{"_id":"themes/landscape/languages/fr.yml","hash":"8cb0fe4b6913b4d5b662cdd0108a923c90025f85","modified":1554719577148},{"_id":"themes/landscape/languages/ja.yml","hash":"3e2fedca096678c0c234ebffa4637828979296fa","modified":1554719577149},{"_id":"themes/landscape/languages/ko.yml","hash":"11330316e3c1262474a2b496e40dbc29f93fe01b","modified":1554719577150},{"_id":"themes/landscape/languages/nl.yml","hash":"3d82ec703d0b3287739d7cb4750a715ae83bfcb3","modified":1554719577151},{"_id":"themes/landscape/languages/no.yml","hash":"ddf2035e920a5ecb9076138c184257d9f51896a7","modified":1554719577152},{"_id":"themes/landscape/languages/pt.yml","hash":"ae2c61b30e638f74f1a42c9ce39ac08d063b30f5","modified":1554719577153},{"_id":"themes/landscape/languages/ru.yml","hash":"2a476b4c6e04900914c81378941640ac5d58a1f0","modified":1554719577154},{"_id":"themes/landscape/languages/zh-CN.yml","hash":"b057f389c6713010f97d461e48ec959b0b6f3b44","modified":1554719577155},{"_id":"themes/landscape/languages/zh-TW.yml","hash":"f5f0ca88185da7a8457760d84bf221781473bd7c","modified":1554719577155},{"_id":"themes/landscape/layout/archive.ejs","hash":"2703b07cc8ac64ae46d1d263f4653013c7e1666b","modified":1554719577193},{"_id":"themes/landscape/layout/category.ejs","hash":"765426a9c8236828dc34759e604cc2c52292835a","modified":1554719577194},{"_id":"themes/landscape/layout/index.ejs","hash":"aa1b4456907bdb43e629be3931547e2d29ac58c8","modified":1554719577195},{"_id":"themes/landscape/layout/layout.ejs","hash":"5d86bc48b0f1bdce9a2bb548c2f8e7a4f50d499a","modified":1554719577196},{"_id":"themes/landscape/layout/page.ejs","hash":"7d80e4e36b14d30a7cd2ac1f61376d9ebf264e8b","modified":1554719577197},{"_id":"themes/landscape/layout/post.ejs","hash":"7d80e4e36b14d30a7cd2ac1f61376d9ebf264e8b","modified":1554719577198},{"_id":"themes/landscape/layout/tag.ejs","hash":"eaa7b4ccb2ca7befb90142e4e68995fb1ea68b2e","modified":1554719577199},{"_id":"themes/landscape/scripts/fancybox.js","hash":"4c130fc242cf9b59b5df6ca5eae3b14302311e8c","modified":1554719577201},{"_id":"themes/landscape/layout/_partial/after-footer.ejs","hash":"5e3b70c028d518b8f765e29a5e2020e7ba6ed589","modified":1554719577157},{"_id":"themes/landscape/layout/_partial/archive-post.ejs","hash":"5062c723721d8497eebad372f57092ade45041f4","modified":1554719577159},{"_id":"themes/landscape/layout/_partial/footer.ejs","hash":"6faefe07f3d64e21c7743276e0f55ee1544f9d86","modified":1554719577167},{"_id":"themes/landscape/layout/_partial/article.ejs","hash":"5cf2b8a1148e6f8c4bd9ca9e3b84c7e5a59d56bc","modified":1554719577165},{"_id":"themes/landscape/layout/_partial/archive.ejs","hash":"017c412bd3d60d22e493f02918e436a32d96bb84","modified":1554719577164},{"_id":"themes/landscape/layout/_partial/gauges-analytics.ejs","hash":"ace3000bd3e01d03041d5be24f7640b6c003a5b5","modified":1554719577169},{"_id":"themes/landscape/layout/_partial/google-analytics.ejs","hash":"1ccc627d7697e68fddc367c73ac09920457e5b35","modified":1554719577171},{"_id":"themes/landscape/layout/_partial/head.ejs","hash":"a36cec48782782bac92622f369c750e5c7396510","modified":1554719577174},{"_id":"themes/landscape/layout/_partial/mobile-nav.ejs","hash":"347cf1befd2ea637c24bd5901929d8e36e359e75","modified":1554719577178},{"_id":"themes/landscape/layout/_partial/header.ejs","hash":"cf755454675d13a0813a922b575c06b6b74ab9fd","modified":1554719577175},{"_id":"themes/landscape/layout/_partial/sidebar.ejs","hash":"c70869569749a8f48cce202fa57926c06b55fdab","modified":1554719577188},{"_id":"themes/landscape/layout/_widget/archive.ejs","hash":"0fe1e52c291c9499bd05b966e0b9aac5be351c58","modified":1554719577190},{"_id":"themes/landscape/layout/_widget/category.ejs","hash":"866790acc13fed44b7ef74c3e19c300a3d6180d8","modified":1554719577190},{"_id":"themes/landscape/layout/_widget/recent_posts.ejs","hash":"16800f85ffb036d2644a26e02facd61acb3706e9","modified":1554719577191},{"_id":"themes/landscape/layout/_widget/tagcloud.ejs","hash":"7259c179aa0c41c02e467ad892292e90430aaabc","modified":1554719577192},{"_id":"themes/landscape/layout/_widget/tag.ejs","hash":"6017c54a8c3c8ff8db491cfbea3100c139da75d6","modified":1554719577192},{"_id":"themes/landscape/source/js/script.js","hash":"c0d368681c687258b628bacc84cc30d353de6d47","modified":1554719577278},{"_id":"themes/landscape/source/css/_extend.styl","hash":"8ab1ad313bd6707d248c5ca1ee9a5eab8d815e42","modified":1554719577202},{"_id":"themes/landscape/source/css/_variables.styl","hash":"57bb02270eef16b4823a64ba663ccf2f247f34e5","modified":1554719577220},{"_id":"themes/landscape/source/css/style.styl","hash":"4a3e64ee8dad5834860c30b4176882eff628ca6b","modified":1554719577240},{"_id":"themes/landscape/source/fancybox/blank.gif","hash":"2daeaa8b5f19f0bc209d976c02bd6acb51b00b0a","modified":1554719577241},{"_id":"themes/landscape/source/fancybox/fancybox_loading@2x.gif","hash":"273b123496a42ba45c3416adb027cd99745058b0","modified":1554719577243},{"_id":"themes/landscape/source/fancybox/fancybox_loading.gif","hash":"1a755fb2599f3a313cc6cfdb14df043f8c14a99c","modified":1554719577242},{"_id":"themes/landscape/source/fancybox/fancybox_overlay.png","hash":"b3a4ee645ba494f52840ef8412015ba0f465dbe0","modified":1554719577244},{"_id":"themes/landscape/source/fancybox/fancybox_sprite.png","hash":"17df19f97628e77be09c352bf27425faea248251","modified":1554719577244},{"_id":"themes/landscape/source/fancybox/fancybox_sprite@2x.png","hash":"30c58913f327e28f466a00f4c1ac8001b560aed8","modified":1554719577246},{"_id":"themes/landscape/source/fancybox/jquery.fancybox.css","hash":"2e54d51d21e68ebc4bb870f6e57d3bfb660d4f9c","modified":1554719577264},{"_id":"themes/landscape/source/fancybox/jquery.fancybox.js","hash":"58193c802f307ec9bc9e586c0e8a13ebef45d2f8","modified":1554719577271},{"_id":"themes/landscape/source/fancybox/jquery.fancybox.pack.js","hash":"2da892a02778236b64076e5e8802ef0566e1d9e8","modified":1554719577276},{"_id":"themes/landscape/layout/_partial/post/category.ejs","hash":"16128d2422645e18d1b6882d4c4df17d895bd76e","modified":1554719577180},{"_id":"themes/landscape/layout/_partial/post/date.ejs","hash":"947f513f7a85fbcf085624e46dc2ae6de8185eec","modified":1554719577180},{"_id":"themes/landscape/layout/_partial/post/gallery.ejs","hash":"b0bf3f5d923c261ca2b5fabab513f1ec2708c8ca","modified":1554719577181},{"_id":"themes/landscape/layout/_partial/post/tag.ejs","hash":"694b5101bcc44c9f9c1cc62e5ad2fdfb4b7c7a07","modified":1554719577185},{"_id":"themes/landscape/layout/_partial/post/nav.ejs","hash":"cbb3819ce512bd24db8bad41b8617d46eba82fdc","modified":1554719577184},{"_id":"themes/landscape/layout/_partial/post/title.ejs","hash":"d4a460a35e2112d0c7414fd5e19b3a16093f1caf","modified":1554719577188},{"_id":"themes/landscape/source/css/_partial/archive.styl","hash":"9e574d8eb1a5285ec3b4346607414770d2f7e0ff","modified":1554719577204},{"_id":"themes/landscape/source/css/_partial/article.styl","hash":"e291bc8c5f0c21080baa549d5d9ef2f39a871ea7","modified":1554719577205},{"_id":"themes/landscape/source/css/_partial/comment.styl","hash":"2834870661e490775f9154d71638bfdc72e640a6","modified":1554719577206},{"_id":"themes/landscape/source/css/_partial/footer.styl","hash":"6f7aa810f296d6a1a4486637b5a853d35a198938","modified":1554719577207},{"_id":"themes/landscape/source/css/_partial/header.styl","hash":"67e59feb18eee6026717cb440d86ab9551782628","modified":1554719577208},{"_id":"themes/landscape/source/css/_partial/highlight.styl","hash":"ac19f1621305ca9f6a7b74acd211a4c0d88690bd","modified":1554719577210},{"_id":"themes/landscape/source/css/_partial/mobile.styl","hash":"680c7b809b62cd3ad294e822793fbd0b1a32cc33","modified":1554719577211},{"_id":"themes/landscape/source/css/_partial/sidebar-aside.styl","hash":"1fb15f13ba70d5b954f62920c6b63d26e2fb2985","modified":1554719577212},{"_id":"themes/landscape/source/css/_partial/sidebar-bottom.styl","hash":"4132e25ba9680c4b911a01abc75f501cda3fa4f1","modified":1554719577213},{"_id":"themes/landscape/source/css/_partial/sidebar.styl","hash":"8d971a00e644a600179b04815688d188f094012e","modified":1554719577214},{"_id":"themes/landscape/source/css/_util/grid.styl","hash":"1aa883ab432d9e4139c89dcbd40ae2bd1528d029","modified":1554719577218},{"_id":"themes/landscape/source/css/_util/mixin.styl","hash":"429bad87fc156eacf226c5e35b0eafc277f2504b","modified":1554719577219},{"_id":"themes/landscape/source/css/fonts/FontAwesome.otf","hash":"b5b4f9be85f91f10799e87a083da1d050f842734","modified":1554719577222},{"_id":"themes/landscape/source/css/fonts/fontawesome-webfont.eot","hash":"7619748fe34c64fb157a57f6d4ef3678f63a8f5e","modified":1554719577224},{"_id":"themes/landscape/source/css/fonts/fontawesome-webfont.woff","hash":"04c3bf56d87a0828935bd6b4aee859995f321693","modified":1554719577232},{"_id":"themes/landscape/source/fancybox/helpers/fancybox_buttons.png","hash":"e385b139516c6813dcd64b8fc431c364ceafe5f3","modified":1554719577247},{"_id":"themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.css","hash":"6394c48092085788a8c0ef72670b0652006231a1","modified":1554719577248},{"_id":"themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.js","hash":"4c9c395d705d22af7da06870d18f434e2a2eeaf9","modified":1554719577252},{"_id":"themes/landscape/source/fancybox/helpers/jquery.fancybox-media.js","hash":"e14c32cc6823b81b2f758512f13ed8eb9ef2b454","modified":1554719577257},{"_id":"themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.css","hash":"b88b589f5f1aa1b3d87cc7eef34c281ff749b1ae","modified":1554719577258},{"_id":"themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.js","hash":"83cdfea43632b613771691a11f56f99d85fb6dbd","modified":1554719577263},{"_id":"themes/landscape/source/css/fonts/fontawesome-webfont.ttf","hash":"7f09c97f333917034ad08fa7295e916c9f72fd3f","modified":1554719577230},{"_id":"themes/landscape/source/css/fonts/fontawesome-webfont.svg","hash":"a275426daefd3716c53561fad121d258a7f05b47","modified":1554719577228},{"_id":"themes/landscape/source/css/images/banner.jpg","hash":"f44aa591089fcb3ec79770a1e102fd3289a7c6a6","modified":1554719577236},{"_id":"source/css/_variables.styl","hash":"8b63ea3c7199524b9a1541075c6f8fb2c0d0ea3d","modified":1554722746629},{"_id":"source/css/theme-styles.styl","hash":"60bd1d81601e423655e3536337ecadae78c5fe7b","modified":1554722746630},{"_id":"source/css/_partial/highlight.styl","hash":"05da1b8f4859761dc60bca40b8682f167e350742","modified":1554722746623},{"_id":"source/css/_util/grid.styl","hash":"1aa883ab432d9e4139c89dcbd40ae2bd1528d029","modified":1554722746627},{"_id":"source/css/_util/mixin.styl","hash":"429bad87fc156eacf226c5e35b0eafc277f2504b","modified":1554722746628},{"_id":"source/fancybox/blank.gif","hash":"2daeaa8b5f19f0bc209d976c02bd6acb51b00b0a","modified":1554722746631},{"_id":"source/fancybox/fancybox_loading.gif","hash":"1a755fb2599f3a313cc6cfdb14df043f8c14a99c","modified":1554722746632},{"_id":"source/fancybox/fancybox_loading@2x.gif","hash":"273b123496a42ba45c3416adb027cd99745058b0","modified":1554722746633},{"_id":"source/fancybox/fancybox_overlay.png","hash":"b3a4ee645ba494f52840ef8412015ba0f465dbe0","modified":1554722746634},{"_id":"source/fancybox/fancybox_sprite.png","hash":"17df19f97628e77be09c352bf27425faea248251","modified":1554722746635},{"_id":"source/fancybox/fancybox_sprite@2x.png","hash":"30c58913f327e28f466a00f4c1ac8001b560aed8","modified":1554722746636},{"_id":"source/fancybox/helpers/jquery.fancybox-buttons.css","hash":"6394c48092085788a8c0ef72670b0652006231a1","modified":1554722746638},{"_id":"source/fancybox/helpers/fancybox_buttons.png","hash":"e385b139516c6813dcd64b8fc431c364ceafe5f3","modified":1554722746637},{"_id":"source/fancybox/helpers/jquery.fancybox-buttons.js","hash":"4c9c395d705d22af7da06870d18f434e2a2eeaf9","modified":1554722746643},{"_id":"source/fancybox/helpers/jquery.fancybox-media.js","hash":"e14c32cc6823b81b2f758512f13ed8eb9ef2b454","modified":1554722746647},{"_id":"source/fancybox/helpers/jquery.fancybox-thumbs.css","hash":"b88b589f5f1aa1b3d87cc7eef34c281ff749b1ae","modified":1554722746649},{"_id":"source/fancybox/helpers/jquery.fancybox-thumbs.js","hash":"83cdfea43632b613771691a11f56f99d85fb6dbd","modified":1554722746654},{"_id":"source/js/script.js","hash":"c0d368681c687258b628bacc84cc30d353de6d47","modified":1554722746668},{"_id":"source/js/wow.min.js","hash":"6e686e8163cbffe4b3db652a9075c1b3da51f56e","modified":1554722746670},{"_id":"source/metronic/assets/corporate/css/custom.css","hash":"c917686e62fb84e599252c583c2c9d5982363411","modified":1554722746672},{"_id":"source/metronic/assets/corporate/css/style-responsive.css","hash":"1a4420dfd7724b636ff3fa209cad13ca4d47b118","modified":1554722746674},{"_id":"source/metronic/assets/corporate/css/style.css","hash":"5e3d338346957bb9081a076a60adbf8fc6838f71","modified":1554722746676},{"_id":"source/metronic/assets/corporate/css/themes/blue.css","hash":"d1bc8bbc4e4d04c83595411adbe9e94ad87ab229","modified":1554722746678},{"_id":"source/metronic/assets/corporate/css/themes/gray.css","hash":"cf2231e22c0b758919aff7eda0353cb7fb0ca4cc","modified":1554722746679},{"_id":"source/metronic/assets/corporate/css/themes/green.css","hash":"93b6e6a5eb69ad9667e8b97647791c5ab7e7b918","modified":1554722746681},{"_id":"source/metronic/assets/corporate/css/themes/red.css","hash":"24264c3a1e903b52afc7adfec0782338267f0b17","modified":1554722746683},{"_id":"source/metronic/assets/corporate/css/themes/orange.css","hash":"61f21223f7be8be19cf7b31d8ed0f70f3ffcd1e3","modified":1554722746682},{"_id":"source/metronic/assets/corporate/css/themes/turquoise.css","hash":"3cdc89f19a740ba0b9e0af44f0438d96e6739148","modified":1554722746684},{"_id":"source/metronic/assets/corporate/img/.DS_Store","hash":"50a55d094ed61646af29a87394df9701ea7db45b","modified":1554722746686},{"_id":"source/metronic/assets/corporate/img/blockquote-corner-another-color.png","hash":"7485e777c5175e0968a56d112cd9b2f7e2089393","modified":1554722746687},{"_id":"source/metronic/assets/corporate/img/blockquote-corner.png","hash":"a59d6332f3db40216628e5482b3e56caf47995fa","modified":1554722746688},{"_id":"source/metronic/assets/corporate/img/fa-angle-brands.png","hash":"b2c3639e2445c544c53ce9981f674896438c4928","modified":1554722746689},{"_id":"source/metronic/assets/corporate/img/fa-angles.png","hash":"7e838a543ac376dcb66f4f6630fbbbae7f9b9843","modified":1554722746690},{"_id":"source/metronic/assets/corporate/img/fa-angle-down-langs.png","hash":"d91dd1e54efdf27b550a3cbd1dad6aab932214b2","modified":1554722746690},{"_id":"source/metronic/assets/corporate/img/icon-color-close.png","hash":"45af6802afea21de1a5a871c20223cd7670bb991","modified":1554722746691},{"_id":"source/metronic/assets/corporate/img/icons/.DS_Store","hash":"df2fbeb1400acda0909a32c1cf6bf492f1121e07","modified":1554722746693},{"_id":"source/metronic/assets/corporate/img/icons/Thumbs.db","hash":"23a5bfd95f19950d56c6171988956d877cf118a0","modified":1554722746694},{"_id":"source/metronic/assets/corporate/img/icons/add-goods.png","hash":"b5bf5beec29d0b52530713f5714671f0a2e3a920","modified":1554722746695},{"_id":"source/metronic/assets/corporate/img/icons/del-goods.png","hash":"2848143fbc92004f03889bdb5b73b67e3772eb93","modified":1554722746695},{"_id":"source/metronic/assets/corporate/img/icons/search-icon.png","hash":"57c535a1f6179d2fbf68ff3296cad348c0bf4e5c","modified":1554722746696},{"_id":"source/metronic/assets/corporate/img/icons/shop-cart-icon.png","hash":"6bf1bb83b2452b18ee9c104800eb3af8a98a0d3f","modified":1554722746697},{"_id":"source/metronic/assets/corporate/img/icons/sidebar-toggle-icons.png","hash":"309aabd6c7eae573093248230aadd2151d0a1ba1","modified":1554722746698},{"_id":"source/metronic/assets/corporate/img/icons/toggler.png","hash":"41fa999538de6160dced3fd2c1c85accc456a230","modified":1554722746698},{"_id":"source/metronic/assets/corporate/img/icons/top-search-icon.png","hash":"0387c0ee18ab5aacddad08422b4d7b3e006f75dd","modified":1554722746699},{"_id":"source/metronic/assets/corporate/img/logos/0logo-blue-small.png","hash":"4bab54f8956fcc719612cb36def689cefdcbb8b4","modified":1554722746701},{"_id":"source/metronic/assets/corporate/img/logos/0logo-blue.png","hash":"d4c6b6037c443fff35270596c4febd32afaf0c74","modified":1554722746701},{"_id":"source/metronic/assets/corporate/img/logos/0logo-green.png","hash":"c1bdcf5077414fcf2c2c25f7232044cbb683e144","modified":1554722746702},{"_id":"source/metronic/assets/corporate/img/logos/0logo-orange.png","hash":"4b95aae390b93837753a6cf958551b51a1e4ef37","modified":1554722746702},{"_id":"source/metronic/assets/corporate/img/logos/Thumbs.db","hash":"d670b1710ba87e4187afb705d3b015a0e1820f37","modified":1554722746703},{"_id":"source/metronic/assets/corporate/img/logos/logo-corp-blue.png","hash":"f687ee432a711f056d3077eb8b2c3c1b7d041a4c","modified":1554722746704},{"_id":"source/metronic/assets/corporate/img/logos/logo-corp-gray.png","hash":"de3f4c1d02462e219dfd485f7981cb665e8712a8","modified":1554722746705},{"_id":"source/metronic/assets/corporate/img/logos/logo-corp-green.png","hash":"148df89354ac03f3a2495697a06bb58889850298","modified":1554722746705},{"_id":"source/metronic/assets/corporate/img/logos/logo-corp-orange.png","hash":"52bbb6c0ec73e0c6be2c2efa02efa6ebce1aa458","modified":1554722746706},{"_id":"source/metronic/assets/corporate/img/logos/logo-corp-red.png","hash":"36a3571955a7ec0d372464f7c8a13151ed143df7","modified":1554722746707},{"_id":"source/metronic/assets/corporate/img/logos/logo-corp-turquoise.png","hash":"b1ba7a4ab3129c95c230d8ba687b1905dbb1c30c","modified":1554722746707},{"_id":"source/metronic/assets/corporate/img/logos/logo-red.png","hash":"d17eaafabb2de6050bdcf6026b48cfa12f23f121","modified":1554722746708},{"_id":"source/metronic/assets/corporate/img/logos/logo-shop-gray.png","hash":"f30e94ee094a93451e6c6f9c4c0d3b290d2a1445","modified":1554722746709},{"_id":"source/metronic/assets/corporate/img/logos/logo-shop-green.png","hash":"6a6c5f08302b7de2d79ab3c72f6f1d2166eca93e","modified":1554722746710},{"_id":"source/metronic/assets/corporate/img/logos/logo-shop-orange.png","hash":"281284c8b2acc520533ae139189a0ed35edc2a78","modified":1554722746710},{"_id":"source/metronic/assets/corporate/img/logos/logo-shop-red.png","hash":"e920530b566b412102c0f42f9efcbada67871101","modified":1554722746711},{"_id":"source/metronic/assets/corporate/img/logos/logo-shop-blue.png","hash":"bd5232d5a521743b14624ec03d52ac2abe253874","modified":1554722746709},{"_id":"source/metronic/assets/corporate/img/logos/logo-shop-turquoise.png","hash":"f71757543f076872cbf2606359c75c5b0c157de7","modified":1554722746711},{"_id":"source/metronic/assets/corporate/img/logos/shop-logo-red.png","hash":"7915699fd562a3d7ab45c6795784514913270593","modified":1554722746712},{"_id":"source/metronic/assets/corporate/img/payments/MasterCard.jpg","hash":"429370e2266121bf0de567771e79f667449c557a","modified":1554722746714},{"_id":"source/metronic/assets/corporate/img/payments/PayPal.jpg","hash":"58e0cf94a51c4ab733bd249ebe0a08394998d53b","modified":1554722746715},{"_id":"source/metronic/assets/corporate/img/payments/Thumbs.db","hash":"25af857c7f7c0c1c63999a316a6b9a22e2e28ad1","modified":1554722746716},{"_id":"source/metronic/assets/corporate/img/payments/american-express.jpg","hash":"d8004628ff1f00edf9ad09bb4d9bb69cd1c3d789","modified":1554722746717},{"_id":"source/metronic/assets/corporate/img/payments/fa-angle-right-info.png","hash":"280070c036a8a6e5eb520259306aeb90353f9d11","modified":1554722746718},{"_id":"source/metronic/assets/corporate/img/payments/visa.jpg","hash":"d598d019c1ca2f6df90241d0f51c1bedb65ceca3","modified":1554722746719},{"_id":"source/metronic/assets/corporate/img/payments/western-union.jpg","hash":"75b0419d871879958c5c68aa10e2991f358ed28f","modified":1554722746720},{"_id":"source/metronic/assets/corporate/scripts/layout.js","hash":"6b9ef8f20169734d43428ed32a41c8c9df0b5e00","modified":1554722746728},{"_id":"source/metronic/assets/corporate/scripts/back-to-top.js","hash":"81772b9b9f4123b27a2462367ca7b0e7b4505272","modified":1554722746725},{"_id":"source/metronic/assets/pages/css/components.css","hash":"d1c363d886953f9c93eab4f63e8239dd2ddb05f0","modified":1554722746731},{"_id":"source/metronic/assets/pages/css/animate.css","hash":"619625d017eadd7f30156ae2237f23ae7cc3b68d","modified":1554722746730},{"_id":"source/metronic/assets/pages/css/gallery.css","hash":"5c212e8b346b6b8ee60015e02bee076e14ddbdc0","modified":1554722746732},{"_id":"source/metronic/assets/pages/img/fa-angle-brands.png","hash":"b2c3639e2445c544c53ce9981f674896438c4928","modified":1554722746764},{"_id":"source/metronic/assets/pages/img/icon-color-close.png","hash":"45af6802afea21de1a5a871c20223cd7670bb991","modified":1554722746804},{"_id":"source/metronic/assets/pages/img/fa-angles.png","hash":"7e838a543ac376dcb66f4f6630fbbbae7f9b9843","modified":1554722746764},{"_id":"source/metronic/assets/pages/img/careers/Thumbs.db","hash":"4a2803d7b7425c1c45f191580e267df19e0ec566","modified":1554722746747},{"_id":"source/metronic/assets/pages/img/brands/Thumbs.db","hash":"8d8f4bb5b6a66ac6106613e9b64591e233f63036","modified":1554722746739},{"_id":"source/metronic/assets/pages/img/brands/canon.jpg","hash":"4b1911e32f392792b91a47501915638fccac4894","modified":1554722746740},{"_id":"source/metronic/assets/pages/img/brands/esprit.jpg","hash":"1f88b04d85f9f7fcadc70b563d8ecbd2b0dfc210","modified":1554722746741},{"_id":"source/metronic/assets/pages/img/brands/next.jpg","hash":"9b2a4b16cd42f56ec2054c224f821f2a29271c81","modified":1554722746743},{"_id":"source/metronic/assets/pages/img/brands/gap.jpg","hash":"6886e01e44c255b12f7cd33d37e74a849b4d3dd9","modified":1554722746742},{"_id":"source/metronic/assets/pages/img/brands/puma.jpg","hash":"6df5ea44e8e56117480675360eb7418d3fe1d5b0","modified":1554722746745},{"_id":"source/metronic/assets/pages/img/brands/zara.jpg","hash":"0e3e79aa6e91d45fc36ccdb17abf25f52e72c2b9","modified":1554722746746},{"_id":"source/metronic/assets/pages/img/careers/careers.jpg","hash":"3be1b8b2b0dbf67a766994cace336806d07bec18","modified":1554722746749},{"_id":"source/metronic/assets/pages/img/clients/client_1.png","hash":"62dfb4329a8b29d4f40ffdd993d1103b4b37ae25","modified":1554722746752},{"_id":"source/metronic/assets/pages/img/clients/client_1_gray.png","hash":"e8a389ba8a8a992cc081293c96b121a5f274a614","modified":1554722746752},{"_id":"source/metronic/assets/pages/img/clients/client_2_gray.png","hash":"ac64cc96b0292d4899b0f0da12769fb57beb767a","modified":1554722746754},{"_id":"source/metronic/assets/pages/img/clients/client_2.png","hash":"b6d952551cdc8b644a5cf8025639f073081d9b4b","modified":1554722746753},{"_id":"source/metronic/assets/pages/img/clients/client_3.png","hash":"6816dc3daefa380f654ac74149bffb9491cd5f61","modified":1554722746754},{"_id":"source/metronic/assets/pages/img/clients/client_3_gray.png","hash":"2efe4ec6d10bd1e241540c862d7ff9730dd184e4","modified":1554722746756},{"_id":"source/metronic/assets/pages/img/clients/client_4_gray.png","hash":"c80e8d5f31bdefa532cc219c79994f3f9e847536","modified":1554722746757},{"_id":"source/metronic/assets/pages/img/clients/client_4.png","hash":"5f7eacdfb2ad92a27f65a6a42b072a220b627f18","modified":1554722746757},{"_id":"source/metronic/assets/pages/img/clients/client_5.png","hash":"e9a68d98371c57d8e3076859df0b91134607399a","modified":1554722746758},{"_id":"source/metronic/assets/pages/img/clients/client_5_gray.png","hash":"98a6a7f6685ee324518b341b69a31c62335d8c83","modified":1554722746759},{"_id":"source/metronic/assets/pages/img/clients/client_6.png","hash":"a8579b32bef881b9006985ab76441d2867956e9e","modified":1554722746759},{"_id":"source/metronic/assets/pages/img/clients/client_6_gray.png","hash":"befe50e9b9ebbfce4789d340e4586399284668a5","modified":1554722746760},{"_id":"source/metronic/assets/pages/img/clients/client_7.png","hash":"75784bc79c814ac97123257d67e96ed49a871632","modified":1554722746761},{"_id":"source/metronic/assets/pages/img/clients/client_7_gray.png","hash":"c301ef9a659c8877d970e6984bad6c808e71143e","modified":1554722746762},{"_id":"source/metronic/assets/pages/img/clients/client_8.png","hash":"ea9d3f181ce86f786738dfcd97abee6315512335","modified":1554722746762},{"_id":"source/metronic/assets/pages/img/clients/client_8_gray.png","hash":"5fbd00e9dd1501b02c86041a10623ab11f45bd99","modified":1554722746763},{"_id":"source/metronic/assets/pages/img/clients/Thumbs.db","hash":"9e6f79db42bd29479c085bbcea566d59f8315f85","modified":1554722746751},{"_id":"source/metronic/assets/pages/img/frontend-slider/bg1.jpg","hash":"200c78825091a4ddd1354ec0785e9fd503faaaad","modified":1554722746770},{"_id":"source/metronic/assets/pages/img/frontend-slider/bg1_BK.jpg","hash":"b53c73c652fd1d3006e951ef83740835b6331ffb","modified":1554722746771},{"_id":"source/metronic/assets/pages/img/frontend-slider/bg2_BK.jpg","hash":"7e586d3e361e06a0c654addf5610838b5e5c91ed","modified":1554722746775},{"_id":"source/metronic/assets/pages/img/frontend-slider/bg3.jpg","hash":"c4730e299653d740b542a070b537b2464cfc39d6","modified":1554722746776},{"_id":"source/metronic/assets/pages/img/frontend-slider/bg4.jpg","hash":"6a156b323a5528f9e086ee06f99a9910c1985b48","modified":1554722746777},{"_id":"source/metronic/assets/pages/img/frontend-slider/bg8.jpg","hash":"582477a340f2843e2c71b5e80e97bd57cd60835c","modified":1554722746780},{"_id":"source/metronic/assets/pages/img/frontend-slider/bg9_BK.jpg","hash":"f8c14d0f7638b39df34dc827b1c200183d150438","modified":1554722746783},{"_id":"source/metronic/assets/pages/img/frontend-slider/hint1-blue.png","hash":"de96fc77daab3b24e2bea494a9e4647ba8cdc9d0","modified":1554722746784},{"_id":"source/metronic/assets/pages/img/frontend-slider/hint1-green.png","hash":"5ce5fd426bf96c531449b5c8ade481445d727f36","modified":1554722746784},{"_id":"source/metronic/assets/pages/img/frontend-slider/hint1-red.png","hash":"0125b275438b1cc282591c227b6bbcbfd4126b58","modified":1554722746786},{"_id":"source/metronic/assets/pages/img/frontend-slider/hint1-orange.png","hash":"208fe7e5e16057a6a730fd0ae6dfe8a3f10d9d41","modified":1554722746785},{"_id":"source/metronic/assets/pages/img/frontend-slider/hint2-orange.png","hash":"7dd2b744ce6768f730cdc747af2db610b80061c8","modified":1554722746788},{"_id":"source/metronic/assets/pages/img/frontend-slider/hint2-blue.png","hash":"9324454ac7c17608a75a6f8d7ade2a7c35c2626a","modified":1554722746787},{"_id":"source/metronic/assets/pages/img/frontend-slider/hint2-green.png","hash":"d307b818380afc34e3e6c3ad9cc3b5adb5b331d3","modified":1554722746787},{"_id":"source/metronic/assets/pages/img/frontend-slider/hint2-red.png","hash":"6543a8ea9c379e2327d4e24b74625c7cd4a3cdae","modified":1554722746789},{"_id":"source/metronic/assets/pages/img/frontend-slider/ipad.png","hash":"872f73762c41b4c29f6f1a4b5a0386b37da72e28","modified":1554722746789},{"_id":"source/metronic/assets/pages/img/frontend-slider/iphone.png","hash":"a3ecbb30595752188d5baec409f84d17bc8d592d","modified":1554722746792},{"_id":"source/metronic/assets/pages/img/frontend-slider/bg2.jpg","hash":"1fb71fa8affc5a24216c42740497095e17fcf77c","modified":1554722746773},{"_id":"source/metronic/assets/pages/img/frontend-slider/bg5.jpg","hash":"863fa3d5b2d680c425567a0f46a3de98c1cf7417","modified":1554722746779},{"_id":"source/metronic/assets/pages/img/frontend-slider/bg9.jpg","hash":"20b2a5e4e7d2e27d6865c4c08079ae5116596089","modified":1554722746782},{"_id":"source/metronic/assets/pages/img/frontend-slider/ipadmini.png","hash":"676db738d9a4f7368546ff44292cb63fdf1c7234","modified":1554722746791},{"_id":"source/metronic/assets/pages/img/icons/Thumbs.db","hash":"95bf5c4c605cbc5691be85f86fa38b5e2ea9164b","modified":1554722746806},{"_id":"source/metronic/assets/pages/img/icons/.DS_Store","hash":"df2fbeb1400acda0909a32c1cf6bf492f1121e07","modified":1554722746806},{"_id":"source/metronic/assets/pages/img/icons/add-goods.png","hash":"b5bf5beec29d0b52530713f5714671f0a2e3a920","modified":1554722746807},{"_id":"source/metronic/assets/pages/img/icons/del-goods.png","hash":"2848143fbc92004f03889bdb5b73b67e3772eb93","modified":1554722746808},{"_id":"source/metronic/assets/pages/img/icons/shop-cart-icon.png","hash":"6bf1bb83b2452b18ee9c104800eb3af8a98a0d3f","modified":1554722746809},{"_id":"source/metronic/assets/pages/img/icons/search-icon.png","hash":"57c535a1f6179d2fbf68ff3296cad348c0bf4e5c","modified":1554722746808},{"_id":"source/metronic/assets/pages/img/icons/sidebar-toggle-icons.png","hash":"309aabd6c7eae573093248230aadd2151d0a1ba1","modified":1554722746809},{"_id":"source/metronic/assets/pages/img/icons/toggler.png","hash":"41fa999538de6160dced3fd2c1c85accc456a230","modified":1554722746810},{"_id":"source/metronic/assets/pages/img/icons/top-search-icon.png","hash":"0387c0ee18ab5aacddad08422b4d7b3e006f75dd","modified":1554722746811},{"_id":"source/metronic/assets/pages/img/index-sliders/Thumbs.db","hash":"03b4c74a367d2a3655ac1c464980f1a5ce12b13c","modified":1554722746812},{"_id":"source/metronic/assets/pages/img/index-sliders/slide1.jpg","hash":"f64e570ec238ae6cb40209235b9a26c262412fce","modified":1554722746813},{"_id":"source/metronic/assets/pages/img/index-sliders/slide3.jpg","hash":"1467ec5fbd35f3c85375621dc368453adba54c1f","modified":1554722746817},{"_id":"source/metronic/assets/pages/img/index-sliders/slide2.jpg","hash":"0e145ada70b1215bf2841fa0b9e7de7892b7e52c","modified":1554722746815},{"_id":"source/metronic/assets/pages/img/people/img1-large.jpg","hash":"1a3d35b9c50c92d9acd6bd9718aa87aec51cae52","modified":1554722746823},{"_id":"source/metronic/assets/pages/img/frontend-slider/thumbs/Thumbs.db","hash":"8175fb693095c11ff0d3e2701e125758d6d8bddc","modified":1554722746798},{"_id":"source/metronic/assets/pages/img/frontend-slider/thumbs/thumb1.jpg","hash":"8241425b7bd69f5ee8785e0c9bbbc7d158edf50e","modified":1554722746799},{"_id":"source/metronic/assets/pages/img/frontend-slider/thumbs/thumb2.jpg","hash":"91744d22bef3217e78d7f21cdee917e1640d67c7","modified":1554722746799},{"_id":"source/metronic/assets/pages/img/frontend-slider/thumbs/thumb3.jpg","hash":"d3c2ea8dcce87a2ea4e3b7fafa11bfd6f82bced8","modified":1554722746800},{"_id":"source/metronic/assets/pages/img/frontend-slider/thumbs/thumb4.jpg","hash":"55747d26d0bd31b6505bb27f67bfc2d4538eee2a","modified":1554722746801},{"_id":"source/metronic/assets/pages/img/frontend-slider/thumbs/thumb6.jpg","hash":"6092468bc74c317e6aec2fa08df88eeb25885610","modified":1554722746803},{"_id":"source/metronic/assets/pages/img/frontend-slider/thumbs/thumb7.jpg","hash":"d1bbe1499f9920c9b939976b43817f3536b8ea8c","modified":1554722746803},{"_id":"source/metronic/assets/pages/img/frontend-slider/thumbs/thumb5.jpg","hash":"ddce15df540dd5e7e5fb2f93406e727a9f6e54e6","modified":1554722746802},{"_id":"source/metronic/assets/pages/img/people/img1-small.jpg","hash":"1a3d35b9c50c92d9acd6bd9718aa87aec51cae52","modified":1554722746824},{"_id":"source/metronic/assets/pages/img/pics/img2-large.jpg","hash":"206eeddff176a3f4b6dfcfc40270835957d9baa7","modified":1554722746854},{"_id":"source/metronic/assets/pages/img/pics/img2-medium.jpg","hash":"206eeddff176a3f4b6dfcfc40270835957d9baa7","modified":1554722746857},{"_id":"source/metronic/assets/pages/img/pics/img1-medium.jpg","hash":"6e85389da58b14c2664d9cf83a1fe5b673fe5655","modified":1554722746853},{"_id":"source/metronic/assets/pages/img/pics/img2-medium_bk.jpg","hash":"54829e9874a460e4bcb7c4ee27ef4af07bc2d249","modified":1554722746859},{"_id":"source/metronic/assets/pages/img/pics/img1-large.jpg","hash":"411c1912f0d76fc787a4557ac64284cf3c323de6","modified":1554722746851},{"_id":"source/metronic/assets/pages/img/pics/img2-large_bk.jpg","hash":"650c7cd039a787499d9af39480f229bb8017970b","modified":1554722746856},{"_id":"source/metronic/assets/pages/img/pics/Thumbs.db","hash":"f5ba84966f13949b8703061173d9c7aba9b9a224","modified":1554722746848},{"_id":"source/metronic/assets/pages/img/social/aboutme.png","hash":"673d9d7681e5e7f7c43d03ae61a80f7870d96cd8","modified":1554722746867},{"_id":"source/metronic/assets/pages/img/social/amazon.png","hash":"b91ebbb983ac8840c506f1a611e2ac3aff076692","modified":1554722746867},{"_id":"source/metronic/assets/pages/img/social/behance.png","hash":"42f7a0664b364fd3e396fdea22878578916ef07e","modified":1554722746868},{"_id":"source/metronic/assets/pages/img/social/blogger.png","hash":"d5e5b4adc174e69ed2fe9c94c17d408c4269b243","modified":1554722746868},{"_id":"source/metronic/assets/pages/img/works/Thumbs.db","hash":"d36e05d3e6aaed07e397db5cd03ab39c5b8774ed","modified":1554722746890},{"_id":"source/metronic/assets/pages/img/works/img2.jpg","hash":"92fc4ad7a576188da021da3915cf24c98bb8a7f6","modified":1554722746894},{"_id":"source/metronic/assets/pages/img/works/img4.jpg","hash":"7c6d90b4dc5693ba0428e8636ead70bc67cd193c","modified":1554722746898},{"_id":"source/metronic/assets/pages/img/works/img3.jpg","hash":"a3c82755d6dd821d2e5efa905bea146b5e0f4703","modified":1554722746896},{"_id":"source/metronic/assets/pages/img/works/img5.jpg","hash":"8c2da5f34621ee7c9b1dbf9bf18bc5c1ad073e40","modified":1554722746899},{"_id":"source/metronic/assets/pages/img/works/img1.jpg","hash":"00aa9b5808f418df8b3009cd82b6f3ed56ac1b52","modified":1554722746892},{"_id":"source/metronic/assets/pages/img/works/img6.jpg","hash":"ef1681eea4ecfe04a3f612c23d2d020fa0dd58c2","modified":1554722746902},{"_id":"source/metronic/assets/pages/scripts/bs-carousel.js","hash":"13fc21cea63e388ef340299402218e2728c04bb9","modified":1554722746906},{"_id":"source/metronic/assets/pages/scripts/checkout.js","hash":"0befe305a502d4c08c952e70e16cbd1e46a12cca","modified":1554722746907},{"_id":"source/metronic/assets/pages/scripts/contact-us.js","hash":"1c6f63ee0f2e07584948f1b863c53c0fe3c72740","modified":1554722746908},{"_id":"source/metronic/assets/pages/scripts/portfolio.js","hash":"b9c142247275288b22c1d77744dc250f7d0ec065","modified":1554722746909},{"_id":"source/metronic/assets/plugins/excanvas.min.js","hash":"ae4ce1a2bfb06c82653633191b04a8969a946b6b","modified":1554722746966},{"_id":"source/metronic/assets/plugins/holder.js","hash":"7631c51037aa2c70319b128d6e7bf876647a7bdb","modified":1554722747131},{"_id":"source/metronic/assets/plugins/jquery.blockui.min.js","hash":"85a478afc9f58e970e46810ef2c2bed06ea1cd46","modified":1554722747151},{"_id":"source/metronic/assets/plugins/jquery.easing.js","hash":"ede7bc74e3a1f4d903a6ebf36032c411aa8ba39a","modified":1554722747155},{"_id":"source/metronic/assets/plugins/jquery-migrate.min.js","hash":"875bce76a77590c3c438bbc6e014b39c23c8c88d","modified":1554722747133},{"_id":"source/metronic/assets/plugins/jquery.parallax.js","hash":"3d631f51ed8a142c2cb4d83d622bf96815636a34","modified":1554722747179},{"_id":"source/metronic/assets/plugins/jquery.scrollTo.min.js","hash":"1746eba0698bedcab4bc3fc106c51da6bbaa1d65","modified":1554722747181},{"_id":"source/metronic/assets/plugins/moment.min.js","hash":"70cce52be68a52cc0ccf9b36c8dc63aafb17a289","modified":1554722747189},{"_id":"source/metronic/assets/plugins/respond.min.js","hash":"4656b715e3e4a9bb9706abbded24fb1ec5d2471f","modified":1554722747285},{"_id":"source/metronic/assets/plugins/jquery.cokie.min.js","hash":"1e51856ebaa80a68d3db9c3ff7d7a6908d87bbb5","modified":1554722747153},{"_id":"source/metronic/assets/plugins/jquery.min.js","hash":"a4837154098ac13ccd72e08fd25d7bcf76826986","modified":1554722747175},{"_id":"source/metronic/assets/plugins/bootstrap-touchspin/LICENSE.md","hash":"1d50ef278f89ef066442bd0ebeec345097812fda","modified":1554722746910},{"_id":"source/metronic/assets/plugins/bootstrap-touchspin/README.md","hash":"8398dd1511a9faf9f3137eaae436e0e77ad4584e","modified":1554722746912},{"_id":"source/metronic/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.css","hash":"daa5f49931e69deee652608e3a8643208cdd3dec","modified":1554722746913},{"_id":"source/metronic/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.js","hash":"274fa3f760ebd36ccf422b7e14b4c92045e96a14","modified":1554722746916},{"_id":"source/metronic/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.min.css","hash":"e250a89fa12fbabb95ebb210f39f3b5f762f1d39","modified":1554722746917},{"_id":"source/metronic/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.min.js","hash":"ef5d69be7e73c1ce0391374c0ecfbce5e1eda14e","modified":1554722746920},{"_id":"source/metronic/assets/plugins/fancybox/.gitattributes","hash":"672d3b5767e0eacd83bb41b188c913f2cf754793","modified":1554722746967},{"_id":"source/metronic/assets/plugins/fancybox/CHANGELOG.md","hash":"5eac0539f8a169170b943a7d409869b985fd295c","modified":1554722746968},{"_id":"source/metronic/assets/plugins/fancybox/CHANGELOG.txt","hash":"5eac0539f8a169170b943a7d409869b985fd295c","modified":1554722746970},{"_id":"source/metronic/assets/plugins/fancybox/README.md","hash":"ebaefb8b334a84dad30b8ef46ec968416aad0194","modified":1554722746976},{"_id":"source/metronic/assets/plugins/fancybox/README.txt","hash":"ebaefb8b334a84dad30b8ef46ec968416aad0194","modified":1554722746981},{"_id":"source/metronic/assets/plugins/jquery.min.map","hash":"8ba3fcc00250d861364f34632ac1f49da22a3e4c","modified":1554722747178},{"_id":"source/metronic/assets/plugins/bootstrap/css/bootstrap-theme.css","hash":"695d39e58c6376d82a7a8c1301d168ed938030d0","modified":1554722746922},{"_id":"source/metronic/assets/plugins/bootstrap/css/bootstrap-theme.css.map","hash":"abc2e3a1163de52378c71bb92d007c22abb0a393","modified":1554722746924},{"_id":"source/metronic/assets/plugins/bootstrap/css/bootstrap-theme.min.css","hash":"7542d3d260ae0e778798a2a6199e67ba964443ce","modified":1554722746929},{"_id":"source/metronic/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.eot","hash":"86b6f62b7853e67d3e635f6512a5a5efc58ea3c3","modified":1554722746937},{"_id":"source/metronic/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.ttf","hash":"44bc1850f570972267b169ae18f1cb06b611ffa2","modified":1554722746940},{"_id":"source/metronic/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff2","hash":"ca35b697d99cae4d1b60f2d60fcd37771987eb07","modified":1554722746944},{"_id":"source/metronic/assets/plugins/bootstrap/js/npm.js","hash":"0b9e83aa318b2b281c163a21246f576fb29e640f","modified":1554722746958},{"_id":"source/metronic/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff","hash":"278e49a86e634da6f2a02f3b47dd9d2a8f26210f","modified":1554722746942},{"_id":"source/metronic/assets/plugins/bootstrap/js/bootstrap.min.js","hash":"e45bf1054704a1fdfc4ee2713a16bf9283dea995","modified":1554722746957},{"_id":"source/metronic/assets/plugins/fancybox/demo/1_s.jpg","hash":"7331d8f057362dd1010309893d81d9fdb5519d30","modified":1554722746983},{"_id":"source/metronic/assets/plugins/fancybox/demo/2_b.jpg","hash":"d374396009087680112482ffcfaef4a3e85838a1","modified":1554722746984},{"_id":"source/metronic/assets/plugins/fancybox/demo/2_s.jpg","hash":"8d895d7597c81d513e02090da4d646d1b6946e14","modified":1554722746985},{"_id":"source/metronic/assets/plugins/fancybox/demo/3_b.jpg","hash":"08059c8d631ee0c1429e81e61ee15f899ee1471f","modified":1554722746986},{"_id":"source/metronic/assets/plugins/fancybox/demo/3_s.jpg","hash":"335e622f0253ab09cbf3fd6577a629367aa9ad47","modified":1554722746987},{"_id":"source/metronic/assets/plugins/bootstrap/css/bootstrap.min.css","hash":"f2cd0488a33734345987059e7c183ba88dd4c213","modified":1554722746935},{"_id":"source/metronic/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.svg","hash":"4dcf0ab896f5417047f881de91bad10dcbda48c6","modified":1554722746939},{"_id":"source/metronic/assets/plugins/bootstrap/js/bootstrap.js","hash":"dae0c2259a4888e3f49ba3d436678be254e7e9d1","modified":1554722746951},{"_id":"source/metronic/assets/plugins/fancybox/demo/1_b.jpg","hash":"f7953162f526e3fc1f37602b0aca0f544d96b095","modified":1554722746983},{"_id":"source/metronic/assets/plugins/bootstrap/css/bootstrap.css","hash":"5d44842f9d17404a1071757d31349a055b2241bc","modified":1554722746931},{"_id":"source/metronic/assets/plugins/bootstrap/css/bootstrap.css.map","hash":"16506513c5f3d95982e73fb6820cf3c4c58d6897","modified":1554722746933},{"_id":"source/metronic/assets/plugins/fancybox/source/blank.gif","hash":"2daeaa8b5f19f0bc209d976c02bd6acb51b00b0a","modified":1554722747022},{"_id":"source/metronic/assets/plugins/fancybox/source/fancybox_loading.gif","hash":"48673ea547f521de42a1a2057df6939cafda7ae5","modified":1554722747024},{"_id":"source/metronic/assets/plugins/fancybox/source/fancybox_overlay.png","hash":"b3a4ee645ba494f52840ef8412015ba0f465dbe0","modified":1554722747025},{"_id":"source/metronic/assets/plugins/fancybox/source/fancybox_sprite.png","hash":"17df19f97628e77be09c352bf27425faea248251","modified":1554722747025},{"_id":"source/metronic/assets/plugins/fancybox/source/jquery.fancybox.css","hash":"638e5a0b77cd85d24fd07d5fb4ec6f65827989f2","modified":1554722747044},{"_id":"source/metronic/assets/plugins/fancybox/source/jquery.fancybox.js","hash":"6cbc7397b1cbf2ec99a10630679c106359c16110","modified":1554722747049},{"_id":"source/metronic/assets/plugins/fancybox/source/jquery.fancybox.pack.js","hash":"c7f1901f5f5d944b0494e135c70ee1e8391c9406","modified":1554722747054},{"_id":"source/metronic/assets/plugins/fancybox/demo/4_s.jpg","hash":"f7ecbbd24aa0fde9fe70b86d2148f753229cb6ed","modified":1554722746989},{"_id":"source/metronic/assets/plugins/fancybox/demo/5_s.jpg","hash":"a0517fde348e6539420b3c4a6c80551d76730c2b","modified":1554722746991},{"_id":"source/metronic/assets/plugins/fancybox/demo/ajax.txt","hash":"c893575c5f1a1afdbb812193bd8c72d217c3991f","modified":1554722746994},{"_id":"source/metronic/assets/plugins/fancybox/demo/iframe.html","hash":"9d15443ffe82cfa83bf0e4f70f3e20bf305080e1","modified":1554722746995},{"_id":"source/metronic/assets/plugins/fancybox/demo/index.html","hash":"221be748661a0b72f9e5fdbae226a7778f4b7a7a","modified":1554722746998},{"_id":"source/metronic/assets/plugins/fancybox/lib/jquery.mousewheel-3.0.6.pack.js","hash":"5d6f224e3080fd4066f8ef5c63d3f467e9d29e66","modified":1554722747022},{"_id":"source/metronic/assets/plugins/fancybox/demo/4_b.jpg","hash":"9855aed7b58d5662229427c946801460f5664ffd","modified":1554722746988},{"_id":"source/metronic/assets/plugins/fancybox/demo/5_b.jpg","hash":"d6fdf06b8058a0ff5ce339313996b9ef220431bc","modified":1554722746990},{"_id":"source/metronic/assets/plugins/fancybox/lib/jquery-1.8.2.min.js","hash":"149b5180cb9de3f646fc26802440a6ac6e758d40","modified":1554722747017},{"_id":"source/metronic/assets/plugins/fancybox/source/helpers/fancybox_buttons.png","hash":"e385b139516c6813dcd64b8fc431c364ceafe5f3","modified":1554722747026},{"_id":"source/metronic/assets/plugins/fancybox/source/helpers/jquery.fancybox-buttons.css","hash":"cea56e2dbfe773468d8cd8c3506c76c76e179c37","modified":1554722747027},{"_id":"source/metronic/assets/plugins/fancybox/source/helpers/jquery.fancybox-buttons.js","hash":"3d6456755d5fc06dd379e03b172323e17432122b","modified":1554722747032},{"_id":"source/metronic/assets/plugins/fancybox/source/helpers/jquery.fancybox-media.js","hash":"6e6fa956bfa19d9360a8b7caf13753348916a684","modified":1554722747036},{"_id":"source/metronic/assets/plugins/fancybox/source/helpers/jquery.fancybox-thumbs.css","hash":"80af372f2dfb340bdb07abf24ed54df3497e0567","modified":1554722747037},{"_id":"source/metronic/assets/plugins/fancybox/source/helpers/jquery.fancybox-thumbs.js","hash":"d22b1629cb23a6181bebb70d0cf653ffe4b835c8","modified":1554722747042},{"_id":"source/metronic/assets/plugins/font-awesome/css/font-awesome.css","hash":"247b6f3b2b0e73d2a4a071a1d2d8415a9bede833","modified":1554722747059},{"_id":"source/metronic/assets/plugins/font-awesome/fonts/fontawesome-webfont.eot","hash":"3e63fc9b3de4580f1f3bec0631436f755b80f167","modified":1554722747068},{"_id":"source/metronic/assets/plugins/font-awesome/less/animated.less","hash":"472ec14f388c90a7201861e77faec317d038fd9c","modified":1554722747079},{"_id":"source/metronic/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff2","hash":"1075231650f579955905bb2f6527148a8e2b4b16","modified":1554722747078},{"_id":"source/metronic/assets/plugins/font-awesome/less/bordered-pulled.less","hash":"5bfdf58050202b4ee496c36f260335576d209437","modified":1554722747080},{"_id":"source/metronic/assets/plugins/font-awesome/less/core.less","hash":"f22a10452005d89f3d0725cb4ef07c1e6ba6f553","modified":1554722747081},{"_id":"source/metronic/assets/plugins/font-awesome/css/font-awesome.min.css","hash":"3e435d5167460aaf367836e1973e90a47039faea","modified":1554722747063},{"_id":"source/metronic/assets/plugins/font-awesome/less/fixed-width.less","hash":"a9552c8a91766a6d926c43c4c0f74acb62aaf719","modified":1554722747082},{"_id":"source/metronic/assets/plugins/font-awesome/less/font-awesome.less","hash":"9f7ea031ef3adc050a5c9f576c29fc40404d0cc6","modified":1554722747083},{"_id":"source/metronic/assets/plugins/font-awesome/less/icons.less","hash":"a2781555df6ee7035fd113fe7a2874ecdb01405f","modified":1554722747085},{"_id":"source/metronic/assets/plugins/font-awesome/less/larger.less","hash":"d9610d7f83b0aaf3fdd5fa048117bd8620adf346","modified":1554722747086},{"_id":"source/metronic/assets/plugins/font-awesome/less/list.less","hash":"2b203f3bacd6eaa58d0aa11efb9fb661b884eeb9","modified":1554722747086},{"_id":"source/metronic/assets/plugins/font-awesome/less/mixins.less","hash":"35b0901de30180934afba212f1216e6bf782b0ac","modified":1554722747087},{"_id":"source/metronic/assets/plugins/font-awesome/less/path.less","hash":"dce2ee8b14b3ded7583c474a4291a892d0430a4c","modified":1554722747091},{"_id":"source/metronic/assets/plugins/font-awesome/less/rotated-flipped.less","hash":"39ec6a3d98e5a55a2330935d139f95855c139dcf","modified":1554722747092},{"_id":"source/metronic/assets/plugins/font-awesome/less/stacked.less","hash":"ee10b7a0bc941f8d0bbd092d4178b9fae9f1661f","modified":1554722747093},{"_id":"source/metronic/assets/plugins/font-awesome/less/variables.less","hash":"b5a1f8761aec6a8d3bbf1041eafef68662d7b321","modified":1554722747094},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_animated.scss","hash":"c3d081abee1076d36a289afc6488e676bc59f023","modified":1554722747096},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_bordered-pulled.scss","hash":"9a1704661c59a71226fcc8884a4b3a204cb4fec9","modified":1554722747096},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_core.scss","hash":"dabd7809af3ba1e08d0874601a8ac4d144c1566c","modified":1554722747097},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_icons.scss","hash":"0faf35a62eb7af904f3cac308955dad36f345e79","modified":1554722747100},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_larger.scss","hash":"c5cf379c23025aa001f850bd560a87a92e4f711d","modified":1554722747100},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_list.scss","hash":"8e9c5708bd91364a749f93555ba65af3c49ff1a6","modified":1554722747102},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_mixins.scss","hash":"4d044510b2a643032d75d30d6adb19a2e0da3d32","modified":1554722747102},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_path.scss","hash":"011339ce07bb12a5736edd7fdbed0b7f3c63bf72","modified":1554722747106},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_rotated-flipped.scss","hash":"fd48d098af52ffff6f829e7f5a2250a9c3cfc87f","modified":1554722747107},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_stacked.scss","hash":"c4fe90e7781e8b229bf2657312ba61ecf1026cab","modified":1554722747108},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_fixed-width.scss","hash":"f4af333866ff3c0da59493fc7077965c6e9d46ac","modified":1554722747098},{"_id":"source/metronic/assets/plugins/font-awesome/scss/_variables.scss","hash":"ee1260d8b623c825f8608a55fe0e876e9448fa22","modified":1554722747109},{"_id":"source/metronic/assets/plugins/font-awesome/scss/font-awesome.scss","hash":"da37674e1df5382be525b11391d2b02e404e0712","modified":1554722747110},{"_id":"source/metronic/assets/plugins/font-awesome/fonts/FontAwesome.otf","hash":"cde9eb92c8a3ba23d648f76ea3931511f30813f4","modified":1554722747066},{"_id":"source/metronic/assets/plugins/font-awesome/fonts/fontawesome-webfont.ttf","hash":"9088143b19979779b2116cef38b661f72d982e19","modified":1554722747074},{"_id":"source/metronic/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff","hash":"56ce13e71c2150d81bc972940584915181bd6081","modified":1554722747076},{"_id":"source/metronic/assets/plugins/font-awesome/fonts/fontawesome-webfont.svg","hash":"0b42e5ee7daafb72b1237b9d5b7f5ab0775fffc7","modified":1554722747072},{"_id":"source/metronic/assets/plugins/gmaps/README.md","hash":"029bbdb9d9f3a861ef81ef40de1e21bbbd0c8f16","modified":1554722747112},{"_id":"source/metronic/assets/plugins/gmaps/gmaps.js","hash":"79f9f0e05184e16c20e08074af77522b9034ef12","modified":1554722747118},{"_id":"source/metronic/assets/plugins/gmaps/gmaps.min.js","hash":"7ed28e849058abc2a646308a1ace0c24664946ff","modified":1554722747126},{"_id":"source/metronic/assets/plugins/jquery-slimscroll/README.md","hash":"a1a2b89dadf655c69a117c2ee87f11b7efc68e29","modified":1554722747143},{"_id":"source/metronic/assets/plugins/jquery-slimscroll/jquery.slimscroll.js","hash":"f46b7f57b177bfc6d107ce23a94370eec2c6ebde","modified":1554722747146},{"_id":"source/metronic/assets/plugins/jquery-slimscroll/jquery.slimscroll.min.js","hash":"baeae91e66b56adf9b65d586efb90c231c35fe92","modified":1554722747147},{"_id":"source/metronic/assets/plugins/jquery-mixitup/README.md","hash":"5910ce4f1a2c098ca2061de35089faef7cbff285","modified":1554722747137},{"_id":"source/metronic/assets/plugins/jquery-slimscroll/slimScroll.jquery.json","hash":"036e884caad6bc372ec79e5098e89df6f645ba56","modified":1554722747148},{"_id":"source/metronic/assets/plugins/jquery-mixitup/bower.json","hash":"568ffb5686f689b9568a0830d36c5fd42d766279","modified":1554722747138},{"_id":"source/metronic/assets/plugins/jquery-mixitup/.gitignore","hash":"a573d32c8dc9ccd86d71501ede16ad4ea1253c97","modified":1554722747134},{"_id":"source/metronic/assets/plugins/jquery-mixitup/jquery.mixitup.min.js","hash":"d4db55da6b2bf45eed67c5ed53ec67eb06b1b5f7","modified":1554722747141},{"_id":"source/metronic/assets/plugins/jquery-mixitup/mixitup.jquery.json","hash":"535c89b95d2a2acc0d80fd52617bcadde608243a","modified":1554722747142},{"_id":"source/metronic/assets/plugins/owl.carousel/owl.carousel.min.js","hash":"36af2c0bc454462355584a535897ca5ec6371f3a","modified":1554722747204},{"_id":"source/metronic/assets/plugins/rateit/.DS_Store","hash":"ac69c3ac35909f2992261a69c0cfd52a74c78a39","modified":1554722747205},{"_id":"source/metronic/assets/plugins/owl.carousel/owl.carousel.js","hash":"eeaa5cf60cf55ebc95d98d4eccdadb439773ee77","modified":1554722747198},{"_id":"source/metronic/assets/plugins/owl.carousel/assets/owl.carousel.css","hash":"d2ec5b795a3f70ed6cd421554bf0ab3ab1b11cf0","modified":1554722747191},{"_id":"source/metronic/assets/plugins/rateit/example/example.htm","hash":"3939ea30251e5951ad1e203b29c24f9733c831c9","modified":1554722747237},{"_id":"source/metronic/assets/plugins/rateit/example/rateit.aspx","hash":"f5f2cb8c63a9cec54a22dae7d7f4870b8d1dcbc2","modified":1554722747238},{"_id":"source/metronic/assets/plugins/rateit/src/delete.gif","hash":"3edfcae20af124652a75a771cc2208cdd915881d","modified":1554722747274},{"_id":"source/metronic/assets/plugins/rateit/src/jquery.rateit.js","hash":"a118b83e51d98a5ec8ad434fe953aa3b4a44fdb9","modified":1554722747277},{"_id":"source/metronic/assets/plugins/rateit/src/jquery.rateit.min.js","hash":"d9cf7a0b74d835d0f7346c3ad391840fb5cc4585","modified":1554722747279},{"_id":"source/metronic/assets/plugins/rateit/src/jquery.rateit.min.js.map","hash":"fb2a804013954e8cf0e813b2ee4a0a8f60230310","modified":1554722747281},{"_id":"source/metronic/assets/plugins/rateit/src/rateit.css","hash":"467ce18fe689a4b8508f57ca15a9664046a7e939","modified":1554722747282},{"_id":"source/metronic/assets/plugins/rateit/src/star.gif","hash":"711ad24218082a6bb7c92230364169e09ed065aa","modified":1554722747283},{"_id":"source/metronic/assets/plugins/rateit/example/sh/shBrushCSharp.js","hash":"0fee1e695462305c40dd66c47957696f9a295256","modified":1554722747240},{"_id":"source/metronic/assets/plugins/rateit/example/sh/shBrushCss.js","hash":"424a28b99d017dfe5c06ec02b337c1bbd4457ce2","modified":1554722747243},{"_id":"source/metronic/assets/plugins/rateit/example/sh/shBrushJScript.js","hash":"6337b956cbc23e0469595bac135c15c6b1f065f6","modified":1554722747244},{"_id":"source/metronic/assets/plugins/rateit/example/sh/shBrushXml.js","hash":"7ffbca1a20fc1b77a3857bcbbdbdeedf6f2b746c","modified":1554722747245},{"_id":"source/metronic/assets/plugins/rateit/example/sh/shCore.css","hash":"d57c97c2c692a77209acf5b66ed9a81ff9138b6e","modified":1554722747246},{"_id":"source/metronic/assets/plugins/rateit/example/sh/shCore.js","hash":"68cafa7abb1d8359e017e637388bcf174bdd2cbc","modified":1554722747270},{"_id":"source/metronic/assets/plugins/rateit/example/sh/shCoreDefault.css","hash":"d35000c968a4d1b6b20eda2c550624966feb105a","modified":1554722747273},{"_id":"source/metronic/assets/plugins/rateit/example/content/antenna-black.png","hash":"7e595a1ce669898d5b39bf674aca7a4e520bf8eb","modified":1554722747206},{"_id":"source/metronic/assets/plugins/rateit/example/content/antenna-red.png","hash":"85e155cc43e4afbecdbdae4617d75744c9f7175d","modified":1554722747207},{"_id":"source/metronic/assets/plugins/rateit/example/content/antenna-yellow.png","hash":"6534845665c77b088756a4f0e9333559faa2043e","modified":1554722747224},{"_id":"source/metronic/assets/plugins/rateit/example/content/antenna.css","hash":"151a9c9bc4696e4081d95f79e830b3c9a6a73452","modified":1554722747225},{"_id":"source/metronic/assets/plugins/rateit/example/content/bigstars.css","hash":"ad38b6276655b6e01610470684fccf0dd462d71a","modified":1554722747226},{"_id":"source/metronic/assets/plugins/rateit/example/content/star-gold32.png","hash":"b8f38a5f2b51be196616d1e415a2fc097d09c1bd","modified":1554722747228},{"_id":"source/metronic/assets/plugins/rateit/example/content/star-red32.png","hash":"efcb8a6622c0a36e5cfcf8b3c724e7265ee902d0","modified":1554722747229},{"_id":"source/metronic/assets/plugins/rateit/example/content/star-black32.png","hash":"35f10e3b61106f7814b56f8b70b04b0c86f8115c","modified":1554722747227},{"_id":"source/metronic/assets/plugins/rateit/example/content/star-white32.png","hash":"addb08916a0c78c235ba0af7df83b33c7b2a28da","modified":1554722747229},{"_id":"source/metronic/assets/plugins/rateit/example/content/star_2.gif","hash":"a6cd8e4cb1a135106e44472bbe30b439ef38cdff","modified":1554722747230},{"_id":"source/metronic/assets/plugins/rateit/example/content/star_3.gif","hash":"7ea112cae1a8e11b3222df204311230ed13a6fc6","modified":1554722747231},{"_id":"source/metronic/assets/plugins/rateit/example/content/star_4.gif","hash":"472d5614e6614de91586b4adbff11c2085187506","modified":1554722747231},{"_id":"source/metronic/assets/plugins/simple-line-icons/License.txt","hash":"0f18f3480f87c4ea35b6cae171e0f07a5d68a800","modified":1554722747287},{"_id":"source/metronic/assets/plugins/simple-line-icons/Readme.txt","hash":"74309b831f8ff6577733167d99a96bae66e0b5a4","modified":1554722747289},{"_id":"source/metronic/assets/plugins/simple-line-icons/icons-lte-ie7.js","hash":"014b106bec2421fae5295f353bdbfa3be8ff40cf","modified":1554722747302},{"_id":"source/metronic/assets/plugins/simple-line-icons/simple-line-icons.css","hash":"870001c82aa9395648ceb88b10385d6ab912a774","modified":1554722747306},{"_id":"source/metronic/assets/plugins/simple-line-icons/simple-line-icons.min.css","hash":"befa20ea6b4311e2905f42b6c6550acbb9bb2a20","modified":1554722747311},{"_id":"source/metronic/assets/plugins/simple-line-icons/fonts/Simple-Line-Icons.eot","hash":"b0a7481e951313c07727c5667093361fe8711165","modified":1554722747294},{"_id":"source/metronic/assets/plugins/simple-line-icons/fonts/Simple-Line-Icons.ttf","hash":"75ae9f188ccd47c61bb0e67c5317912fc5f4dfd7","modified":1554722747298},{"_id":"source/metronic/assets/plugins/simple-line-icons/fonts/Simple-Line-Icons.woff","hash":"c5b25a1cf3a44813208a744d2d9aa83e464a3a33","modified":1554722747300},{"_id":"source/metronic/assets/plugins/simple-line-icons/fonts/Simple-Line-Icons.dev.svg","hash":"c03dba612bd1142ff5a7f6e60b3da32c5eed47a1","modified":1554722747293},{"_id":"source/metronic/assets/plugins/simple-line-icons/fonts/Simple-Line-Icons.svg","hash":"1c11d1c9817bc0776f2d4797ad919b0db50fa530","modified":1554722747297},{"_id":"source/metronic/assets/plugins/uniform/README.md","hash":"f3ee5069e462d294ad812d05b7b2b18b67533a36","modified":1554722747317},{"_id":"source/metronic/assets/plugins/uniform/jquery.uniform.js","hash":"15911595b9c0d094b7783e7399df02085039740f","modified":1554722747328},{"_id":"source/metronic/assets/plugins/zoom/jquery.zoom.js","hash":"4a0984162de657ea7dda36d141f5fd36fb3e35c8","modified":1554722747335},{"_id":"source/metronic/assets/plugins/uniform/jquery.uniform.min.js","hash":"ef3a49fe1bcf31cca95cdee5563928a850a1b154","modified":1554722747332},{"_id":"source/metronic/assets/plugins/zoom/jquery.zoom.min.js","hash":"a89ac2c3501bebe8a5f9bf16e92d612cf35df24c","modified":1554722747337},{"_id":"source/metronic/assets/plugins/smooth-scroll/smooth-scroll.js","hash":"f65bf527bd60c5de087c15f8a00190d9fb8588ff","modified":1554722747314},{"_id":"source/metronic/assets/plugins/uniform/images/bg-input-focus.png","hash":"b5b493cfde89fa9c860bd056a7b133545c587220","modified":1554722747322},{"_id":"source/metronic/assets/plugins/uniform/images/sprite.png","hash":"6ff6e5ef9f45596fc66c1159f288778c62fcab66","modified":1554722747324},{"_id":"source/metronic/assets/plugins/uniform/images/sprite_original.png","hash":"2bb16c665960ae9b794b2d91bdaddd673a47d19f","modified":1554722747325},{"_id":"source/metronic/assets/plugins/uniform/images/bg-input.png","hash":"1b8efcb2b60f480b9ff6d890f04aab5635a58096","modified":1554722747323},{"_id":"source/metronic/assets/plugins/uniform/css/uniform.default.scss","hash":"006860c48f00ce05a0e3f78c4fb6a26c6bae7116","modified":1554722747321},{"_id":"source/metronic/assets/plugins/uniform/css/uniform.default.min.css","hash":"61accee0e61cb5c9d3706cb3ca00b9e5a57d74e6","modified":1554722747320},{"_id":"source/metronic/assets/plugins/uniform/css/uniform.default.css","hash":"30813abe85d5e8150ae8e551e9829f3b3e2ea2e0","modified":1554722747319},{"_id":"source/asset1.jpg","hash":"304ba161c1c1b2c199c595b0e7ff85a1c1234e0b","modified":1554722746619},{"_id":"source/asset1.png","hash":"37c7c375fae77981a7ea195f24f8dcb6e4a3c710","modified":1554722746620},{"_id":"source/asset3.jpg","hash":"3c8df6b44129de467d170bee49fa982687927dad","modified":1554722746621},{"_id":"source/fancybox/jquery.fancybox.pack.js","hash":"2da892a02778236b64076e5e8802ef0566e1d9e8","modified":1554722746666},{"_id":"source/fancybox/jquery.fancybox.js","hash":"58193c802f307ec9bc9e586c0e8a13ebef45d2f8","modified":1554722746661},{"_id":"source/fancybox/jquery.fancybox.css","hash":"2e54d51d21e68ebc4bb870f6e57d3bfb660d4f9c","modified":1554722746655},{"_id":"source/metronic/assets/pages/css/slider.css","hash":"9282a2517978b7f0f0e90a2521d631367a1fe759","modified":1554722746735},{"_id":"source/metronic/assets/pages/css/style-shop.css","hash":"6e89d3392934aa84c9998d147a7e1d23027bd156","modified":1554722746736},{"_id":"source/metronic/assets/pages/css/portfolio.css","hash":"1aa1f38abe0f5ff7ffec46497a7881b75d855147","modified":1554722746733},{"_id":"source/metronic/assets/corporate/img/Thumbs.db","hash":"194b32b86267139899ab01345b8ba60ae06de87c","modified":1554722746687},{"_id":"source/metronic/assets/corporate/img/layerslider-arrows.png","hash":"5530adfbd652edb0932da09b1cfce9fdda0f3e5f","modified":1554722746700},{"_id":"source/metronic/assets/corporate/img/icon-color.png","hash":"c0f2f54e54e69739169008b47fa68d3113ac022a","modified":1554722746692},{"_id":"source/metronic/assets/corporate/img/new.png","hash":"ae1d48ff3b838920ca91fdd211c783db9606bca2","modified":1554722746713},{"_id":"source/metronic/assets/corporate/img/step3-angle-right.png","hash":"07f33ec5b461903c10f0f802d8f456a5c5514752","modified":1554722746722},{"_id":"source/metronic/assets/corporate/img/sale.png","hash":"18950bc092c08872f9f1654320796bb6e443f527","modified":1554722746721},{"_id":"source/metronic/assets/corporate/img/syncfusion-icons-white.png","hash":"2d1643cb046ed4f4763d2893aa539158faff9f21","modified":1554722746722},{"_id":"source/metronic/assets/corporate/img/syncfusion-icons.png","hash":"143c284a73e667043364608a66890e7a3041861a","modified":1554722746723},{"_id":"source/metronic/assets/corporate/img/up.png","hash":"07101a4bb8e4f16f091c1e744e7b5d4365cb2738","modified":1554722746723},{"_id":"source/metronic/assets/pages/img/Thumbs.db","hash":"169f41dd9818a89826aed5c074f5a2cd2df8e86d","modified":1554722746738},{"_id":"source/metronic/assets/pages/img/icon-color.png","hash":"c0f2f54e54e69739169008b47fa68d3113ac022a","modified":1554722746805},{"_id":"source/metronic/assets/pages/img/new.png","hash":"ae1d48ff3b838920ca91fdd211c783db9606bca2","modified":1554722746817},{"_id":"source/metronic/assets/pages/img/sale.png","hash":"18950bc092c08872f9f1654320796bb6e443f527","modified":1554722746865},{"_id":"source/metronic/assets/pages/img/step3-angle-right.png","hash":"07f33ec5b461903c10f0f802d8f456a5c5514752","modified":1554722746889},{"_id":"source/metronic/assets/pages/img/frontend-slider/iphone_left.png","hash":"7231a66f147bf75da8330abf8a516211949f8810","modified":1554722746794},{"_id":"source/metronic/assets/pages/img/frontend-slider/iphone_right.png","hash":"72e7e439773d83bf9f1fae1366be135093992310","modified":1554722746795},{"_id":"source/metronic/assets/pages/img/frontend-slider/mac.png","hash":"f101e03cfd92d747ef11d3a715d9decc6954a109","modified":1554722746796},{"_id":"source/metronic/assets/pages/img/frontend-slider/macbook.png","hash":"bb1df7c36f9eaa1c61472f80ed48abe05e020658","modified":1554722746797},{"_id":"source/metronic/assets/pages/img/people/img2-small.jpg","hash":"e0006b3d2ac01e505b217e457e61b629d4c129f3","modified":1554722746827},{"_id":"source/metronic/assets/pages/img/people/img4-large.jpg","hash":"19819b44144e625920ba04d137aaada63bc34762","modified":1554722746831},{"_id":"source/metronic/assets/pages/img/people/img3-large.jpg","hash":"565e05ece277b6e5739f47007908ab79953d6e87","modified":1554722746828},{"_id":"source/metronic/assets/pages/img/people/img2-large.jpg","hash":"e0006b3d2ac01e505b217e457e61b629d4c129f3","modified":1554722746826},{"_id":"source/metronic/assets/pages/img/people/img3-small.jpg","hash":"565e05ece277b6e5739f47007908ab79953d6e87","modified":1554722746830},{"_id":"source/metronic/assets/pages/img/people/img4-small.jpg","hash":"19819b44144e625920ba04d137aaada63bc34762","modified":1554722746833},{"_id":"source/metronic/assets/pages/img/people/img6-large.jpg","hash":"9f5715e65706055d121840678937f0344100d41c","modified":1554722746838},{"_id":"source/metronic/assets/pages/img/people/img6-small.jpg","hash":"9f5715e65706055d121840678937f0344100d41c","modified":1554722746840},{"_id":"source/metronic/assets/pages/img/people/img7-small.jpg","hash":"282645c6662734129fce6fb9f75ff807cbacb75c","modified":1554722746843},{"_id":"source/metronic/assets/pages/img/people/img7-large.jpg","hash":"282645c6662734129fce6fb9f75ff807cbacb75c","modified":1554722746841},{"_id":"source/metronic/assets/pages/img/people/img8-large.jpg","hash":"776eed046812df7039e53a193ad71ec7894a70be","modified":1554722746844},{"_id":"source/metronic/assets/pages/img/people/img8-small.jpg","hash":"776eed046812df7039e53a193ad71ec7894a70be","modified":1554722746845},{"_id":"source/metronic/assets/pages/img/social/Thumbs.db","hash":"871129142dba293b5d654db97ee874845b9b7975","modified":1554722746866},{"_id":"source/metronic/assets/pages/img/social/deviantart.png","hash":"4c29de0f311ce0b920883b6faab2715751b4225e","modified":1554722746870},{"_id":"source/metronic/assets/pages/img/social/dropbox.png","hash":"35623cd48b52cc455fd82f7f8a5a4dafeca916c2","modified":1554722746871},{"_id":"source/metronic/assets/pages/img/social/evernote.png","hash":"1d8bdbc33af47d9e11731034b84da7e1b7881301","modified":1554722746872},{"_id":"source/metronic/assets/pages/img/social/dribbble.png","hash":"0908c0f98760163f20a331555f3404d63b9c549d","modified":1554722746871},{"_id":"source/metronic/assets/pages/img/social/facebook.png","hash":"2f6279e40f80e5ef276123299a7f2a3670a27ca2","modified":1554722746873},{"_id":"source/metronic/assets/pages/img/social/flickr.png","hash":"034d05a68065219cbd7f9e0ff02f321a128dad2a","modified":1554722746873},{"_id":"source/metronic/assets/pages/img/social/foursquare.png","hash":"8caa0ec33a97a57a44c007f9a75503ce436652c2","modified":1554722746875},{"_id":"source/metronic/assets/pages/img/social/forrst.png","hash":"cbc62b4ce94f0f1ee2469a161cdb9a895f566d09","modified":1554722746874},{"_id":"source/metronic/assets/pages/img/social/github.png","hash":"171b7541184c21bc5038a509587df0792191fca0","modified":1554722746875},{"_id":"source/metronic/assets/pages/img/social/googleplus.png","hash":"26cea1f4f1226dd07065a4b60f5c2567a9935088","modified":1554722746876},{"_id":"source/metronic/assets/pages/img/social/gravatar.png","hash":"427ee182d41ac44b8ee35e52e6799a85fb10bee2","modified":1554722746877},{"_id":"source/metronic/assets/pages/img/social/instagram.png","hash":"166c62f1878940f3c41ae251bae4126f30ebc1a0","modified":1554722746877},{"_id":"source/metronic/assets/pages/img/social/jolicloud.png","hash":"16ffec7ed1b1d4063f399eb59b35d7ebad69c73e","modified":1554722746878},{"_id":"source/metronic/assets/pages/img/social/klout.png","hash":"dd177eae989eac3641cd7feb1de4a0b1088621b1","modified":1554722746878},{"_id":"source/metronic/assets/pages/img/social/last-fm.png","hash":"b74c833b98206b7369b3cd16101f5f0c37552726","modified":1554722746879},{"_id":"source/metronic/assets/pages/img/social/linkedin.png","hash":"84362c2106a279eee6ee6171d5537d323a094115","modified":1554722746879},{"_id":"source/metronic/assets/pages/img/social/pintrest.png","hash":"d02a66fa69e3626c4ca8e77f7aae05a1a40b9b1c","modified":1554722746881},{"_id":"source/metronic/assets/pages/img/social/myspace.png","hash":"64870b8978814528f165cbe316c0b4af0f25496b","modified":1554722746880},{"_id":"source/metronic/assets/pages/img/social/picasa.png","hash":"9d77c1f7e0516186d3ede8b3fe6b36187e44de8c","modified":1554722746881},{"_id":"source/metronic/assets/pages/img/social/quora.png","hash":"33101176ea7680f3730b278ac1308ec89d088218","modified":1554722746882},{"_id":"source/metronic/assets/pages/img/social/reddit.png","hash":"307d6779efaf6b41f6cb64e01cf3f45540a69315","modified":1554722746882},{"_id":"source/metronic/assets/pages/img/social/rss.png","hash":"afd6e298514fccd109ee61e9ab5a3c0e754605d6","modified":1554722746883},{"_id":"source/metronic/assets/pages/img/social/skype.png","hash":"b4e3ed7bf229d0b49cfca178bd7ac46719d1927d","modified":1554722746883},{"_id":"source/metronic/assets/pages/img/social/spotify.png","hash":"e621210d9a7be1f5807f1eb52e4c2530311402ec","modified":1554722746883},{"_id":"source/metronic/assets/pages/img/social/stumbleupon.png","hash":"cf17c5db32f8218cd467a9cc48eea1b77f177263","modified":1554722746885},{"_id":"source/metronic/assets/pages/img/social/tumblr.png","hash":"00b856a85460e1417eaad4e208cb344812d21537","modified":1554722746885},{"_id":"source/metronic/assets/pages/img/social/twitter.png","hash":"5711936f57867efd6f9af39b886b44c7b8afca1f","modified":1554722746885},{"_id":"source/metronic/assets/pages/img/social/wordpress.png","hash":"0fee56f46805f588838e997ba5140fab0e62c4f1","modified":1554722746886},{"_id":"source/metronic/assets/pages/img/social/vimeo.png","hash":"78c676724eca044dd8914a609da25eb96ffe873a","modified":1554722746885},{"_id":"source/metronic/assets/pages/img/social/vk.png","hash":"0889ddf669ed09e91d4a761b90ac03b11b246326","modified":1554722746886},{"_id":"source/metronic/assets/pages/img/social/xing.png","hash":"e07a2e5c93ca60539a6d60c1d1ef21ad3c68e576","modified":1554722746887},{"_id":"source/metronic/assets/pages/img/social/yahoo.png","hash":"c71a6b1c2409e4c4ed37054e8d47beabdd00d56c","modified":1554722746888},{"_id":"source/metronic/assets/pages/img/social/youtube.png","hash":"bade669039f2fbc1d8f76f833c30ad9cac0039c6","modified":1554722746888},{"_id":"source/metronic/assets/pages/img/posts/Thumbs.db","hash":"519bbdb6b4f2ba5f3d748ae87c0b844ea2ae7d3f","modified":1554722746860},{"_id":"source/metronic/assets/pages/img/frontend-slider/iphone_large.png","hash":"c8d3c766b82bfb5246aa7a4536c64ec3ac194e2b","modified":1554722746793},{"_id":"source/metronic/assets/pages/img/people/img5-large.jpg","hash":"7205d2403fb6407de944e585084b64acfe75869c","modified":1554722746835},{"_id":"source/metronic/assets/pages/img/people/img5-small.jpg","hash":"7205d2403fb6407de944e585084b64acfe75869c","modified":1554722746837},{"_id":"source/metronic/assets/pages/img/posts/img1.jpg","hash":"c540dc43645a67db5bd68892de39fa50a532c117","modified":1554722746862},{"_id":"source/metronic/assets/pages/img/posts/img2.jpg","hash":"f643683de3e640af779ac224c96a230b830ad17e","modified":1554722746863},{"_id":"source/metronic/assets/pages/img/posts/img3.jpg","hash":"87c27abfdc0a13fd5a29797bf1103bd6a0cffec3","modified":1554722746864},{"_id":"source/metronic/assets/pages/img/people/Thumbs.db","hash":"0c5d9dc61febcd2efd810887f587b84fd84fd9f3","modified":1554722746821},{"_id":"source/metronic/assets/pages/img/frontend-slider/Thumbs.db","hash":"2af19386e73bff9ccca277a7b6ac94b6d7b6b33f","modified":1554722746769},{"_id":"source/404.ejs","hash":"460a170c376ec8cebe098c3851c2a6fac0ac5155","modified":1554722746531},{"_id":"source/favicon.ico","hash":"cd13f6a34732038e34e8af16eb9c7495b22fd395","modified":1554722746549},{"_id":"source/index.ejs","hash":"15068061dc4da27f1545d43567d84c9337a3d5ad","modified":1554722746550},{"_id":"source/_posts/2014-02-23-hello-world.md","hash":"254a9d5c891f78b6e072e3caf09f114190e44bbc","modified":1554722746538},{"_id":"source/_posts/2015-03-23-Make-VS-Insert-Spaces.md","hash":"ea46dcead7f6f9bf93cc52b18b4729a646808263","modified":1554722746538},{"_id":"source/_posts/2015-04-01-NGINX-Static-Locations.md","hash":"1278a2348c3245ffc87402bee64d74447dc7dc3f","modified":1554722746539},{"_id":"source/_posts/2015-04-05-Lookup-on-Page.md","hash":"e432bf0cc5343a41007c2794a8ef7afba187f9e2","modified":1554722746541},{"_id":"source/_posts/2015-04-08-NAV-Programming-Resources.md","hash":"5c4110ee97dc1f2a2c5470ac63ca149805468b79","modified":1554722746542},{"_id":"source/_posts/2016-01-02-Notes-On-Creating-A-Hexo-Theme.md","hash":"fbba7d7d8663372cb032ab91be8bbd586c8a9fa3","modified":1554722746545},{"_id":"source/_posts/2015-05-02-How-To-Impress.md","hash":"0c0ff1583ababa464e3a2a839ac09a452279f565","modified":1554722746544},{"_id":"source/about/index.ejs","hash":"38c17bc73cbe91ee29ae32dd607a709cb89aef53","modified":1554722746547},{"_id":"source/contact/index.ejs","hash":"a2b7a1c2c25b4d662a47fd897d33527b7a7ed716","modified":1554722746548},{"_id":"source/login/index.ejs","hash":"711871113ae044dd22679f55ab99d384f5f47264","modified":1554722746552},{"_id":"source/projects/index.ejs","hash":"6d20255e7be996661eda057c56bbd3766965584f","modified":1554722746567},{"_id":"themes/material-flow/LICENSE","hash":"0e12aed461110e809af1a52728f499f852e85e0a","modified":1554724698245},{"_id":"themes/material-flow/README.md","hash":"c8911eb5a229ccebec8d2eaf4e226b63bb31ab61","modified":1554724698246},{"_id":"themes/material-flow/_config.yml","hash":"f0172bc4c49f3429dac9706f9f31ae5292b6076d","modified":1554824350040},{"_id":"themes/material-flow/.git/description","hash":"9635f1b7e12c045212819dd934d809ef07efa2f4","modified":1554724696087},{"_id":"themes/material-flow/.git/HEAD","hash":"acbaef275e46a7f14c1ef456fff2c8bbe8c84724","modified":1554724698222},{"_id":"themes/material-flow/.git/config","hash":"778adcbfcdc50a7bfaa97dffd8725f347781c4eb","modified":1554724698234},{"_id":"themes/material-flow/.git/index","hash":"e211ceb527a132e94243533e25cb236e81b4990f","modified":1554824337048},{"_id":"themes/material-flow/.git/packed-refs","hash":"4b73b813f44c59541ad5caaba80ac82920ee3c0c","modified":1554724698213},{"_id":"themes/material-flow/layout/archive.ejs","hash":"ca51625164abe022be8a440fe62b5f66f5b4421b","modified":1554724698270},{"_id":"themes/material-flow/layout/category.ejs","hash":"c97be36b33bb44957778587f00c978f2d28016f8","modified":1554724698271},{"_id":"themes/material-flow/layout/index.ejs","hash":"c97be36b33bb44957778587f00c978f2d28016f8","modified":1554724698272},{"_id":"themes/material-flow/layout/layout.ejs","hash":"f493debff25d73371c536f9dc15414e2d0f54af2","modified":1554724698273},{"_id":"themes/material-flow/layout/page.ejs","hash":"7d80e4e36b14d30a7cd2ac1f61376d9ebf264e8b","modified":1554724698274},{"_id":"themes/material-flow/layout/post.ejs","hash":"7d80e4e36b14d30a7cd2ac1f61376d9ebf264e8b","modified":1554724698275},{"_id":"themes/material-flow/layout/tag.ejs","hash":"c97be36b33bb44957778587f00c978f2d28016f8","modified":1554724698276},{"_id":"themes/material-flow/source/style.less","hash":"a003dab76221b7a4076bb7a15a60dcc456fad672","modified":1554724698401},{"_id":"source/images/avatar.jpg","hash":"7c40605ee740e3b37a371836f01a5dd4f2d507e0","modified":1554817408879},{"_id":"themes/material-flow/.git/info/exclude","hash":"c879df015d97615050afa7b9641e3352a1e701ac","modified":1554724696112},{"_id":"themes/material-flow/.git/hooks/applypatch-msg.sample","hash":"4de88eb95a5e93fd27e78b5fb3b5231a8d8917dd","modified":1554724696089},{"_id":"themes/material-flow/.git/hooks/commit-msg.sample","hash":"ee1ed5aad98a435f2020b6de35c173b75d9affac","modified":1554724696091},{"_id":"themes/material-flow/.git/hooks/post-update.sample","hash":"b614c2f63da7dca9f1db2e7ade61ef30448fc96c","modified":1554724696092},{"_id":"themes/material-flow/.git/hooks/pre-commit.sample","hash":"36aed8976dcc08b5076844f0ec645b18bc37758f","modified":1554724696095},{"_id":"themes/material-flow/.git/hooks/pre-applypatch.sample","hash":"f208287c1a92525de9f5462e905a9d31de1e2d75","modified":1554724696094},{"_id":"themes/material-flow/.git/hooks/pre-push.sample","hash":"5c8518bfd1d1d3d2c1a7194994c0a16d8a313a41","modified":1554724696097},{"_id":"themes/material-flow/.git/hooks/pre-receive.sample","hash":"705a17d259e7896f0082fe2e9f2c0c3b127be5ac","modified":1554724696100},{"_id":"themes/material-flow/.git/hooks/pre-rebase.sample","hash":"5885a56ab4fca8075a05a562d005e922cde9853b","modified":1554724696099},{"_id":"themes/material-flow/.git/hooks/prepare-commit-msg.sample","hash":"2b6275eda365cad50d167fe3a387c9bc9fedd54f","modified":1554724696101},{"_id":"themes/material-flow/.git/hooks/update.sample","hash":"e729cd61b27c128951d139de8e7c63d1a3758dde","modified":1554724696103},{"_id":"themes/material-flow/.git/logs/HEAD","hash":"e97857b668419bfe712fb9c4b559b7782ca3fd86","modified":1554724698228},{"_id":"themes/material-flow/layout/_partial/archive.ejs","hash":"a92ccba847e9687b0d118a5de41837fa6d9bf8ee","modified":1554724698250},{"_id":"themes/material-flow/layout/_partial/categories.ejs","hash":"67a1281303e6e32607b232cb2a16c2d8878c011e","modified":1554724698253},{"_id":"themes/material-flow/layout/_partial/article.ejs","hash":"302e04b505e04bc1bedaa050b64391ef1f2fcf24","modified":1554724698252},{"_id":"themes/material-flow/layout/_partial/head.ejs","hash":"5900c044e5adbaef20c3923aa548e025cf1bfb59","modified":1554820495953},{"_id":"themes/material-flow/layout/_partial/footer.ejs","hash":"81bf99424865dd96bf970f5ff4cea2bdcb1562ce","modified":1554724698254},{"_id":"themes/material-flow/layout/_partial/loading.ejs","hash":"02bd745f5177e589c7febe1ee1a02031c861b199","modified":1554724698261},{"_id":"themes/material-flow/layout/_partial/header.ejs","hash":"301099816af5d6d282fe8a0c2dd9aba3f040a8ca","modified":1554819587693},{"_id":"themes/material-flow/layout/_partial/post.ejs","hash":"6a83c16809f7afa581a1b22be8a933d4e25f4b50","modified":1554724698262},{"_id":"themes/material-flow/layout/_partial/scripts.ejs","hash":"9c936ea339d7b4b4453b9430452ef75beed2222c","modified":1554724698264},{"_id":"themes/material-flow/layout/_widget/about.ejs","hash":"9527314cb1246b7bb14b5d259096892db9424777","modified":1554817577682},{"_id":"themes/material-flow/layout/_widget/categories.ejs","hash":"bde7f44e08fd9046fd9b44876f4b2fec9357bf7d","modified":1554724698267},{"_id":"themes/material-flow/layout/_partial/side.ejs","hash":"97baa21b3428268128f764e89cd85e6d0274cd45","modified":1554724698265},{"_id":"themes/material-flow/layout/_widget/tagcloud.ejs","hash":"9fc962c86dd577d34910225a0b503cfe45e1b824","modified":1554724698269},{"_id":"themes/material-flow/layout/_widget/links.ejs","hash":"9634db1722323a0637a8e8cbe82d4363b1c2d293","modified":1554724698268},{"_id":"themes/material-flow/snapshots/phone.png","hash":"8e78f25ee179e3ff27fff101050792184935d319","modified":1554724698286},{"_id":"themes/material-flow/source/fonts/icomoon.eot","hash":"931a892fd6307c0cfcbb71511ad4a38b3dd20edf","modified":1554724698351},{"_id":"themes/material-flow/source/fonts/icomoon.svg","hash":"d2f6755d619e577d90537e7e92640a2e1b833f6f","modified":1554724698353},{"_id":"themes/material-flow/source/fonts/icomoon.ttf","hash":"6192fb2b38c94f77d1fed08c1969fab5ffe9a30c","modified":1554724698353},{"_id":"themes/material-flow/source/fonts/selection.json","hash":"63e57a0fdd6138c8872f8cafa24b951eaf9fd564","modified":1554724698357},{"_id":"themes/material-flow/source/fonts/icomoon.woff","hash":"0356e9be814a04187c641371fd95a7a8d9111200","modified":1554724698355},{"_id":"themes/material-flow/source/js/app.js","hash":"fbd6b7f2b270a68acf4a92d8519540a06ecaeab0","modified":1554724698359},{"_id":"themes/material-flow/source/js/jquery.fitvids.js","hash":"498d2b1a5cfd53ce9b320c9ccd7d53ea7b04ffb7","modified":1554724698361},{"_id":"themes/material-flow/source/js/search.js","hash":"bd98ebee93f42ea04d10a7e77bda30fccdf67822","modified":1554724698364},{"_id":"themes/material-flow/source/less/_article.less","hash":"50d24a52cb3ceeb3e37394bcb1bc32615bbb1cb1","modified":1554724698367},{"_id":"themes/material-flow/source/less/_base.less","hash":"c29f0fa4763a869e390e84280fe907b86c1a90ac","modified":1554724698369},{"_id":"themes/material-flow/source/less/_archive.less","hash":"306c2e1b4a62ba1a241d11efd3935f69178e0927","modified":1554724698365},{"_id":"themes/material-flow/source/less/_fonts.less","hash":"cdb77d9bd7a3e62ec3f29ece0b258719a8c5691c","modified":1554724698378},{"_id":"themes/material-flow/source/less/_defines.less","hash":"8a707c1866d6ef5b44ee89a1b3d88ec742c7e67c","modified":1554819828935},{"_id":"themes/material-flow/source/less/_footer.less","hash":"712ff89e8a4085966ceb5130a07c0a05a2c380b2","modified":1554724698379},{"_id":"themes/material-flow/source/less/_header.less","hash":"14a3aeaeb586b5604745e13d8391446aa5d2fa10","modified":1554819900307},{"_id":"themes/material-flow/source/less/_main.less","hash":"6dba91f400478b6ff526a671a0a6e841c32e3732","modified":1554724698382},{"_id":"themes/material-flow/source/less/_pagination.less","hash":"616db8447e79e902bf7b207d1fe3c2fd6a4785b9","modified":1554724698385},{"_id":"themes/material-flow/source/less/_normalize.less","hash":"08678839e42ca4fea4367a847f38464081a4d35b","modified":1554724698384},{"_id":"themes/material-flow/source/less/_side.less","hash":"196ca8a94a40b9bb6694e652bd449b7620a5d5f8","modified":1554724698388},{"_id":"themes/material-flow/source/less/_search.less","hash":"d3fdc7b15a80eb0b4204426c2351ea4464d167ff","modified":1554724698387},{"_id":"themes/material-flow/source/less/_toc.less","hash":"0d46c18a05e7b26c416791b90a5bd3f4669c3268","modified":1554724698389},{"_id":"themes/material-flow/source/less/_tog.less","hash":"e3b62237766889538c3a6c63d93c888fc6f17a7f","modified":1554724698391},{"_id":"themes/material-flow/source/less/_typo.less","hash":"3bda056dae6ab2fe88b6aeed8c68e7a66d2f6204","modified":1554724698395},{"_id":"themes/material-flow/source/less/_widget.less","hash":"6fbeb4e44bcceeb7dcc4a12f1682672a2ee90596","modified":1554724698400},{"_id":"themes/material-flow/snapshots/article.png","hash":"3f1aff6057a807b55edd2435421b59a1f4e82c40","modified":1554724698279},{"_id":"themes/material-flow/.git/objects/pack/pack-0b86e6a3087f5d24a4da95b7c171a79159bea038.idx","hash":"3dd2c85194645b319c72204674a331fdfc53f3eb","modified":1554724698010},{"_id":"themes/material-flow/.git/refs/heads/master","hash":"0717be1bbf800fb479e27aabba6a962571a7a0da","modified":1554724698226},{"_id":"themes/material-flow/.git/logs/refs/heads/master","hash":"e97857b668419bfe712fb9c4b559b7782ca3fd86","modified":1554724698230},{"_id":"themes/material-flow/.git/refs/remotes/origin/HEAD","hash":"d9427cda09aba1cdde5c69c2b13c905bddb0bc51","modified":1554724698220},{"_id":"themes/material-flow/snapshots/index.png","hash":"a4aa937770d1573032f3e830be3cd75672a26036","modified":1554724698284},{"_id":"themes/material-flow/.git/logs/refs/remotes/origin/HEAD","hash":"e97857b668419bfe712fb9c4b559b7782ca3fd86","modified":1554724698219},{"_id":"themes/material-flow/.git/objects/pack/pack-0b86e6a3087f5d24a4da95b7c171a79159bea038.pack","hash":"93011d1be3ee947ef420bacc5a5097942d2962f8","modified":1554724698039},{"_id":"source/images/favicon.ico","hash":"f1af5634f46802ba680f22304f01bb3d4b46e8cd","modified":1554818595320},{"_id":"source/images/sitecore-logo-1024X1024-400x400.jpg","hash":"e2e04729b152e1cc2be9a25d78990ec0c5d6ed6c","modified":1554817831309},{"_id":"source/images/yoda-face-clipart-15.jpg","hash":"f3c76ac66bdd5c3c887641a24f4bd1bde1941745","modified":1554817957305},{"_id":"source/images/yoda.png","hash":"e6fb71bb05db1b0a81909f8a3cc9b38f077903fa","modified":1554818499185},{"_id":"source/images/logo.png","hash":"e6fb71bb05db1b0a81909f8a3cc9b38f077903fa","modified":1554818499185},{"_id":"source/_posts/sitecore-wish-list.md","hash":"25ab6ecfa30a08486c0b589266b3a4bd4a47be34","modified":1554828111833},{"_id":"themes/material-flow/layout/_unusedWidgets/links.ejs","hash":"9634db1722323a0637a8e8cbe82d4363b1c2d293","modified":1554724698268},{"_id":"themes/material-flow/layout/_unusedWidgets/categories.ejs","hash":"bde7f44e08fd9046fd9b44876f4b2fec9357bf7d","modified":1554724698267},{"_id":"source/images/wishlist/sitecore-angel.png","hash":"74a03c7b6601be5a13b7ba7cadfaf383f0737a84","modified":1554822576228},{"_id":"source/images/wishlist/angel.png","hash":"be8b6878cad02b9aa1785a0a70c1432e44239dbf","modified":1554826376587}],"Category":[{"name":".NET","_id":"cju8a053m0005t4up8314pt6w"},{"name":"Hexo","_id":"cju8a053s000at4up9k16703z"},{"name":"NGINX","_id":"cju8a053v000ft4updlase80w"},{"name":"Dynamics NAV","_id":"cju8a053w000kt4upw716fgx8"},{"name":"Humor","_id":"cju8a0545000st4upya7yclb0"},{"name":"Feautres","_id":"cju9ycl5m0000j8up86qif1dr"},{"name":"Sitecore","parent":"cju9ycl5m0000j8up86qif1dr","_id":"cju9ycl5n0003j8upfr7j1xxt"}],"Data":[],"Page":[],"Post":[{"title":"Sitecore wish list","description":"This is a master list of features/ upgrades/ documentation that we wish Sitecore would have","author":"Richard Dias","date":"2019-04-08T23:00:00.000Z","_content":"![sitecore angel](/images/wishlist/sitecore-angel.png \"sitecore angel\")\n\nThis post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between. \nPlease feel free to email me on if you want me to add something to this list, correct me or let me know if a wish has been granted.\n\n---\n## Features\n### Workflow & Workbox\nI've been working with Sitecore since version 5.3 and I must say that the workbox seems to have hardly changed.\nWe are selling Sitecore to clients with thousands of content items, globally distributed authoring teams and this content is often constantly changing. The current workbox isn't suitable for large volumes of content and authors are often requesting to bypass the Sitecore workflow altogether which is a very bad thing.\nStart thinking about:\n* Redoing the UI to make approving large numbers of content realistic\n* Better methods of grouping content and assiging to individual approvers\n* Using the search index to power the new workflow UI\n* SXA is out, we can start approving partial designs/ composites etc as a whole\n\n### Media cropping OTB\n### Personalisation with CDN\nAt the moment Sitecore does all of its personalisation on the client side unless you start using some JSS functionality.\nIf you're a client with a global presense (and there are a lot of these) who needs to cover more than one geographical region and don't want to spend large sums on a geographically distributed CD node system then you will most likely be using a CDN like Akamai, Cloudlare or any number of players.\nIf we want to make use of Sitecores' rich personalisation and analytics we won't be able to edge cache the actual documents (Media or any other assets are not an issue). If we edge cache the document then the persona profiling won't work nor will other personalisation functionality.\nSitecore needs to move personalisation and content profiling to the client side so that working with CDN's won't hinder any Sitecore functionality.\n\n---\n## Development\n### Async Sitecore Controllers\nPlease please can we have async controllers? the ability to mark renderings as async would be fantastic, this means non-essential renderings can be loaded asynctonously without our pages needing to 'wait' for them. The sooner the server can respond with the DOM the better.\n```csharp\npublic async Task MarketingTile()\n```\nHere is a nice article about [how async methods work](https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/using-asynchronous-methods-in-aspnet-mvc-4 \"Using Asynchronous Methods in ASP.NET MVC 4\") in ASP.NET.\n\n---\n## Documentation\n### Better scaling guidelines\n---\n## Examples\nWhat can Sitecore provide in terms of examples, tutorials and demo enviornments?\n\n### Helix & Habitat\nThis was going to be about providing better Helix project examples than Habitat. Luckily, this is going to happen already as announced by [Peter Brinkman at Sugcon London 2019](https://www.sugcon.eu/agenda/#day2 \"Sugcon link\").\nThere will be 3 new demo environments released (with source code) for small, medium and enterprise scale Sitecore Helix solutions!\n\n","source":"_posts/sitecore-wish-list.md","raw":"---\ntitle: Sitecore wish list\ndescription: This is a master list of features/ upgrades/ documentation that we wish Sitecore would have\ncategories: [Feautres, Sitecore]\ntags: [Sitecore, Documentation, Development, Examples, Personalisation]\nauthor: Richard Dias\ndate: 04-09-2019\n---\n![sitecore angel](/images/wishlist/sitecore-angel.png \"sitecore angel\")\n\nThis post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between. \nPlease feel free to email me on if you want me to add something to this list, correct me or let me know if a wish has been granted.\n\n---\n## Features\n### Workflow & Workbox\nI've been working with Sitecore since version 5.3 and I must say that the workbox seems to have hardly changed.\nWe are selling Sitecore to clients with thousands of content items, globally distributed authoring teams and this content is often constantly changing. The current workbox isn't suitable for large volumes of content and authors are often requesting to bypass the Sitecore workflow altogether which is a very bad thing.\nStart thinking about:\n* Redoing the UI to make approving large numbers of content realistic\n* Better methods of grouping content and assiging to individual approvers\n* Using the search index to power the new workflow UI\n* SXA is out, we can start approving partial designs/ composites etc as a whole\n\n### Media cropping OTB\n### Personalisation with CDN\nAt the moment Sitecore does all of its personalisation on the client side unless you start using some JSS functionality.\nIf you're a client with a global presense (and there are a lot of these) who needs to cover more than one geographical region and don't want to spend large sums on a geographically distributed CD node system then you will most likely be using a CDN like Akamai, Cloudlare or any number of players.\nIf we want to make use of Sitecores' rich personalisation and analytics we won't be able to edge cache the actual documents (Media or any other assets are not an issue). If we edge cache the document then the persona profiling won't work nor will other personalisation functionality.\nSitecore needs to move personalisation and content profiling to the client side so that working with CDN's won't hinder any Sitecore functionality.\n\n---\n## Development\n### Async Sitecore Controllers\nPlease please can we have async controllers? the ability to mark renderings as async would be fantastic, this means non-essential renderings can be loaded asynctonously without our pages needing to 'wait' for them. The sooner the server can respond with the DOM the better.\n```csharp\npublic async Task MarketingTile()\n```\nHere is a nice article about [how async methods work](https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/using-asynchronous-methods-in-aspnet-mvc-4 \"Using Asynchronous Methods in ASP.NET MVC 4\") in ASP.NET.\n\n---\n## Documentation\n### Better scaling guidelines\n---\n## Examples\nWhat can Sitecore provide in terms of examples, tutorials and demo enviornments?\n\n### Helix & Habitat\nThis was going to be about providing better Helix project examples than Habitat. Luckily, this is going to happen already as announced by [Peter Brinkman at Sugcon London 2019](https://www.sugcon.eu/agenda/#day2 \"Sugcon link\").\nThere will be 3 new demo environments released (with source code) for small, medium and enterprise scale Sitecore Helix solutions!\n\n","slug":"sitecore-wish-list","published":1,"updated":"2019-04-09T16:41:51.833Z","_id":"cju9vt1zb0000b0upj8ueuift","comments":1,"layout":"post","photos":[],"link":"","content":"

\"sitecore

\n

This post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between.
Please feel free to email me on rdias@1digit.co.uk if you want me to add something to this list, correct me or let me know if a wish has been granted.

\n\n
\n

Features

Workflow & Workbox

I’ve been working with Sitecore since version 5.3 and I must say that the workbox seems to have hardly changed.
We are selling Sitecore to clients with thousands of content items, globally distributed authoring teams and this content is often constantly changing. The current workbox isn’t suitable for large volumes of content and authors are often requesting to bypass the Sitecore workflow altogether which is a very bad thing.
Start thinking about:

\n
    \n
  • Redoing the UI to make approving large numbers of content realistic
  • \n
  • Better methods of grouping content and assiging to individual approvers
  • \n
  • Using the search index to power the new workflow UI
  • \n
  • SXA is out, we can start approving partial designs/ composites etc as a whole
  • \n
\n

Media cropping OTB

Personalisation with CDN

At the moment Sitecore does all of its personalisation on the client side unless you start using some JSS functionality.
If you’re a client with a global presense (and there are a lot of these) who needs to cover more than one geographical region and don’t want to spend large sums on a geographically distributed CD node system then you will most likely be using a CDN like Akamai, Cloudlare or any number of players.
If we want to make use of Sitecores’ rich personalisation and analytics we won’t be able to edge cache the actual documents (Media or any other assets are not an issue). If we edge cache the document then the persona profiling won’t work nor will other personalisation functionality.
Sitecore needs to move personalisation and content profiling to the client side so that working with CDN’s won’t hinder any Sitecore functionality.

\n
\n

Development

Async Sitecore Controllers

Please please can we have async controllers? the ability to mark renderings as async would be fantastic, this means non-essential renderings can be loaded asynctonously without our pages needing to ‘wait’ for them. The sooner the server can respond with the DOM the better.

1
public async Task<ActionResult> MarketingTile()

\n

Here is a nice article about how async methods work in ASP.NET.

\n
\n

Documentation

Better scaling guidelines


\n

Examples

What can Sitecore provide in terms of examples, tutorials and demo enviornments?

\n

Helix & Habitat

This was going to be about providing better Helix project examples than Habitat. Luckily, this is going to happen already as announced by Peter Brinkman at Sugcon London 2019.
There will be 3 new demo environments released (with source code) for small, medium and enterprise scale Sitecore Helix solutions!

\n","site":{"data":{}},"excerpt":"

\"sitecore

\n

This post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between.
Please feel free to email me on rdias@1digit.co.uk if you want me to add something to this list, correct me or let me know if a wish has been granted.

","more":"
\n

Features

Workflow & Workbox

I’ve been working with Sitecore since version 5.3 and I must say that the workbox seems to have hardly changed.
We are selling Sitecore to clients with thousands of content items, globally distributed authoring teams and this content is often constantly changing. The current workbox isn’t suitable for large volumes of content and authors are often requesting to bypass the Sitecore workflow altogether which is a very bad thing.
Start thinking about:

\n
    \n
  • Redoing the UI to make approving large numbers of content realistic
  • \n
  • Better methods of grouping content and assiging to individual approvers
  • \n
  • Using the search index to power the new workflow UI
  • \n
  • SXA is out, we can start approving partial designs/ composites etc as a whole
  • \n
\n

Media cropping OTB

Personalisation with CDN

At the moment Sitecore does all of its personalisation on the client side unless you start using some JSS functionality.
If you’re a client with a global presense (and there are a lot of these) who needs to cover more than one geographical region and don’t want to spend large sums on a geographically distributed CD node system then you will most likely be using a CDN like Akamai, Cloudlare or any number of players.
If we want to make use of Sitecores’ rich personalisation and analytics we won’t be able to edge cache the actual documents (Media or any other assets are not an issue). If we edge cache the document then the persona profiling won’t work nor will other personalisation functionality.
Sitecore needs to move personalisation and content profiling to the client side so that working with CDN’s won’t hinder any Sitecore functionality.

\n
\n

Development

Async Sitecore Controllers

Please please can we have async controllers? the ability to mark renderings as async would be fantastic, this means non-essential renderings can be loaded asynctonously without our pages needing to ‘wait’ for them. The sooner the server can respond with the DOM the better.

1
public async Task<ActionResult> MarketingTile()

\n

Here is a nice article about how async methods work in ASP.NET.

\n
\n

Documentation

Better scaling guidelines


\n

Examples

What can Sitecore provide in terms of examples, tutorials and demo enviornments?

\n

Helix & Habitat

This was going to be about providing better Helix project examples than Habitat. Luckily, this is going to happen already as announced by Peter Brinkman at Sugcon London 2019.
There will be 3 new demo environments released (with source code) for small, medium and enterprise scale Sitecore Helix solutions!

"}],"PostAsset":[],"PostCategory":[{"post_id":"cju9vt1zb0000b0upj8ueuift","category_id":"cju9ycl5m0000j8up86qif1dr","_id":"cju9ycl5o0006j8upvqp63dn2"},{"post_id":"cju9vt1zb0000b0upj8ueuift","category_id":"cju9ycl5n0003j8upfr7j1xxt","_id":"cju9ycl5o0007j8upbj34tp2r"}],"PostTag":[{"post_id":"cju9vt1zb0000b0upj8ueuift","tag_id":"cju9ycl5n0001j8up9py4ruc5","_id":"cju9ycl5p0008j8upf99vbswi"},{"post_id":"cju9vt1zb0000b0upj8ueuift","tag_id":"cju9ycl5n0002j8uplpmm2rsg","_id":"cju9ycl5p0009j8up98c5n63h"},{"post_id":"cju9vt1zb0000b0upj8ueuift","tag_id":"cju9ycl5o0004j8upzlaze7q1","_id":"cju9ycl5p000aj8up2t1qapff"},{"post_id":"cju9vt1zb0000b0upj8ueuift","tag_id":"cju9ycl5o0005j8upf10ycsso","_id":"cju9ycl5p000bj8upv2uxzuso"},{"post_id":"cju9vt1zb0000b0upj8ueuift","tag_id":"cju9ys6ox0000g8upl6pte9by","_id":"cju9ys6oy0001g8upk6sfad6k"}],"Tag":[{"name":"C#","_id":"cju8a053o0006t4uphgfptwzu"},{"name":"Visual Studio","_id":"cju8a053s000bt4upchywmn5x"},{"name":"Welcome","_id":"cju8a053v000gt4up744to9ez"},{"name":"How-To","_id":"cju8a053w000lt4upt210zja2"},{"name":"Web Development","_id":"cju8a0543000pt4upky7lsigt"},{"name":"NAV","_id":"cju8a0546000ut4up33dibtr2"},{"name":"Resources","_id":"cju8a0547000xt4up7ki6mh5n"},{"name":"Programming","_id":"cju8a05490013t4upbhdv4unn"},{"name":"Design","_id":"cju8a05490016t4up4r0vvvns"},{"name":"funny","_id":"cju8a054a0017t4upawejos5g"},{"name":"employment","_id":"cju8a054a001at4upowojtkij"},{"name":"Sitecore","_id":"cju9ycl5n0001j8up9py4ruc5"},{"name":"Documentation","_id":"cju9ycl5n0002j8uplpmm2rsg"},{"name":"Development","_id":"cju9ycl5o0004j8upzlaze7q1"},{"name":"Examples","_id":"cju9ycl5o0005j8upf10ycsso"},{"name":"Personalisation","_id":"cju9ys6ox0000g8upl6pte9by"}]}} \ No newline at end of file diff --git a/fonts/icomoon.eot b/fonts/icomoon.eot deleted file mode 100644 index f60448e..0000000 Binary files a/fonts/icomoon.eot and /dev/null differ diff --git a/fonts/icomoon.svg b/fonts/icomoon.svg deleted file mode 100644 index 2be928f..0000000 --- a/fonts/icomoon.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/icomoon.ttf b/fonts/icomoon.ttf deleted file mode 100644 index d4033a0..0000000 Binary files a/fonts/icomoon.ttf and /dev/null differ diff --git a/fonts/icomoon.woff b/fonts/icomoon.woff deleted file mode 100644 index e047a42..0000000 Binary files a/fonts/icomoon.woff and /dev/null differ diff --git a/fonts/selection.json b/fonts/selection.json deleted file mode 100644 index 6192412..0000000 --- a/fonts/selection.json +++ /dev/null @@ -1 +0,0 @@ -{"IcoMoonType":"selection","icons":[{"icon":{"paths":["M810 274l-238 238 238 238-60 60-238-238-238 238-60-60 238-238-238-238 60-60 238 238 238-238z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["close"],"defaultCode":58829,"grid":24},"attrs":[],"properties":{"order":39,"ligatures":"clear, close","id":157,"prevSize":24,"code":58829,"name":"close"},"setIdx":1,"setId":6,"iconIdx":157},{"icon":{"paths":["M406 598c106 0 192-86 192-192s-86-192-192-192-192 86-192 192 86 192 192 192zM662 598l212 212-64 64-212-212v-34l-12-12c-48 42-112 66-180 66-154 0-278-122-278-276s124-278 278-278 276 124 276 278c0 68-24 132-66 180l12 12h34z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["search"],"defaultCode":59574,"grid":24},"attrs":[],"properties":{"order":41,"ligatures":"search","id":655,"prevSize":24,"code":59574,"name":"search2"},"setIdx":1,"setId":6,"iconIdx":655},{"icon":{"paths":["M231.219 386.458c22.323-22.835 53.402-24.627 80.691 0l200.090 191.846 200.090-191.846c27.29-24.627 58.419-22.835 80.589 0 22.323 22.784 20.89 61.286 0 82.688-20.787 21.402-240.384 230.502-240.384 230.502-11.11 11.418-25.702 17.152-40.294 17.152s-29.184-5.734-40.397-17.152c0 0-219.494-209.101-240.384-230.502-20.941-21.402-22.323-59.904 0-82.688z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["chevron-down"],"grid":20},"attrs":[],"properties":{"id":34,"order":17,"prevSize":20,"code":59648,"name":"chevron-down"},"setIdx":2,"setId":5,"iconIdx":33},{"icon":{"paths":["M637.542 231.219c22.835 22.323 24.627 53.402 0 80.691l-191.846 200.090 191.846 200.090c24.627 27.29 22.835 58.419 0 80.589-22.784 22.323-61.286 20.89-82.688 0-21.402-20.787-230.502-240.384-230.502-240.384-11.418-11.11-17.152-25.702-17.152-40.294s5.734-29.184 17.152-40.397c0 0 209.101-219.494 230.502-240.384 21.402-20.941 59.904-22.323 82.688 0z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["chevron-left"],"grid":20},"attrs":[],"properties":{"id":35,"order":16,"prevSize":20,"code":59649,"name":"chevron-left"},"setIdx":2,"setId":5,"iconIdx":34},{"icon":{"paths":["M469.146 231.219c21.402 20.89 230.502 240.384 230.502 240.384 11.418 11.213 17.152 25.805 17.152 40.397s-5.734 29.184-17.152 40.294c0 0-209.101 219.597-230.502 240.384-21.402 20.89-59.904 22.323-82.688 0-22.835-22.221-24.627-53.299 0-80.589l191.846-200.090-191.846-200.090c-24.627-27.29-22.835-58.419 0-80.691 22.784-22.323 61.286-20.941 82.688 0z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["chevron-right"],"grid":20},"attrs":[],"properties":{"id":36,"order":15,"prevSize":20,"code":59650,"name":"chevron-right"},"setIdx":2,"setId":5,"iconIdx":35},{"icon":{"paths":["M891.802 312.781c13.926-13.722 36.301-13.722 50.125 0s13.875 35.891 0 49.613l-404.89 400.896c-13.824 13.722-36.198 13.722-50.125 0l-404.89-400.896c-13.824-13.722-13.824-35.891 0-49.613 13.875-13.722 36.301-13.722 50.125 0l379.853 365.619 379.802-365.619z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["chevron-thin-down"],"grid":20},"attrs":[],"properties":{"id":41,"order":18,"prevSize":20,"code":59651,"name":"chevron-thin-down"},"setIdx":2,"setId":5,"iconIdx":40},{"icon":{"paths":["M711.219 891.802c13.722 13.926 13.722 36.301 0 50.125s-35.891 13.875-49.613 0l-400.896-404.89c-13.722-13.824-13.722-36.198 0-50.125l400.896-404.89c13.722-13.824 35.891-13.824 49.613 0 13.722 13.875 13.722 36.301 0 50.125l-365.619 379.853 365.619 379.802z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["chevron-thin-left"],"grid":20},"attrs":[],"properties":{"id":42,"order":19,"prevSize":20,"code":59652,"name":"chevron-thin-left"},"setIdx":2,"setId":5,"iconIdx":41},{"icon":{"paths":["M678.4 512l-365.619-379.904c-13.722-13.824-13.722-36.198 0-50.125 13.722-13.824 35.891-13.824 49.613 0l400.896 404.89c13.722 13.875 13.722 36.301 0 50.125l-400.896 404.89c-13.722 13.875-35.891 13.824-49.613 0-13.722-13.773-13.722-36.198 0-50.125l365.619-379.75z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["chevron-thin-right"],"grid":20},"attrs":[],"properties":{"id":43,"order":20,"prevSize":20,"code":59653,"name":"chevron-thin-right"},"setIdx":2,"setId":5,"iconIdx":42},{"icon":{"paths":["M132.198 711.219c-13.926 13.722-36.301 13.722-50.125 0s-13.875-35.891 0-49.613l404.89-400.896c13.824-13.722 36.198-13.722 50.125 0l404.89 400.896c13.824 13.722 13.824 35.891 0 49.613-13.875 13.722-36.301 13.722-50.074 0l-379.904-365.619-379.802 365.619z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["chevron-thin-up"],"grid":20},"attrs":[],"properties":{"id":44,"order":21,"prevSize":20,"code":59654,"name":"chevron-thin-up"},"setIdx":2,"setId":5,"iconIdx":43},{"icon":{"paths":["M792.781 637.542c-22.323 22.835-53.402 24.627-80.691 0l-200.090-191.846-200.090 191.846c-27.29 24.627-58.419 22.835-80.589 0-22.323-22.784-20.89-61.286 0-82.688 20.787-21.402 240.384-230.502 240.384-230.502 11.11-11.418 25.702-17.152 40.294-17.152s29.184 5.734 40.397 17.152c0 0 219.494 209.101 240.384 230.502 20.941 21.402 22.323 59.904 0 82.688z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["chevron-up"],"grid":20},"attrs":[],"properties":{"id":45,"order":22,"prevSize":20,"code":59655,"name":"chevron-up"},"setIdx":2,"setId":5,"iconIdx":44},{"icon":{"paths":["M80.589 270.643c24.986 13.414 371.098 199.373 384 206.285s29.594 10.189 46.387 10.189c16.794 0 33.485-3.277 46.387-10.189s359.014-192.87 384-206.285c25.037-13.466 48.691-65.843 2.765-65.843h-866.253c-45.926 0-22.272 52.378 2.714 65.843zM952.986 383.437c-28.416 14.797-378.214 197.069-395.622 206.182s-29.594 10.189-46.387 10.189-28.979-1.075-46.387-10.189-365.21-191.437-393.626-206.234c-19.968-10.445-19.763 1.792-19.763 11.213s0 373.402 0 373.402c0 21.504 28.979 51.2 51.2 51.2h819.2c22.221 0 51.2-29.696 51.2-51.2 0 0 0-363.93 0-373.35s0.205-21.658-19.814-11.213z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["mail"],"grid":20},"attrs":[],"properties":{"id":219,"order":36,"prevSize":20,"code":59661,"name":"mail"},"setIdx":2,"setId":5,"iconIdx":218},{"icon":{"paths":["M839.68 460.8h-655.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2h655.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2zM839.68 665.6h-655.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2h655.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2zM184.32 358.4h655.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2h-655.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["menu"],"grid":20},"attrs":[],"properties":{"id":225,"order":23,"prevSize":20,"code":59656,"name":"menu"},"setIdx":2,"setId":5,"iconIdx":224},{"icon":{"paths":["M122.88 122.88v121.19c362.803 0 656.896 294.195 656.896 656.998h121.293c0-429.773-348.416-778.189-778.189-778.189zM122.88 365.414v121.293c228.813 0 414.362 185.498 414.362 414.413h121.242c0-295.834-239.821-535.706-535.603-535.706zM239.053 668.621c-64.205 0-116.224 52.122-116.224 116.275s52.019 116.224 116.224 116.224 116.173-52.019 116.173-116.224-51.968-116.275-116.173-116.275z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["rss"],"grid":20},"attrs":[],"properties":{"id":266,"order":25,"prevSize":20,"code":59658,"name":"rss"},"setIdx":2,"setId":5,"iconIdx":265},{"icon":{"paths":["M395.52 109.875c-52.019 38.707-65.997 99.994-63.437 132.608 3.277 39.885 11.366 91.802 11.366 91.802s-16.026 8.704-16.026 43.725c5.581 87.91 34.97 49.971 41.011 88.525 14.541 92.877 47.77 76.339 47.77 127.027 0 84.429-34.816 123.904-143.514 170.701-109.056 47.002-221.491 106.138-221.491 208.538v51.2h921.6v-51.2c0-102.4-112.486-161.536-221.594-208.486-108.698-46.797-143.411-86.221-143.411-170.701 0-50.688 33.126-34.15 47.718-127.027 6.093-38.554 35.43-0.614 41.114-88.525 0-35.021-16.077-43.725-16.077-43.725s8.090-51.917 11.315-91.802c3.328-41.83-20.378-131.123-117.76-158.515-17.050-17.408-28.57-45.107 23.859-72.909-114.688-5.376-141.363 54.63-202.445 98.765z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["user"],"grid":20},"attrs":[],"properties":{"id":311,"order":26,"prevSize":20,"code":59659,"name":"user"},"setIdx":2,"setId":5,"iconIdx":310},{"icon":{"paths":["M972.8 153.6h-921.6c-28.314 0-51.2 22.886-51.2 51.2v614.4c0 28.262 22.886 51.2 51.2 51.2h921.6c28.314 0 51.2-22.938 51.2-51.2v-614.4c0-28.262-22.886-51.2-51.2-51.2zM665.6 358.4h204.8v51.2h-204.8v-51.2zM563.2 757.914c-6.605-5.222-15.002-10.291-27.085-15.514-60.416-26.010-151.603-64.512-151.603-111.411 0-28.211 18.381-18.995 26.522-70.605 3.379-21.402 19.712-0.358 22.784-49.203 0-19.456-8.909-24.32-8.909-24.32s4.506-28.774 6.298-50.995c1.843-23.194-11.315-92.16-65.382-107.366-9.523-9.626-15.923-5.683 13.21-21.094-63.693-3.021-78.541 30.31-112.435 54.835-28.877 21.504-36.71 55.552-35.277 73.677 1.894 22.17 6.4 50.995 6.4 50.995s-8.96 4.813-8.96 24.269c3.123 48.845 19.456 27.802 22.784 49.203 8.090 51.61 26.573 42.394 26.573 70.605 0 46.899-91.187 85.402-151.603 111.411-10.394 4.506-17.869 8.858-24.115 13.312v-499.712h460.8v501.914zM921.6 563.2h-256v-51.2h256v51.2z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["v-card"],"grid":20},"attrs":[],"properties":{"id":313,"order":24,"prevSize":20,"code":59657,"name":"vcard"},"setIdx":2,"setId":5,"iconIdx":312},{"icon":{"paths":["M752.026 515.482c-14.029-4.301-23.706-7.27-16.333-26.010 15.923-40.806 17.613-75.981 0.358-101.12-32.41-47.104-121.037-44.595-222.618-1.28 0-0.102-31.898 14.182-23.757-11.622 15.667-51.046 13.261-93.85-11.059-118.528-55.091-56.218-201.574 2.099-327.27 129.997-94.157 95.795-148.787 197.274-148.787 285.082 0 167.987 211.558 280.32 418.56 280.32 271.309 0 451.84-170.701 451.84-298.086 0-77.056-63.693-120.73-120.934-138.752zM421.683 877.005c-165.12 16.384-307.763-58.726-318.464-167.68-10.701-109.005 114.483-210.688 279.654-227.226 165.171-16.384 307.763 58.675 318.464 167.68 10.701 109.107-114.483 210.842-279.654 227.226zM1021.44 378.726c-0.051-169.574-137.523-306.995-307.2-306.995-19.814 0-35.789 15.974-35.789 35.789s15.974 35.789 35.789 35.789c130.099 0 235.571 105.523 235.571 235.622 0 19.814 16.026 35.789 35.84 35.789s35.789-16.026 35.789-35.84v-0.154zM879.053 373.504c-16.333-79.974-79.411-143.002-159.386-159.386-19.354-3.994-38.298 8.499-42.291 27.904-3.942 19.302 8.499 38.298 27.904 42.291 52.019 10.598 92.979 51.61 103.629 103.578 3.994 19.405 22.938 31.795 42.291 27.904 19.302-3.994 31.846-22.989 27.853-42.291zM336.998 588.902c-66.56 13.414-111.462 69.222-100.301 124.621 11.162 55.501 74.086 89.6 140.646 76.186 66.509-13.414 111.411-69.222 100.301-124.621-11.162-55.398-74.189-89.6-140.646-76.186z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["sina-weibo"],"grid":20},"attrs":[],"properties":{"id":340,"order":27,"prevSize":20,"code":59662,"name":"sina-weibo"},"setIdx":2,"setId":5,"iconIdx":339},{"icon":{"paths":["M870.4 51.2h-716.8c-56.32 0-102.4 46.080-102.4 102.4v716.8c0 56.371 46.080 102.4 102.4 102.4h358.4v-358.4h-102.4v-126.72h102.4v-104.96c0-110.797 62.054-188.621 192.819-188.621l92.314 0.102v133.376h-61.286c-50.893 0-70.246 38.195-70.246 73.626v86.528h131.482l-29.082 126.669h-102.4v358.4h204.8c56.32 0 102.4-46.029 102.4-102.4v-716.8c0-56.32-46.080-102.4-102.4-102.4z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["facebook"],"grid":20},"attrs":[],"properties":{"id":360,"order":33,"prevSize":20,"code":59663,"name":"facebook"},"setIdx":2,"setId":5,"iconIdx":359},{"icon":{"paths":["M674.816 579.021c-36.762 0-66.56 41.318-66.56 92.109 0 50.893 29.798 92.211 66.56 92.211s66.56-41.318 66.56-92.211c-0.051-50.79-29.798-92.109-66.56-92.109zM906.547 339.251c7.629-18.688 7.936-124.877-32.512-226.611 0 0-92.723 10.189-233.011 106.496-29.44-8.192-79.258-12.186-128.973-12.186-49.818 0-99.584 3.994-129.024 12.186-140.339-96.307-233.062-106.496-233.062-106.496-40.397 101.734-39.987 207.923-32.461 226.611-47.514 51.61-76.544 113.613-76.544 198.195 0 367.923 305.306 373.811 382.31 373.811 17.51 0 52.122 0.102 88.781 0.102 36.608 0 71.27-0.102 88.678-0.102 77.107 0 382.31-5.888 382.31-373.811 0-84.582-28.979-146.586-76.493-198.195zM513.434 866.048h-2.867c-193.075 0-343.501-22.989-343.501-210.688 0-45.005 15.872-86.682 53.606-121.293 62.822-57.702 169.216-27.187 289.894-27.187 0.512 0 1.024 0 1.485 0 0.512 0 0.922 0 1.382 0 120.678 0 227.123-30.515 289.997 27.187 37.632 34.611 53.504 76.288 53.504 121.293 0 187.699-150.374 210.688-343.501 210.688zM349.235 579.021c-36.762 0-66.56 41.318-66.56 92.109 0 50.893 29.798 92.211 66.56 92.211 36.813 0 66.611-41.318 66.611-92.211 0-50.79-29.798-92.109-66.611-92.109z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["github"],"grid":20},"attrs":[],"properties":{"id":364,"order":32,"prevSize":20,"code":59664,"name":"github"},"setIdx":2,"setId":5,"iconIdx":363},{"icon":{"paths":["M101.837 286.157c0 76.493 25.549 131.686 75.878 164.096 41.267 26.624 89.088 30.618 113.971 30.618 6.042 0 10.906-0.307 14.285-0.512 0 0-7.885 51.405 30.208 102.195h-1.741c-65.997 0-281.242 13.773-281.242 190.822 0 180.019 197.683 189.184 237.363 189.184 3.123 0 4.966-0.102 4.966-0.102 0.41 0 3.226 0.102 8.090 0.102 25.446 0 91.238-3.174 152.32-32.922 79.258-38.4 119.45-105.421 119.45-198.912 0-90.317-61.235-144.077-105.933-183.398-27.29-24.013-50.893-44.698-50.893-64.819 0-20.48 17.254-35.891 39.014-55.398 35.277-31.488 68.557-76.39 68.557-161.28 0-74.598-9.677-124.723-69.325-156.518 6.195-3.174 28.211-5.478 39.066-7.014 32.307-4.403 79.565-9.421 79.565-35.789v-5.069h-235.469c-2.355 0.102-238.131 8.806-238.131 224.717zM481.946 747.622c4.506 71.987-57.088 125.082-149.606 131.789-93.952 6.912-171.264-35.379-175.77-107.315-2.202-34.611 13.005-68.403 42.752-95.386 30.157-27.29 71.578-44.186 116.634-47.514 5.325-0.307 10.598-0.614 15.872-0.614 86.989 0.051 145.869 51.149 150.118 119.040zM420.454 236.851c23.091 81.306-11.776 166.195-67.379 181.914-6.4 1.792-12.954 2.662-19.661 2.662-50.893 0-101.325-51.507-120.064-122.522-10.445-39.731-9.574-74.65 2.406-108.134 11.725-33.024 32.922-55.194 59.546-62.72 6.4-1.792 13.005-2.714 19.712-2.714 61.44 0 100.966 25.498 125.44 111.514zM819.2 409.6v-153.6h-102.4v153.6h-153.6v102.4h153.6v153.6h102.4v-153.6h153.6v-102.4h-153.6z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["google+"],"grid":20},"attrs":[],"properties":{"id":366,"order":28,"prevSize":20,"code":59665,"name":"google"},"setIdx":2,"setId":5,"iconIdx":365},{"icon":{"paths":["M870.4 51.2h-716.8c-56.32 0-102.4 46.080-102.4 102.4v716.8c0 56.371 46.080 102.4 102.4 102.4h716.8c56.32 0 102.4-46.029 102.4-102.4v-716.8c0-56.32-46.080-102.4-102.4-102.4zM511.181 794.778c156.621 0 283.546-127.027 283.546-283.597 0-17.306-2.202-33.997-5.274-50.381h80.947v369.459c0 19.558-15.872 35.328-35.482 35.328h-645.837c-19.61-0-35.482-15.77-35.482-35.328v-369.459h79.309c-3.123 16.384-5.325 33.075-5.325 50.381 0 156.621 127.027 283.597 283.597 283.597zM333.978 511.181c0-97.894 79.36-177.203 177.254-177.203 97.843 0 177.254 79.309 177.254 177.203s-79.411 177.254-177.254 177.254c-97.946 0-177.254-79.36-177.254-177.254zM834.918 307.2h-82.688c-19.558 0-35.43-15.974-35.43-35.43v-82.79c0-19.558 15.872-35.379 35.379-35.379h82.688c19.661 0 35.533 15.821 35.533 35.379v82.739c0 19.507-15.872 35.482-35.482 35.482z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["instagram"],"grid":20},"attrs":[],"properties":{"id":368,"order":29,"prevSize":20,"code":59666,"name":"instagram"},"setIdx":2,"setId":5,"iconIdx":367},{"icon":{"paths":["M441.19 677.222c-26.931 141.005-59.75 276.173-157.082 346.778-30.003-213.094 44.083-373.094 78.541-542.976-58.726-98.816 7.066-297.574 130.816-248.576 152.32 60.211-131.891 367.206 58.88 405.606 199.219 39.987 280.525-345.6 156.979-470.989-178.432-181.146-519.475-4.25-477.491 255.078 10.189 63.386 75.674 82.586 26.163 170.086-114.227-25.293-148.326-115.405-143.923-235.52 7.066-196.608 176.589-334.182 346.675-353.28 215.091-24.115 416.973 79.002 444.877 281.293 31.386 228.403-97.075 475.802-327.117 457.984-62.362-4.864-88.474-35.789-137.318-65.485z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["pinterest"],"grid":20},"attrs":[],"properties":{"id":374,"order":31,"prevSize":20,"code":59667,"name":"pinterest"},"setIdx":2,"setId":5,"iconIdx":373},{"icon":{"paths":["M798.72 931.635c-39.782 18.995-75.776 32.307-107.981 39.987-32.256 7.578-67.123 11.418-104.602 11.418-42.547 0-80.179-5.478-112.896-16.282-32.717-10.906-60.57-26.419-83.712-46.49-23.091-20.224-39.117-41.574-48.026-64.205-8.909-22.682-13.363-55.603-13.363-98.611v-330.496h-102.861v-133.325c36.557-11.981 67.891-29.184 93.952-51.712 26.112-22.426 47.002-49.408 62.822-80.896 15.77-31.386 26.573-71.475 32.563-120.064h132.352v238.182h220.877v147.814h-220.877v241.613c0 54.579 2.867 89.702 8.602 105.216 5.683 15.514 16.333 27.904 31.846 37.12 20.634 12.493 44.186 18.79 70.707 18.79 47.104 0 94.003-15.514 140.595-46.49v148.429z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["tumblr"],"grid":20},"attrs":[],"properties":{"id":379,"order":34,"prevSize":20,"code":59668,"name":"tumblr"},"setIdx":2,"setId":5,"iconIdx":378},{"icon":{"paths":["M886.579 319.795c0.41 8.294 0.563 16.691 0.563 24.986 0 255.488-194.406 549.99-549.888 549.99-109.21 0-210.739-32-296.294-86.886 15.155 1.792 30.515 2.714 46.080 2.714 90.624 0 173.926-30.925 240.026-82.688-84.531-1.587-155.955-57.395-180.531-134.195 11.776 2.202 23.91 3.379 36.352 3.379 17.664 0 34.765-2.304 50.944-6.707-88.422-17.818-155.034-95.898-155.034-189.594 0-0.819 0-1.587 0-2.406 26.061 14.49 55.91 23.194 87.552 24.218-51.866-34.714-86.016-93.798-86.016-160.922 0-35.379 9.523-68.608 26.214-97.178 95.283 116.992 237.773 193.894 398.387 201.984-3.277-14.182-4.966-28.877-4.966-44.083 0-106.701 86.477-193.178 193.229-193.178 55.603 0 105.83 23.398 141.107 60.979 43.981-8.704 85.35-24.781 122.726-46.899-14.438 45.107-45.107 82.995-84.992 106.906 39.117-4.71 76.288-15.002 111.002-30.413-25.907 38.81-58.675 72.806-96.461 99.994z"],"attrs":[],"isMulticolor":false,"isMulticolor2":false,"tags":["twitter"],"grid":20},"attrs":[],"properties":{"id":381,"order":30,"prevSize":20,"code":59669,"name":"twitter"},"setIdx":2,"setId":5,"iconIdx":380}],"height":1024,"metadata":{"name":"icomoon"},"preferences":{"showGlyphs":true,"showQuickUse":true,"showQuickUse2":true,"showSVGs":true,"fontPref":{"prefix":"icon-","metadata":{"fontFamily":"icomoon"},"metrics":{"emSize":1024,"baseline":6.25,"whitespace":50},"embed":false},"imagePref":{"prefix":"icon-","png":true,"useClassSelector":true,"color":0,"bgColor":16777215,"classSelector":".icon"},"historySize":100,"showCodes":true,"gridSize":16}} \ No newline at end of file diff --git a/images/about/badge.jpg b/images/about/badge.jpg deleted file mode 100644 index 8ac0a7d..0000000 Binary files a/images/about/badge.jpg and /dev/null differ diff --git a/images/about/boat.jpg b/images/about/boat.jpg deleted file mode 100644 index c547dd5..0000000 Binary files a/images/about/boat.jpg and /dev/null differ diff --git a/images/about/chill1.jpg b/images/about/chill1.jpg deleted file mode 100644 index b0ac43b..0000000 Binary files a/images/about/chill1.jpg and /dev/null differ diff --git a/images/about/chill2.jpg b/images/about/chill2.jpg deleted file mode 100644 index 9a58a58..0000000 Binary files a/images/about/chill2.jpg and /dev/null differ diff --git a/images/about/dance.jpg b/images/about/dance.jpg deleted file mode 100644 index 1c99139..0000000 Binary files a/images/about/dance.jpg and /dev/null differ diff --git a/images/about/hike.jpg b/images/about/hike.jpg deleted file mode 100644 index 05e870f..0000000 Binary files a/images/about/hike.jpg and /dev/null differ diff --git a/images/about/ski.jpg b/images/about/ski.jpg deleted file mode 100644 index ce72130..0000000 Binary files a/images/about/ski.jpg and /dev/null differ diff --git a/images/commerce-install/id-server-error-unauthorized_client.png b/images/commerce-install/id-server-error-unauthorized_client.png deleted file mode 100644 index 90c08a4..0000000 Binary files a/images/commerce-install/id-server-error-unauthorized_client.png and /dev/null differ diff --git a/images/commerce-install/identitty-server-notrust-error.PNG b/images/commerce-install/identitty-server-notrust-error.PNG deleted file mode 100644 index 3599acf..0000000 Binary files a/images/commerce-install/identitty-server-notrust-error.PNG and /dev/null differ diff --git a/images/commerce-install/identitty-server-notrust-snip.png b/images/commerce-install/identitty-server-notrust-snip.png deleted file mode 100644 index d7690f4..0000000 Binary files a/images/commerce-install/identitty-server-notrust-snip.png and /dev/null differ diff --git a/images/commerce-install/identitty-server-notrust.PNG b/images/commerce-install/identitty-server-notrust.PNG deleted file mode 100644 index cd1634a..0000000 Binary files a/images/commerce-install/identitty-server-notrust.PNG and /dev/null differ diff --git a/images/commerce-install/identitty-server-trusted.png b/images/commerce-install/identitty-server-trusted.png deleted file mode 100644 index a6c87a1..0000000 Binary files a/images/commerce-install/identitty-server-trusted.png and /dev/null differ diff --git a/images/commerce-install/iis-preinstall.PNG b/images/commerce-install/iis-preinstall.PNG deleted file mode 100644 index 5574b29..0000000 Binary files a/images/commerce-install/iis-preinstall.PNG and /dev/null differ diff --git a/images/commerce-install/no-storefront.png b/images/commerce-install/no-storefront.png deleted file mode 100644 index bf78efd..0000000 Binary files a/images/commerce-install/no-storefront.png and /dev/null differ diff --git a/images/commerce-install/sc911_installissue-marketting-nostart.png b/images/commerce-install/sc911_installissue-marketting-nostart.png deleted file mode 100644 index 248fc51..0000000 Binary files a/images/commerce-install/sc911_installissue-marketting-nostart.png and /dev/null differ diff --git a/images/commerce-install/sc911_installissue.png b/images/commerce-install/sc911_installissue.png deleted file mode 100644 index 98312b9..0000000 Binary files a/images/commerce-install/sc911_installissue.png and /dev/null differ diff --git a/images/commerce-install/sc911_success.png b/images/commerce-install/sc911_success.png deleted file mode 100644 index 063b1e2..0000000 Binary files a/images/commerce-install/sc911_success.png and /dev/null differ diff --git a/images/favico.png b/images/favico.png deleted file mode 100644 index 7e2d233..0000000 Binary files a/images/favico.png and /dev/null differ diff --git a/images/favicon.ico b/images/favicon.ico deleted file mode 100644 index 59fd5a7..0000000 Binary files a/images/favicon.ico and /dev/null differ diff --git a/images/wishlist/sitecore-angel.png b/images/wishlist/sitecore-angel.png deleted file mode 100644 index fb62c57..0000000 Binary files a/images/wishlist/sitecore-angel.png and /dev/null differ diff --git a/images/wishlist/web-clusters.png b/images/wishlist/web-clusters.png deleted file mode 100644 index bd9e49e..0000000 Binary files a/images/wishlist/web-clusters.png and /dev/null differ diff --git a/index.html b/index.html deleted file mode 100644 index 7830caf..0000000 --- a/index.html +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - Sitecore Source - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
- -
- -
-
-
- -

- - Some issues and solutions I faced when installing Sitecore commerce 9.1 with Sitecore 9.1.1 (9.1 Update 1) - -

- - - - - - -
-
-

The first thing to recommend is, use Viet Hoangs installation guides and his scrips, there are things like trusted itentity server certs which and needed for the commerce install that Sitecores default installation for 9.1.1 does not have:

- -

Sitecore 9.1 update 1 issues

- - -
- Read More -
- - - - - -
-
-
- -
-
-
- -

- - Sitecore wish list - -

- - - - - - -
-
-

sitecore angel

-

This post is dedicated to a wishlist of what we would like to see from features to documentation and everything in between.
Please feel free to comment below or email me on rdias@1digit.co.uk if you want me to add something to this list, correct me or let me know if a wish has been granted.
- - -

- Read More -
- - - - - -

-
-
- -
- - -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - diff --git a/js/app.js b/js/app.js deleted file mode 100644 index 2cc66ee..0000000 --- a/js/app.js +++ /dev/null @@ -1,257 +0,0 @@ -/* eslint-disable */ -var customSearch; -(function ($) { - - "use strict"; - const scrollCorrection = 70; // (header height = 50px) + (gap = 20px) - function scrolltoElement(elem, correction) { - correction = correction || scrollCorrection; - const $elem = elem.href ? $(elem.getAttribute('href')) : $(elem); - $('html, body').animate({ 'scrollTop': $elem.offset().top - correction }, 400); - }; - - function setHeader() { - if (!window.subData) return; - const $wrapper = $('header .wrapper'); - const $comment = $('.s-comment', $wrapper); - const $toc = $('.s-toc', $wrapper); - const $top = $('.s-top',$wrapper); - - $wrapper.find('.nav-sub .logo').text(window.subData.title); - let pos = document.body.scrollTop; - $(document, window).scroll(() => { - const scrollTop = $(window).scrollTop(); - const del = scrollTop - pos; - if (del >= 20) { - pos = scrollTop; - $wrapper.addClass('sub'); - } else if (del <= -20) { - pos = scrollTop; - $wrapper.removeClass('sub'); - } - }); - // bind events to every btn - const $commentTarget = $('#comments'); - if ($commentTarget.length) { - $comment.click(e => { e.preventDefault(); e.stopPropagation(); scrolltoElement($commentTarget); }); - } else $comment.remove(); - - const $tocTarget = $('.toc-wrapper'); - if ($tocTarget.length && $tocTarget.children().length) { - $toc.click((e) => { e.stopPropagation(); $tocTarget.toggleClass('active'); }); - } else $toc.remove(); - - $top.click(()=>scrolltoElement(document.body)); - - } - function setHeaderMenu() { - var $headerMenu = $('header .menu'); - var $underline = $headerMenu.find('.underline'); - function setUnderline($item, transition) { - $item = $item || $headerMenu.find('li a.active');//get instant - transition = transition === undefined ? true : !!transition; - if (!transition) $underline.addClass('disable-trans'); - if ($item && $item.length) { - $item.addClass('active').siblings().removeClass('active'); - $underline.css({ - left: $item.position().left, - width: $item.innerWidth() - }); - } else { - $underline.css({ - left: 0, - width: 0 - }); - } - if (!transition) { - setTimeout(function () { $underline.removeClass('disable-trans') }, 0);//get into the queue. - } - } - $headerMenu.on('mouseenter', 'li', function (e) { - setUnderline($(e.currentTarget)); - }); - $headerMenu.on('mouseout', function () { - setUnderline(); - }); - //set current active nav - var $active_link = null; - if (location.pathname === '/' || location.pathname.startsWith('/page/')) { - $active_link = $('.nav-home', $headerMenu); - } else { - var name = location.pathname.match(/\/(.*?)\//); - if (name.length > 1) { - $active_link = $('.nav-' + name[1], $headerMenu); - } - } - setUnderline($active_link, false); - } - function setHeaderMenuPhone() { - var $switcher = $('.l_header .switcher .s-menu'); - $switcher.click(function (e) { - e.stopPropagation(); - $('body').toggleClass('z_menu-open'); - $switcher.toggleClass('active'); - }); - $(document).click(function (e) { - $('body').removeClass('z_menu-open'); - $switcher.removeClass('active'); - }); - } - function setHeaderSearch() { - var $switcher = $('.l_header .switcher .s-search'); - var $header = $('.l_header'); - var $search = $('.l_header .m_search'); - if ($switcher.length === 0) return; - $switcher.click(function (e) { - e.stopPropagation(); - $header.toggleClass('z_search-open'); - $search.find('input').focus(); - }); - $(document).click(function (e) { - $header.removeClass('z_search-open'); - }); - $search.click(function (e) { - e.stopPropagation(); - }) - } - function setWaves() { - Waves.attach('.flat-btn', ['waves-button']); - Waves.attach('.float-btn', ['waves-button', 'waves-float']); - Waves.attach('.float-btn-light', ['waves-button', 'waves-float', 'waves-light']); - Waves.attach('.flat-box', ['waves-block']); - Waves.attach('.float-box', ['waves-block', 'waves-float']); - Waves.attach('.waves-image'); - Waves.init(); - } - function setScrollReveal() { - const $reveal = $('.reveal'); - if ($reveal.length === 0) return; - const sr = ScrollReveal({ distance: 0 }); - sr.reveal('.reveal'); - } - function setTocToggle() { - const $toc = $('.toc-wrapper'); - if ($toc.length === 0) return; - $toc.click((e) => { e.stopPropagation(); $toc.addClass('active'); }); - $(document).click(() => $toc.removeClass('active')); - - $toc.on('click', 'a', (e) => { - e.preventDefault(); - e.stopPropagation(); - scrolltoElement(e.target.tagName.toLowerCase === 'a' ? e.target : e.target.parentElement); - }); - - const liElements = Array.from($toc.find('li a')); - //function animate above will convert float to int. - const getAnchor = () => liElements.map(elem => Math.floor($(elem.getAttribute('href')).offset().top - scrollCorrection)); - - let anchor = getAnchor(); - const scrollListener = () => { - const scrollTop = $('html').scrollTop() || $('body').scrollTop(); - if (!anchor) return; - //binary search. - let l = 0, r = anchor.length - 1, mid; - while (l < r) { - mid = (l + r + 1) >> 1; - if (anchor[mid] === scrollTop) l = r = mid; - else if (anchor[mid] < scrollTop) l = mid; - else r = mid - 1; - } - $(liElements).removeClass('active').eq(l).addClass('active'); - } - $(window) - .resize(() => { - anchor = getAnchor(); - scrollListener(); - }) - .scroll(() => { - scrollListener() - }); - scrollListener(); - } - - // function getPicture() { - // const $banner = $('.banner'); - // if ($banner.length === 0) return; - // const url = ROOT + 'js/lovewallpaper.json'; - // $.get(url).done(res => { - // if (res.data.length > 0) { - // const index = Math.floor(Math.random() * res.data.length); - // $banner.css('background-image', 'url(' + res.data[index].big + ')'); - // } - // }) - // } - - // function getHitokoto() { - // const $hitokoto = $('#hitokoto'); - // if($hitokoto.length === 0) return; - // const url = 'http://api.hitokoto.us/rand?length=80&encode=jsc&fun=handlerHitokoto'; - // $('body').append(''.replace('%s',url)); - // window.handlerHitokoto = (data) => { - // $hitokoto - // .css('color','transparent') - // .text(data.hitokoto) - // if(data.source) $hitokoto.append(' —— %s'.replace('%s',data.source)); - // else if(data.author) $hitokoto.append(' —— %s'.replace('%s',data.author)); - // $hitokoto.css('color','white'); - // } - // } - - - $(function () { - //set header - setHeader(); - setHeaderMenu(); - setHeaderMenuPhone(); - setHeaderSearch(); - setWaves(); - setScrollReveal(); - setTocToggle(); - // getHitokoto(); - // getPicture(); - - - $(".article .video-container").fitVids(); - - setTimeout(function () { - $('#loading-bar-wrapper').fadeOut(500); - }, 300); - - if (SEARCH_SERVICE === 'google') { - customSearch = new GoogleCustomSearch({ - apiKey: GOOGLE_CUSTOM_SEARCH_API_KEY, - engineId: GOOGLE_CUSTOM_SEARCH_ENGINE_ID, - imagePath: "/images/" - }); - } - else if (SEARCH_SERVICE === 'algolia') { - customSearch = new AlgoliaSearch({ - apiKey: ALGOLIA_API_KEY, - appId: ALGOLIA_APP_ID, - indexName: ALGOLIA_INDEX_NAME, - imagePath: "/images/" - }); - } - else if (SEARCH_SERVICE === 'hexo') { - customSearch = new HexoSearch({ - imagePath: "/images/" - }); - } - else if (SEARCH_SERVICE === 'azure') { - customSearch = new AzureSearch({ - serviceName: AZURE_SERVICE_NAME, - indexName: AZURE_INDEX_NAME, - queryKey: AZURE_QUERY_KEY, - imagePath: "/images/" - }); - } - else if (SEARCH_SERVICE === 'baidu') { - customSearch = new BaiduSearch({ - apiId: BAIDU_API_ID, - imagePath: "/images/" - }); - } - - }); - -})(jQuery); \ No newline at end of file diff --git a/js/jquery.fitvids.js b/js/jquery.fitvids.js deleted file mode 100644 index bbfcdc0..0000000 --- a/js/jquery.fitvids.js +++ /dev/null @@ -1,87 +0,0 @@ -/*jshint browser:true */ -/*! -* FitVids 1.1 -* -* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com -* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ -* Released under the WTFPL license - http://sam.zoy.org/wtfpl/ -* -*/ - -;(function( $ ){ - - 'use strict'; - - $.fn.fitVids = function( options ) { - var settings = { - customSelector: null, - ignore: null - }; - - if(!document.getElementById('fit-vids-style')) { - // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js - var head = document.head || document.getElementsByTagName('head')[0]; - var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}'; - var div = document.createElement("div"); - div.innerHTML = '

x

'; - head.appendChild(div.childNodes[1]); - } - - if ( options ) { - $.extend( settings, options ); - } - - return this.each(function(){ - var selectors = [ - 'iframe[src*="player.vimeo.com"]', - 'iframe[src*="youtube.com"]', - 'iframe[src*="youtube-nocookie.com"]', - 'iframe[src*="kickstarter.com"][src*="video.html"]', - 'object', - 'embed' - ]; - - if (settings.customSelector) { - selectors.push(settings.customSelector); - } - - var ignoreList = '.fitvidsignore'; - - if(settings.ignore) { - ignoreList = ignoreList + ', ' + settings.ignore; - } - - var $allVideos = $(this).find(selectors.join(',')); - $allVideos = $allVideos.not('object object'); // SwfObj conflict patch - $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video. - - $allVideos.each(function(){ - var $this = $(this); - if($this.parents(ignoreList).length > 0) { - return; // Disable FitVids on this video. - } - if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } - if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) - { - $this.attr('height', 9); - $this.attr('width', 16); - } - var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), - width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), - aspectRatio = height / width; - if(!$this.attr('name')){ - var videoName = 'fitvid' + $.fn.fitVids._count; - $this.attr('name', videoName); - $.fn.fitVids._count++; - } - $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%'); - $this.removeAttr('height').removeAttr('width'); - }); - }); - }; - - // Internal counter for unique video names. - $.fn.fitVids._count = 0; - -// Works with either jQuery or Zepto -})( window.jQuery || window.Zepto ); diff --git a/js/search.js b/js/search.js deleted file mode 100644 index 72b1f60..0000000 --- a/js/search.js +++ /dev/null @@ -1,781 +0,0 @@ -/* eslint-disable */ -var SearchService = ""; - -(function($) { - /** - * A super class of common logics for all search services - * @param options : (object) - */ - SearchService = function(options) { - var self = this; - - self.config = $.extend({ - per_page: 10, - selectors: { - body: "body", - form: ".u-search-form", - input: ".u-search-input", - container: "#u-search", - modal: "#u-search .modal", - modal_body: "#u-search .modal-body", - modal_footer: "#u-search .modal-footer", - modal_overlay: "#u-search .modal-overlay", - modal_results: "#u-search .modal-results", - modal_metadata: "#u-search .modal-metadata", - modal_error: "#u-search .modal-error", - modal_loading_bar: "#u-search .modal-loading-bar", - modal_ajax_content: "#u-search .modal-ajax-content", - modal_logo: '#u-search .modal-footer .logo', - btn_close: "#u-search .btn-close", - btn_next: "#u-search .btn-next", - btn_prev: "#u-search .btn-prev" - }, - brands: { - 'google': {logo: 'google.svg', url: 'https://cse.google.com'}, - 'algolia': {logo: 'algolia.svg', url: 'https://www.algolia.com'}, - 'hexo': {logo: '', url: ''}, - 'azure': {logo: 'azure.svg', url: 'https://azure.microsoft.com/en-us/services/search/'}, - 'baidu': {logo: 'baidu.svg', url: 'http://zn.baidu.com/cse/home/index'} - }, - imagePath: ROOT + "img/" - }, options); - - self.dom = {}; - self.percentLoaded = 0; - self.open = false; - self.queryText = ""; - self.nav = { - next: -1, - prev: -1, - total: 0, - current: 1 - }; - - self.parseSelectors = function() { - for (var key in self.config.selectors) { - self.dom[key] = $(self.config.selectors[key]); - } - }; - - self.beforeQuery = function() { - if (!self.open) { - self.dom.container.fadeIn(); - self.dom.body.addClass('modal-active'); - } - self.dom.input.each(function(index,elem) { - $(elem).val(self.queryText); - }); - document.activeElement.blur(); - self.dom.modal_error.hide(); - self.dom.modal_ajax_content.removeClass('loaded'); - self.startLoading(); - }; - - self.afterQuery = function() { - self.dom.modal_body.scrollTop(0); - self.dom.modal_ajax_content.addClass('loaded'); - self.stopLoading(); - }; - - /** - * Perform a complete serach operation including UI updates and query - * @param startIndex {int} start index or page number - */ - self.search = function(startIndex, callback) { - self.beforeQuery(); - if (self.search instanceof Function) { - self.query(self.queryText, startIndex, function() { - self.afterQuery(); - }); - } - else { - console.log("query() does not exist."); - self.onQueryError(self.queryText, ''); - self.afterQuery(); - } - }; - - /** - * Query error handler - * @param queryText: (string) - * @param status: (string) - */ - self.onQueryError = function(queryText, status) { - var errMsg = ""; - if (status === "success") errMsg = "No result found for \"" +queryText+ "\"."; - else if (status === "timeout") errMsg = "Unfortunate timeout."; - else errMsg = "Mysterious failure."; - self.dom.modal_results.html(""); - self.dom.modal_error.html(errMsg); - self.dom.modal_error.show(); - }; - - self.nextPage = function() { - if (self.nav.next !== -1) { - self.search(self.nav.next); - } - }; - - self.prevPage = function() { - if (self.nav.prev !== -1) { - self.search(self.nav.prev); - } - }; - - /** - * Generate html for one result - * @param url : (string) url - * @param title : (string) title - * @param digest : (string) digest - */ - self.buildResult = function(url, title, digest) { - var html = ""; - html = "
  • "; - html += ""; - html += "" +title+ ""; - html += "" +digest+ ""; - html += ""; - html += ""; - html += "
  • "; - return html; - }; - - /** - * Close the modal, resume body scrolling - * no param - */ - self.close = function() { - self.open = false; - self.dom.container.fadeOut(); - self.dom.body.removeClass('modal-active'); - }; - - /** - * Searchform submit event handler - * @param queryText : (string) the query text - */ - self.onSubmit = function(event) { - event.preventDefault(); - self.queryText = $(this).find('.u-search-input').val(); - if (self.queryText) { - self.search(1); - } - }; - - /** - * Start loading bar animation - * no param - */ - self.startLoading = function() { - self.dom.modal_loading_bar.show(); - self.loadingTimer = setInterval(function() { - self.percentLoaded = Math.min(self.percentLoaded+5,95); - self.dom.modal_loading_bar.css('width', self.percentLoaded+'%'); - }, 100); - }; - - /** - * Stop loading bar animation - * no param - */ - self.stopLoading = function() { - clearInterval(self.loadingTimer); - self.dom.modal_loading_bar.css('width', '100%'); - self.dom.modal_loading_bar.fadeOut(); - setTimeout(function() { - self.percentLoaded = 0; - self.dom.modal_loading_bar.css('width', '0%'); - }, 300); - }; - - /** - * Add service branding - * @param service {String} service name - */ - self.addLogo = function(service) { - var html = ""; - if (self.config.brands[service] && self.config.brands[service].logo) { - html += ""; - html += ''; - html += ""; - self.dom.modal_logo.html(html); - } - }; - - self.destroy = function() { - self.dom.form.each(function(index,elem) { - $(elem).off('submit'); - }); - self.dom.modal_overlay.off('click'); - self.dom.btn_close.off('click'); - self.dom.btn_next.off('click'); - self.dom.btn_prev.off('click'); - self.dom.container.remove(); - }; - - /** - * Load template and register event handlers - * no param - */ - self.init = function() { - $('body').append(template); - self.parseSelectors(); - self.dom.modal_footer.show(); - self.dom.form.each(function(index,elem) { - $(elem).on('submit', self.onSubmit); - }); - self.dom.modal_overlay.on('click', self.close); - self.dom.btn_close.on('click', self.close); - self.dom.btn_next.on('click', self.nextPage); - self.dom.btn_prev.on('click', self.prevPage); - }; - - self.init(); - }; - - var template = ''; -})(jQuery); - -var AlgoliaSearch; - -(function($) { - 'use strict'; - - /** - * Search by Algolia Search - * @param options : (object) - */ - AlgoliaSearch = function(options) { - SearchService.apply(this, arguments); - var self = this; - var endpoint = "https://" +self.config.appId+ "-dsn.algolia.net/1/indexes/" +self.config.indexName; - self.addLogo('algolia'); - - /** - * Generate result list html - * @param data : (array) result items - */ - self.buildResultList = function(data) { - var html = ""; - $.each(data, function(index, row) { - var url = row.permalink || row.path || ""; - if (!row.permalink && row.path) { - url = ROOT + url; - } - var title = row.title; - var digest = row._highlightResult.excerptStrip.value || ""; - html += self.buildResult(url, title, digest); - }); - return html; - }; - - /** - * Generate metadata after a successful query - * @param data : (object) the raw search response data - */ - self.buildMetadata = function(data) { - self.nav.current = data.page * data.hitsPerPage + 1; - self.nav.currentCount = data.hits.length; - self.nav.total = parseInt(data.nbHits); - self.dom.modal_metadata.children('.total').html(self.nav.total); - self.dom.modal_metadata.children('.range').html(self.nav.current + "-" + (self.nav.current+self.nav.currentCount-1)); - if (self.nav.total > 0) { - self.dom.modal_metadata.show(); - } - else { - self.dom.modal_metadata.hide(); - } - - if (data.page < data.nbPages-1) { - self.nav.next = (data.page+1)+1; - self.dom.btn_next.show(); - } - else { - self.nav.next = -1; - self.dom.btn_next.hide(); - } - if (data.page > 0) { - self.nav.prev = (data.page+1)-1; - self.dom.btn_prev.show(); - } - else { - self.nav.prev = -1; - self.dom.btn_prev.hide(); - } - }; - - /** - * Send a GET request - * @param queryText : (string) the query text - * @param page : (int) the current page (start from 1) - * @param callback : (function) - */ - self.query = function(queryText, page, callback) { - $.get(endpoint, { - query: queryText, - page: page-1, - hitsPerPage: self.config.per_page, - "x-algolia-application-id": self.config.appId, - "x-algolia-api-key": self.config.apiKey - }, function(data, status) { - if (status === 'success' && data.hits && data.hits.length > 0) { - var results = self.buildResultList(data.hits); - self.dom.modal_results.html(results); - } - else { - self.onQueryError(queryText, status); - } - self.buildMetadata(data); - if (callback) { - callback(data); - } - }); - }; - - return self; - }; - -})(jQuery); -var AzureSearch; - -(function($) { - 'use strict'; - - /** - * Search by Azure Search API - * @param options : (object) - */ - AzureSearch = function(options) { - SearchService.apply(this, arguments); - var self = this; - var endpoint = "https://" +self.config.serviceName+ ".search.windows.net/indexes/" +self.config.indexName+ "/docs?api-version=2015-02-28"; - self.nav.current = 1; - self.addLogo('azure'); - - /** - * Generate result list html - * @param data : (array) result items - */ - self.buildResultList = function(data) { - var html = ""; - $.each(data, function(index, row) { - var url = row.permalink || row.path || ""; - if (!row.permalink && row.path) { - url = "/" + url; - } - var title = row.title; - var digest = row.excerpt || ""; - html += self.buildResult(url, title, digest); - }); - return html; - }; - - /** - * Generate metadata after a successful query - * @param data : (object) the raw response data - * @param startIndex : (int) requested start index of current query - */ - self.buildMetadata = function(data, startIndex) { - self.nav.current = startIndex; - self.nav.currentCount = data.value.length; - self.nav.total = parseInt(data['@odata.count']); - self.dom.modal_metadata.children('.total').html(self.nav.total); - self.dom.modal_metadata.children('.range').html(self.nav.current + "-" + (self.nav.current+self.nav.currentCount-1)); - if (self.nav.total > 0) { - self.dom.modal_metadata.show(); - } - else { - self.dom.modal_metadata.hide(); - } - - if (self.nav.current+self.nav.currentCount <= self.nav.total) { - self.nav.next = self.nav.current+self.nav.currentCount; - self.dom.btn_next.show(); - } - else { - self.nav.next = -1; - self.dom.btn_next.hide(); - } - if (self.nav.current > 1) { - self.nav.prev = self.nav.current-self.config.per_page; - self.dom.btn_prev.show(); - } - else { - self.nav.prev = -1; - self.dom.btn_prev.hide(); - } - }; - - /** - * Send a GET request - * @param queryText : (string) the query text - * @param page : (int) the current page (start from 1) - * @param callback : (function) - */ - self.query = function(queryText, startIndex, callback) { - $.ajax({ - url: endpoint, - headers: { - "Accept": "application/json", - "api-key": self.config.queryKey - }, - data: { - search: queryText, - $orderby: "date desc", - $skip: startIndex-1, - $top: self.config.per_page, - $count: true - }, - type: "GET", - success: function(data, status) { - if (status === 'success' && data.value && data.value.length > 0) { - var results = self.buildResultList(data.value); - self.dom.modal_results.html(results); - } - else { - self.onQueryError(queryText, status); - } - self.buildMetadata(data, startIndex); - if (callback) { - callback(data); - } - } - }); - }; - - return self; - }; - -})(jQuery); -var BaiduSearch; - -(function($) { - 'use strict'; - - /** - * TODO - * Search by Baidu Search API - * @param options : (object) - */ - BaiduSearch = function(options) { - SearchService.apply(this, arguments); - var self = this; - var endpoint = ""; - self.addLogo('baidu'); - - /** - * Generate result list html - * @param data : (array) result items - */ - self.buildResultList = function(data, queryText) { - var results = [], - html = ""; - $.each(data, function(index, post) { - if (self.contentSearch(post, queryText)) - html += self.buildResult(post.linkUrl, post.title, post.abstract); - }); - return html; - }; - - /** - * Generate metadata after a successful query - * @param data : (object) the raw google custom search response data - */ - self.buildMetadata = function(data) { - - }; - - self.loadScript = function() { - self.dom.input.each(function(index,elem) { - $(elem).attr('disabled', true); - }); - var script = ""; - self.dom.body.append(script); - }; - - self.initBaidu = function() { - self.cse = new BCse.Search(self.config.apiId); - //self.cse.setPageNum(self.config.per_page); - self.dom.input.each(function(index,elem) { - $(elem).attr('disabled', false); - }); - }; - - /** - * Get search results - * @param queryText {String} - * @param page {Integer} - * @param callback {Function} - */ - self.query = function(queryText, page, callback) { - self.cse.getResult(queryText, function(data) { - console.log("Searching: " + queryText); - console.log(data); - self.cse.getError(function(data) { - console.log(data); - }); - if (data.length > 0) { - self.buildResultList(data, queryText); - self.cse.getSearchInfo(queryText, function(data) { - console.log(data); - self.buildMetadata(data); - }); - } - else { - self.nav.total = 0; - self.nav.next = -1; - self.nav.prev = -1; - self.dom.modal_metadata.hide(); - self.dom.btn_next.hide(); - self.dom.btn_prev.hide(); - self.onQueryError(queryText, "success"); - } - if (callback instanceof Function) { - callback(); - } - }); - }; - - self.loadScript(); - - return self; - }; - -})(jQuery); -var GoogleCustomSearch = ""; - -(function($) { - 'use strict'; - - /** - * Search by Google Custom Search Engine JSON API - * @param options : (object) - */ - GoogleCustomSearch = function(options) { - SearchService.apply(this, arguments); - var self = this; - var endpoint = "https://www.googleapis.com/customsearch/v1"; - self.addLogo('google'); - - /** - * Generate result list html - * @param data : (array) result items - */ - self.buildResultList = function(data) { - var html = ""; - $.each(data, function(index, row) { - var url = row.link; - var title = row.title; - var digest = (row.htmlSnippet || "").replace('
    ',''); - html += self.buildResult(url, title, digest); - }); - return html; - }; - - /** - * Generate metadata after a successful query - * @param data : (object) the raw google custom search response data - */ - self.buildMetadata = function(data) { - if (data.queries && data.queries.request && data.queries.request[0].totalResults !== '0') { - self.nav.current = data.queries.request[0].startIndex; - self.nav.currentCount = data.queries.request[0].count; - self.nav.total = parseInt(data.queries.request[0].totalResults); - self.dom.modal_metadata.children('.total').html(self.nav.total); - self.dom.modal_metadata.children('.range').html(self.nav.current + "-" + (self.nav.current+self.nav.currentCount-1)); - self.dom.modal_metadata.show(); - } - else { - self.dom.modal_metadata.hide(); - } - if (data.queries && data.queries.nextPage) { - self.nav.next = data.queries.nextPage[0].startIndex; - self.dom.btn_next.show(); - } - else { - self.nav.next = -1; - self.dom.btn_next.hide(); - } - if (data.queries && data.queries.previousPage) { - self.nav.prev = data.queries.previousPage[0].startIndex; - self.dom.btn_prev.show(); - } - else { - self.nav.prev = -1; - self.dom.btn_prev.hide(); - } - }; - - /** - * Send a GET request - * @param queryText : (string) the query text - * @param startIndex : (int) the index of first item (start from 1) - * @param callback : (function) - */ - self.query = function(queryText, startIndex, callback) { - $.get(endpoint, { - key: self.config.apiKey, - cx: self.config.engineId, - q: queryText, - start: startIndex, - num: self.config.per_page - }, function(data, status) { - if (status === 'success' && data.items && data.items.length > 0) { - var results = self.buildResultList(data.items); - self.dom.modal_results.html(results); - } - else { - self.onQueryError(queryText, status); - } - self.buildMetadata(data); - if (callback) { - callback(); - } - }); - }; - - return self; - }; -})(jQuery); -var HexoSearch; - -(function($) { - 'use strict'; - - /** - * Search by Hexo generator json content - * @param options : (object) - */ - HexoSearch = function(options) { - SearchService.apply(this, arguments); - var self = this; - self.config.endpoint = ROOT + ((options||{}).endpoint || "content.json"); - self.config.endpoint = self.config.endpoint.replace("//","/"); //make sure the url is correct - self.cache = ""; - - /** - * Search queryText in title and content of a post - * Credit to: http://hahack.com/codes/local-search-engine-for-hexo/ - * @param post : the post object - * @param queryText : the search query - */ - self.contentSearch = function(post, queryText) { - var post_title = post.title.trim().toLowerCase(), - post_content = post.text.trim().toLowerCase(), - keywords = queryText.trim().toLowerCase().split(" "), - foundMatch = false, - index_title = -1, - index_content = -1, - first_occur = -1; - if (post_title !== '' && post_content !== '') { - $.each(keywords, function(index, word) { - index_title = post_title.indexOf(word); - index_content = post_content.indexOf(word); - if (index_title < 0 && index_content < 0) { - foundMatch = false; - } - else { - foundMatch = true; - if (index_content < 0) { - index_content = 0; - } - if (index === 0) { - first_occur = index_content; - } - } - if (foundMatch) { - post_content = post.text.trim(); - var start = 0, end = 0; - if (first_occur >= 0) { - start = Math.max(first_occur-30, 0); - end = (start === 0) ? Math.min(200, post_content.length) : Math.min(first_occur+170, post_content.length); - var match_content = post_content.substring(start, end); - keywords.forEach(function(keyword) { - var regS = new RegExp(keyword, "gi"); - match_content = match_content.replace(regS, ""+keyword+""); - }); - post.digest = match_content; - } - else { - end = Math.min(200, post_content.length); - post.digest = post_content.trim().substring(0, end); - } - } - }); - } - return foundMatch; - }; - - /** - * Generate result list html - * @param data : (array) result items - */ - self.buildResultList = function(data, queryText) { - var results = [], - html = ""; - $.each(data, function(index, post) { - if (self.contentSearch(post, queryText)) - html += self.buildResult(post.permalink, post.title, post.digest); - }); - return html; - }; - - /** - * Generate metadata after a successful query - * @param data : (object) the raw google custom search response data - */ - self.buildMetadata = function(data) { - self.dom.modal_footer.hide(); - }; - - /** - * Send a GET request - * @param queryText : (string) the query text - * @param startIndex : (int) the index of first item (start from 1) - * @param callback : (function) - */ - self.query = function(queryText, startIndex, callback) { - if (!self.cache) { - $.get(self.config.endpoint, { - key: self.config.apiKey, - cx: self.config.engineId, - q: queryText, - start: startIndex, - num: self.config.per_page - }, function(data, status) { - if (status !== 'success' || - !data || - (!data.posts && !data.pages) || - (data.posts.length < 1 && data.pages.length < 1) - ) { - self.onQueryError(queryText, status); - } - else { - self.cache = data; - var results = ""; - results += self.buildResultList(data.pages, queryText); - results += self.buildResultList(data.posts, queryText); - self.dom.modal_results.html(results); - } - self.buildMetadata(data); - if (callback) { - callback(data); - } - }); - } - else { - var results = ""; - results += self.buildResultList(self.cache.pages, queryText); - results += self.buildResultList(self.cache.posts, queryText); - self.dom.modal_results.html(results); - self.buildMetadata(self.cache); - if (callback) { - callback(self.cache); - } - } - }; - - return self; - }; - -})(jQuery); \ No newline at end of file diff --git a/node_modules/.bin/JSONStream b/node_modules/.bin/JSONStream new file mode 100644 index 0000000..4376e92 --- /dev/null +++ b/node_modules/.bin/JSONStream @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../JSONStream/bin.js" "$@" + ret=$? +else + node "$basedir/../JSONStream/bin.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/JSONStream.cmd b/node_modules/.bin/JSONStream.cmd new file mode 100644 index 0000000..ab44840 --- /dev/null +++ b/node_modules/.bin/JSONStream.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\JSONStream\bin.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\JSONStream\bin.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/atob b/node_modules/.bin/atob new file mode 100644 index 0000000..5089679 --- /dev/null +++ b/node_modules/.bin/atob @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../atob/bin/atob.js" "$@" + ret=$? +else + node "$basedir/../atob/bin/atob.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/atob.cmd b/node_modules/.bin/atob.cmd new file mode 100644 index 0000000..34edc9a --- /dev/null +++ b/node_modules/.bin/atob.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\atob\bin\atob.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\atob\bin\atob.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/autoprefixer b/node_modules/.bin/autoprefixer new file mode 100644 index 0000000..3d8838c --- /dev/null +++ b/node_modules/.bin/autoprefixer @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../autoprefixer/bin/autoprefixer" "$@" + ret=$? +else + node "$basedir/../autoprefixer/bin/autoprefixer" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/autoprefixer.cmd b/node_modules/.bin/autoprefixer.cmd new file mode 100644 index 0000000..75bb406 --- /dev/null +++ b/node_modules/.bin/autoprefixer.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\autoprefixer\bin\autoprefixer" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\autoprefixer\bin\autoprefixer" %* +) \ No newline at end of file diff --git a/node_modules/.bin/browserslist b/node_modules/.bin/browserslist new file mode 100644 index 0000000..1df3f2a --- /dev/null +++ b/node_modules/.bin/browserslist @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + ret=$? +else + node "$basedir/../browserslist/cli.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/browserslist.cmd b/node_modules/.bin/browserslist.cmd new file mode 100644 index 0000000..e4006d7 --- /dev/null +++ b/node_modules/.bin/browserslist.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\browserslist\cli.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\browserslist\cli.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/bunyan b/node_modules/.bin/bunyan new file mode 100644 index 0000000..2ac883e --- /dev/null +++ b/node_modules/.bin/bunyan @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../hexo-bunyan/bin/bunyan" "$@" + ret=$? +else + node "$basedir/../hexo-bunyan/bin/bunyan" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/bunyan.cmd b/node_modules/.bin/bunyan.cmd new file mode 100644 index 0000000..302243b --- /dev/null +++ b/node_modules/.bin/bunyan.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\hexo-bunyan\bin\bunyan" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\hexo-bunyan\bin\bunyan" %* +) \ No newline at end of file diff --git a/node_modules/.bin/errno b/node_modules/.bin/errno new file mode 100644 index 0000000..9532c97 --- /dev/null +++ b/node_modules/.bin/errno @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../errno/cli.js" "$@" + ret=$? +else + node "$basedir/../errno/cli.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/errno.cmd b/node_modules/.bin/errno.cmd new file mode 100644 index 0000000..3b337b4 --- /dev/null +++ b/node_modules/.bin/errno.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\errno\cli.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\errno\cli.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/esparse b/node_modules/.bin/esparse new file mode 100644 index 0000000..2525527 --- /dev/null +++ b/node_modules/.bin/esparse @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@" + ret=$? +else + node "$basedir/../esprima/bin/esparse.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/esparse.cmd b/node_modules/.bin/esparse.cmd new file mode 100644 index 0000000..064f58e --- /dev/null +++ b/node_modules/.bin/esparse.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\esprima\bin\esparse.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\esprima\bin\esparse.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/esvalidate b/node_modules/.bin/esvalidate new file mode 100644 index 0000000..2137cd5 --- /dev/null +++ b/node_modules/.bin/esvalidate @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@" + ret=$? +else + node "$basedir/../esprima/bin/esvalidate.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/esvalidate.cmd b/node_modules/.bin/esvalidate.cmd new file mode 100644 index 0000000..8dfaec0 --- /dev/null +++ b/node_modules/.bin/esvalidate.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\esprima\bin\esvalidate.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\esprima\bin\esvalidate.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/hexo b/node_modules/.bin/hexo new file mode 100644 index 0000000..63be667 --- /dev/null +++ b/node_modules/.bin/hexo @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../hexo/bin/hexo" "$@" + ret=$? +else + node "$basedir/../hexo/bin/hexo" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/hexo.cmd b/node_modules/.bin/hexo.cmd new file mode 100644 index 0000000..80c1493 --- /dev/null +++ b/node_modules/.bin/hexo.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\hexo\bin\hexo" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\hexo\bin\hexo" %* +) \ No newline at end of file diff --git a/node_modules/.bin/image-size b/node_modules/.bin/image-size new file mode 100644 index 0000000..0380071 --- /dev/null +++ b/node_modules/.bin/image-size @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../image-size/bin/image-size.js" "$@" + ret=$? +else + node "$basedir/../image-size/bin/image-size.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/image-size.cmd b/node_modules/.bin/image-size.cmd new file mode 100644 index 0000000..d81c582 --- /dev/null +++ b/node_modules/.bin/image-size.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\image-size\bin\image-size.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\image-size\bin\image-size.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/js-yaml b/node_modules/.bin/js-yaml new file mode 100644 index 0000000..460d9df --- /dev/null +++ b/node_modules/.bin/js-yaml @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@" + ret=$? +else + node "$basedir/../js-yaml/bin/js-yaml.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/js-yaml.cmd b/node_modules/.bin/js-yaml.cmd new file mode 100644 index 0000000..ae8e7bc --- /dev/null +++ b/node_modules/.bin/js-yaml.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\js-yaml\bin\js-yaml.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\js-yaml\bin\js-yaml.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/jsesc b/node_modules/.bin/jsesc new file mode 100644 index 0000000..e59ea43 --- /dev/null +++ b/node_modules/.bin/jsesc @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" + ret=$? +else + node "$basedir/../jsesc/bin/jsesc" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/jsesc.cmd b/node_modules/.bin/jsesc.cmd new file mode 100644 index 0000000..66206ea --- /dev/null +++ b/node_modules/.bin/jsesc.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\jsesc\bin\jsesc" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\jsesc\bin\jsesc" %* +) \ No newline at end of file diff --git a/node_modules/.bin/lessc b/node_modules/.bin/lessc new file mode 100644 index 0000000..a20538f --- /dev/null +++ b/node_modules/.bin/lessc @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../less/bin/lessc" "$@" + ret=$? +else + node "$basedir/../less/bin/lessc" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/lessc.cmd b/node_modules/.bin/lessc.cmd new file mode 100644 index 0000000..3a58879 --- /dev/null +++ b/node_modules/.bin/lessc.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\less\bin\lessc" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\less\bin\lessc" %* +) \ No newline at end of file diff --git a/node_modules/.bin/marked b/node_modules/.bin/marked new file mode 100644 index 0000000..ee1d450 --- /dev/null +++ b/node_modules/.bin/marked @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../marked/bin/marked" "$@" + ret=$? +else + node "$basedir/../marked/bin/marked" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/marked.cmd b/node_modules/.bin/marked.cmd new file mode 100644 index 0000000..88ce6d6 --- /dev/null +++ b/node_modules/.bin/marked.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\marked\bin\marked" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\marked\bin\marked" %* +) \ No newline at end of file diff --git a/node_modules/.bin/md2html b/node_modules/.bin/md2html new file mode 100644 index 0000000..264f084 --- /dev/null +++ b/node_modules/.bin/md2html @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../markdown/bin/md2html.js" "$@" + ret=$? +else + node "$basedir/../markdown/bin/md2html.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/md2html.cmd b/node_modules/.bin/md2html.cmd new file mode 100644 index 0000000..df8f708 --- /dev/null +++ b/node_modules/.bin/md2html.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\markdown\bin\md2html.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\markdown\bin\md2html.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime new file mode 100644 index 0000000..0dbddf0 --- /dev/null +++ b/node_modules/.bin/mime @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../mime/cli.js" "$@" + ret=$? +else + node "$basedir/../mime/cli.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/mime.cmd b/node_modules/.bin/mime.cmd new file mode 100644 index 0000000..8169562 --- /dev/null +++ b/node_modules/.bin/mime.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\mime\cli.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\mime\cli.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp new file mode 100644 index 0000000..4b00467 --- /dev/null +++ b/node_modules/.bin/mkdirp @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@" + ret=$? +else + node "$basedir/../mkdirp/bin/cmd.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/mkdirp.cmd b/node_modules/.bin/mkdirp.cmd new file mode 100644 index 0000000..0d2cdd7 --- /dev/null +++ b/node_modules/.bin/mkdirp.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\mkdirp\bin\cmd.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\mkdirp\bin\cmd.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/ncp b/node_modules/.bin/ncp new file mode 100644 index 0000000..96ff01e --- /dev/null +++ b/node_modules/.bin/ncp @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../ncp/bin/ncp" "$@" + ret=$? +else + node "$basedir/../ncp/bin/ncp" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/ncp.cmd b/node_modules/.bin/ncp.cmd new file mode 100644 index 0000000..afbf6d8 --- /dev/null +++ b/node_modules/.bin/ncp.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\ncp\bin\ncp" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\ncp\bin\ncp" %* +) \ No newline at end of file diff --git a/node_modules/.bin/nopt b/node_modules/.bin/nopt new file mode 100644 index 0000000..714334e --- /dev/null +++ b/node_modules/.bin/nopt @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" + ret=$? +else + node "$basedir/../nopt/bin/nopt.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/nopt.cmd b/node_modules/.bin/nopt.cmd new file mode 100644 index 0000000..1626454 --- /dev/null +++ b/node_modules/.bin/nopt.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\nopt\bin\nopt.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\nopt\bin\nopt.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/nunjucks-precompile b/node_modules/.bin/nunjucks-precompile new file mode 100644 index 0000000..ca3bceb --- /dev/null +++ b/node_modules/.bin/nunjucks-precompile @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../nunjucks/bin/precompile" "$@" + ret=$? +else + node "$basedir/../nunjucks/bin/precompile" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/nunjucks-precompile.cmd b/node_modules/.bin/nunjucks-precompile.cmd new file mode 100644 index 0000000..63baa60 --- /dev/null +++ b/node_modules/.bin/nunjucks-precompile.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\nunjucks\bin\precompile" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\nunjucks\bin\precompile" %* +) \ No newline at end of file diff --git a/node_modules/.bin/parser b/node_modules/.bin/parser new file mode 100644 index 0000000..5925785 --- /dev/null +++ b/node_modules/.bin/parser @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@" + ret=$? +else + node "$basedir/../@babel/parser/bin/babel-parser.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/parser.cmd b/node_modules/.bin/parser.cmd new file mode 100644 index 0000000..bbadb81 --- /dev/null +++ b/node_modules/.bin/parser.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\@babel\parser\bin\babel-parser.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\@babel\parser\bin\babel-parser.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/rimraf b/node_modules/.bin/rimraf new file mode 100644 index 0000000..3cebd6e --- /dev/null +++ b/node_modules/.bin/rimraf @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../rimraf/bin.js" "$@" + ret=$? +else + node "$basedir/../rimraf/bin.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/rimraf.cmd b/node_modules/.bin/rimraf.cmd new file mode 100644 index 0000000..9333ec6 --- /dev/null +++ b/node_modules/.bin/rimraf.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\rimraf\bin.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\rimraf\bin.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver new file mode 100644 index 0000000..d592e69 --- /dev/null +++ b/node_modules/.bin/semver @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../semver/bin/semver" "$@" + ret=$? +else + node "$basedir/../semver/bin/semver" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/semver.cmd b/node_modules/.bin/semver.cmd new file mode 100644 index 0000000..37c00a4 --- /dev/null +++ b/node_modules/.bin/semver.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\semver\bin\semver" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\semver\bin\semver" %* +) \ No newline at end of file diff --git a/node_modules/.bin/sshpk-conv b/node_modules/.bin/sshpk-conv new file mode 100644 index 0000000..c9c2987 --- /dev/null +++ b/node_modules/.bin/sshpk-conv @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../sshpk/bin/sshpk-conv" "$@" + ret=$? +else + node "$basedir/../sshpk/bin/sshpk-conv" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/sshpk-conv.cmd b/node_modules/.bin/sshpk-conv.cmd new file mode 100644 index 0000000..dde70b0 --- /dev/null +++ b/node_modules/.bin/sshpk-conv.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-conv" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\sshpk\bin\sshpk-conv" %* +) \ No newline at end of file diff --git a/node_modules/.bin/sshpk-sign b/node_modules/.bin/sshpk-sign new file mode 100644 index 0000000..1a92124 --- /dev/null +++ b/node_modules/.bin/sshpk-sign @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../sshpk/bin/sshpk-sign" "$@" + ret=$? +else + node "$basedir/../sshpk/bin/sshpk-sign" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/sshpk-sign.cmd b/node_modules/.bin/sshpk-sign.cmd new file mode 100644 index 0000000..45025ec --- /dev/null +++ b/node_modules/.bin/sshpk-sign.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-sign" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\sshpk\bin\sshpk-sign" %* +) \ No newline at end of file diff --git a/node_modules/.bin/sshpk-verify b/node_modules/.bin/sshpk-verify new file mode 100644 index 0000000..597a66b --- /dev/null +++ b/node_modules/.bin/sshpk-verify @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../sshpk/bin/sshpk-verify" "$@" + ret=$? +else + node "$basedir/../sshpk/bin/sshpk-verify" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/sshpk-verify.cmd b/node_modules/.bin/sshpk-verify.cmd new file mode 100644 index 0000000..1b5fc0c --- /dev/null +++ b/node_modules/.bin/sshpk-verify.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-verify" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\sshpk\bin\sshpk-verify" %* +) \ No newline at end of file diff --git a/node_modules/.bin/stylus b/node_modules/.bin/stylus new file mode 100644 index 0000000..9ad197b --- /dev/null +++ b/node_modules/.bin/stylus @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../stylus/bin/stylus" "$@" + ret=$? +else + node "$basedir/../stylus/bin/stylus" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/stylus.cmd b/node_modules/.bin/stylus.cmd new file mode 100644 index 0000000..d1abe2f --- /dev/null +++ b/node_modules/.bin/stylus.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\stylus\bin\stylus" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\stylus\bin\stylus" %* +) \ No newline at end of file diff --git a/node_modules/.bin/swig b/node_modules/.bin/swig new file mode 100644 index 0000000..69d77f7 --- /dev/null +++ b/node_modules/.bin/swig @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../swig-templates/bin/swig.js" "$@" + ret=$? +else + node "$basedir/../swig-templates/bin/swig.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/swig.cmd b/node_modules/.bin/swig.cmd new file mode 100644 index 0000000..84640aa --- /dev/null +++ b/node_modules/.bin/swig.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\swig-templates\bin\swig.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\swig-templates\bin\swig.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/to-title-case b/node_modules/.bin/to-title-case new file mode 100644 index 0000000..a284ffc --- /dev/null +++ b/node_modules/.bin/to-title-case @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../titlecase/bin.js" "$@" + ret=$? +else + node "$basedir/../titlecase/bin.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/to-title-case.cmd b/node_modules/.bin/to-title-case.cmd new file mode 100644 index 0000000..49be67c --- /dev/null +++ b/node_modules/.bin/to-title-case.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\titlecase\bin.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\titlecase\bin.js" %* +) \ No newline at end of file diff --git a/node_modules/.bin/uglifyjs b/node_modules/.bin/uglifyjs new file mode 100644 index 0000000..de7b74f --- /dev/null +++ b/node_modules/.bin/uglifyjs @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../uglify-js/bin/uglifyjs" "$@" + ret=$? +else + node "$basedir/../uglify-js/bin/uglifyjs" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/uglifyjs.cmd b/node_modules/.bin/uglifyjs.cmd new file mode 100644 index 0000000..3306013 --- /dev/null +++ b/node_modules/.bin/uglifyjs.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\uglify-js\bin\uglifyjs" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\uglify-js\bin\uglifyjs" %* +) \ No newline at end of file diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid new file mode 100644 index 0000000..f3bfcf4 --- /dev/null +++ b/node_modules/.bin/uuid @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../uuid/bin/uuid" "$@" + ret=$? +else + node "$basedir/../uuid/bin/uuid" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/uuid.cmd b/node_modules/.bin/uuid.cmd new file mode 100644 index 0000000..da52d68 --- /dev/null +++ b/node_modules/.bin/uuid.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\uuid\bin\uuid" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\uuid\bin\uuid" %* +) \ No newline at end of file diff --git a/node_modules/.bin/which b/node_modules/.bin/which new file mode 100644 index 0000000..cbe872c --- /dev/null +++ b/node_modules/.bin/which @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../which/bin/which" "$@" + ret=$? +else + node "$basedir/../which/bin/which" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/which.cmd b/node_modules/.bin/which.cmd new file mode 100644 index 0000000..588f44d --- /dev/null +++ b/node_modules/.bin/which.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\which\bin\which" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\which\bin\which" %* +) \ No newline at end of file diff --git a/node_modules/.bin/window-size b/node_modules/.bin/window-size new file mode 100644 index 0000000..d422c13 --- /dev/null +++ b/node_modules/.bin/window-size @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../window-size/cli.js" "$@" + ret=$? +else + node "$basedir/../window-size/cli.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/window-size.cmd b/node_modules/.bin/window-size.cmd new file mode 100644 index 0000000..e1cf626 --- /dev/null +++ b/node_modules/.bin/window-size.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\window-size\cli.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\window-size\cli.js" %* +) \ No newline at end of file diff --git a/node_modules/.yarn-integrity b/node_modules/.yarn-integrity new file mode 100644 index 0000000..166e1d3 --- /dev/null +++ b/node_modules/.yarn-integrity @@ -0,0 +1,473 @@ +{ + "systemParams": "win32-x64-59", + "modulesFolders": [ + "node_modules" + ], + "flags": [ + "production" + ], + "linkedModules": [], + "topLevelPatterns": [ + "hexo-generator-archive@^0.1.5", + "hexo-generator-category@^0.1.3", + "hexo-generator-index@^0.2.1", + "hexo-generator-tag@^0.2.0", + "hexo-renderer-ejs@^0.3.1", + "hexo-renderer-marked@^0.3.2", + "hexo-renderer-stylus@^0.3.3", + "hexo-server@^0.3.3", + "hexo@^3.8.0" + ], + "lockfileEntries": { + "JSONStream@^1.0.7": "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0", + "a-sync-waterfall@^1.0.0": "https://registry.yarnpkg.com/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz#75b6b6aa72598b497a125e7a2770f14f4c8a1fa7", + "abbrev@1": "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8", + "abbrev@^1.0.7": "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8", + "accepts@~1.3.5": "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2", + "align-text@^0.1.1": "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117", + "align-text@^0.1.3": "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117", + "amdefine@>=0.0.4": "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5", + "ansi-regex@^2.0.0": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df", + "ansi-regex@^3.0.0": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998", + "ansi-styles@^2.2.1": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe", + "ansi-styles@^3.2.1": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d", + "anymatch@^1.3.0": "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a", + "anymatch@^2.0.0": "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb", + "aproba@^1.0.3": "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a", + "archy@^1.0.0": "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", + "are-we-there-yet@~1.1.2": "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21", + "argparse@^1.0.7": "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911", + "arr-diff@^2.0.0": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf", + "arr-diff@^4.0.0": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520", + "arr-flatten@^1.0.1": "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1", + "arr-flatten@^1.1.0": "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1", + "arr-union@^3.1.0": "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4", + "array-unique@^0.2.1": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53", + "array-unique@^0.3.2": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428", + "asap@^2.0.3": "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46", + "assign-symbols@^1.0.0": "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367", + "async-each@^1.0.0": "https://registry.yarnpkg.com/async-each/-/async-each-1.0.2.tgz#8b8a7ca2a658f927e9f307d6d1a42f4199f0f735", + "async-each@^1.0.1": "https://registry.yarnpkg.com/async-each/-/async-each-1.0.2.tgz#8b8a7ca2a658f927e9f307d6d1a42f4199f0f735", + "async@~0.2.6": "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1", + "atob@^2.1.1": "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9", + "balanced-match@^1.0.0": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767", + "base@^0.11.1": "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f", + "basic-auth@~2.0.0": "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a", + "binary-extensions@^1.0.0": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65", + "bluebird@^3.2.2": "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714", + "bluebird@^3.4.0": "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714", + "bluebird@^3.5.1": "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714", + "boolbase@~1.0.0": "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e", + "brace-expansion@^1.1.7": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd", + "braces@^1.8.2": "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7", + "braces@^2.3.1": "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729", + "braces@^2.3.2": "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729", + "browser-fingerprint@0.0.1": "https://registry.yarnpkg.com/browser-fingerprint/-/browser-fingerprint-0.0.1.tgz#8df3cdca25bf7d5b3542d61545d730053fce604a", + "bytes@3.0.0": "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048", + "cache-base@^1.0.1": "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2", + "camel-case@^3.0.0": "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73", + "camelcase@^1.0.2": "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39", + "camelcase@^2.0.1": "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f", + "center-align@^0.1.1": "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad", + "chalk@^1.1.1": "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98", + "chalk@^1.1.3": "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98", + "chalk@^2.3.1": "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424", + "cheerio@0.22.0": "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e", + "chokidar@^1.5.2": "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468", + "chokidar@^2.0.0": "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.5.tgz#0ae8434d962281a5f56c72869e79cb6d9d86ad4d", + "chownr@^1.1.1": "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494", + "class-utils@^0.3.5": "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463", + "cliui@^2.1.0": "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1", + "cliui@^3.0.3": "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d", + "code-point-at@^1.0.0": "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77", + "collection-visit@^1.0.0": "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0", + "color-convert@^1.9.0": "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8", + "color-name@1.1.3": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25", + "command-exists@^1.2.0": "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.8.tgz#715acefdd1223b9c9b37110a149c6392c2852291", + "component-emitter@^1.2.1": "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6", + "compressible@~2.0.16": "https://registry.yarnpkg.com/compressible/-/compressible-2.0.16.tgz#a49bf9858f3821b64ce1be0296afc7380466a77f", + "compression@^1.7.3": "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f", + "concat-map@0.0.1": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", + "connect@^3.6.6": "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524", + "console-control-strings@^1.0.0": "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e", + "console-control-strings@~1.1.0": "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e", + "copy-descriptor@^0.1.0": "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d", + "core-js@^1.1.1": "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636", + "core-util-is@~1.0.0": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", + "cross-spawn@^4.0.0": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41", + "css-parse@1.7.x": "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b", + "css-select@~1.2.0": "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858", + "css-what@2.1": "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2", + "cuid@~1.3.8": "https://registry.yarnpkg.com/cuid/-/cuid-1.3.8.tgz#4b875e0969bad764f7ec0706cf44f5fb0831f6b7", + "debug@*": "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791", + "debug@2.6.9": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f", + "debug@^2.1.2": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f", + "debug@^2.2.0": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f", + "debug@^2.3.3": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f", + "decamelize@^1.0.0": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", + "decamelize@^1.1.1": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", + "decode-uri-component@^0.2.0": "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545", + "deep-extend@^0.6.0": "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac", + "define-property@^0.2.5": "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116", + "define-property@^1.0.0": "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6", + "define-property@^2.0.2": "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d", + "delegates@^1.0.0": "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a", + "depd@~1.1.2": "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9", + "destroy@~1.0.4": "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80", + "detect-libc@^1.0.2": "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b", + "dom-serializer@0": "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0", + "dom-serializer@~0.1.0": "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0", + "domelementtype@1": "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f", + "domelementtype@^1.3.0": "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f", + "domelementtype@^1.3.1": "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f", + "domhandler@^2.3.0": "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803", + "domutils@1.5.1": "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf", + "domutils@^1.5.1": "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a", + "ee-first@1.1.1": "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d", + "ejs@^2.3.4": "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0", + "encodeurl@~1.0.1": "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59", + "encodeurl@~1.0.2": "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59", + "entities@^1.1.1": "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56", + "entities@~1.1.1": "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56", + "escape-html@~1.0.3": "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988", + "escape-string-regexp@^1.0.2": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", + "escape-string-regexp@^1.0.5": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", + "esprima@^4.0.0": "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71", + "etag@~1.8.1": "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887", + "expand-brackets@^0.1.4": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b", + "expand-brackets@^2.1.4": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622", + "expand-range@^1.8.1": "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337", + "extend-shallow@^2.0.1": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f", + "extend-shallow@^3.0.0": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8", + "extend-shallow@^3.0.2": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8", + "extglob@^0.3.1": "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1", + "extglob@^2.0.4": "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543", + "filename-regex@^2.0.0": "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26", + "fill-range@^2.1.0": "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565", + "fill-range@^4.0.0": "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7", + "finalhandler@1.1.0": "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5", + "for-in@^1.0.1": "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80", + "for-in@^1.0.2": "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80", + "for-own@^0.1.4": "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce", + "fragment-cache@^0.2.1": "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19", + "fresh@0.5.2": "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7", + "fs-minipass@^1.2.5": "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d", + "fs.realpath@^1.0.0": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", + "fsevents@^1.0.0": "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4", + "fsevents@^1.2.7": "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4", + "gauge@~2.7.3": "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7", + "get-value@^2.0.3": "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28", + "get-value@^2.0.6": "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28", + "glob-base@^0.3.0": "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4", + "glob-parent@^2.0.0": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28", + "glob-parent@^3.1.0": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae", + "glob@7.0.x": "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a", + "glob@^6.0.1": "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22", + "glob@^7.1.3": "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1", + "graceful-fs@^4.1.11": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00", + "graceful-fs@^4.1.3": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00", + "graceful-fs@^4.1.4": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00", + "has-ansi@^2.0.0": "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91", + "has-flag@^3.0.0": "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd", + "has-unicode@^2.0.0": "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9", + "has-value@^0.3.1": "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f", + "has-value@^1.0.0": "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177", + "has-values@^0.1.4": "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771", + "has-values@^1.0.0": "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f", + "hexo-bunyan@^1.0.0": "https://registry.yarnpkg.com/hexo-bunyan/-/hexo-bunyan-1.0.0.tgz#b2106b26547b232f0195db863cb5d5ff8527fd36", + "hexo-cli@^1.1.0": "https://registry.yarnpkg.com/hexo-cli/-/hexo-cli-1.1.0.tgz#496d238d4646dbfd1cf047b6dc5271bfb5cb798f", + "hexo-front-matter@^0.2.2": "https://registry.yarnpkg.com/hexo-front-matter/-/hexo-front-matter-0.2.3.tgz#c7ca8ef420ea36bd85e8408a2e8c9bf49efa605e", + "hexo-fs@^0.2.0": "https://registry.yarnpkg.com/hexo-fs/-/hexo-fs-0.2.3.tgz#c3a81b46e457dfafc56d87c78ef114104f4a3e41", + "hexo-generator-archive@^0.1.5": "https://registry.yarnpkg.com/hexo-generator-archive/-/hexo-generator-archive-0.1.5.tgz#a979214cdddee2693e0551809c294bedadbb69b3", + "hexo-generator-category@^0.1.3": "https://registry.yarnpkg.com/hexo-generator-category/-/hexo-generator-category-0.1.3.tgz#b9e6a5862530a83bdd7da4c819c1b9f3e4ccb4b2", + "hexo-generator-index@^0.2.1": "https://registry.yarnpkg.com/hexo-generator-index/-/hexo-generator-index-0.2.1.tgz#9042229fcac79aaf700575da19332bf3f7ee5c5d", + "hexo-generator-tag@^0.2.0": "https://registry.yarnpkg.com/hexo-generator-tag/-/hexo-generator-tag-0.2.0.tgz#c5715846bb41e57d9c20c1d66d7db21a1abf7a62", + "hexo-i18n@^0.2.1": "https://registry.yarnpkg.com/hexo-i18n/-/hexo-i18n-0.2.1.tgz#84f141432bf09d8b558ed878c728164b6d1cd6de", + "hexo-log@^0.2.0": "https://registry.yarnpkg.com/hexo-log/-/hexo-log-0.2.0.tgz#d30fd45e1a12a83c88033586640485efc5df5a6f", + "hexo-pagination@0.0.2": "https://registry.yarnpkg.com/hexo-pagination/-/hexo-pagination-0.0.2.tgz#8cf470c7db0de5b18a3926a76deb194015df7f2b", + "hexo-renderer-ejs@^0.3.1": "https://registry.yarnpkg.com/hexo-renderer-ejs/-/hexo-renderer-ejs-0.3.1.tgz#c0c1a3757532d47e5b7d9dc908b5dfd98c94be2c", + "hexo-renderer-marked@^0.3.2": "https://registry.yarnpkg.com/hexo-renderer-marked/-/hexo-renderer-marked-0.3.2.tgz#d6a37af9ff195e30f9ef6ede1a06ea1fe4322966", + "hexo-renderer-stylus@^0.3.3": "https://registry.yarnpkg.com/hexo-renderer-stylus/-/hexo-renderer-stylus-0.3.3.tgz#c54ea27e1fd8e3c8a9a7a84cfba8ad354122ca7f", + "hexo-server@^0.3.3": "https://registry.yarnpkg.com/hexo-server/-/hexo-server-0.3.3.tgz#b86712974920bfcc3057debbdb35dd1be6c30080", + "hexo-util@^0.6.0": "https://registry.yarnpkg.com/hexo-util/-/hexo-util-0.6.3.tgz#16a2ade457bef955af0dfd22a3fe6f0a49a9137c", + "hexo-util@^0.6.2": "https://registry.yarnpkg.com/hexo-util/-/hexo-util-0.6.3.tgz#16a2ade457bef955af0dfd22a3fe6f0a49a9137c", + "hexo-util@^0.6.3": "https://registry.yarnpkg.com/hexo-util/-/hexo-util-0.6.3.tgz#16a2ade457bef955af0dfd22a3fe6f0a49a9137c", + "hexo@^3.8.0": "https://registry.yarnpkg.com/hexo/-/hexo-3.8.0.tgz#4d05cce558ded5c14dfa1516bbae3971747f9747", + "highlight.js@^9.4.0": "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.6.tgz#72d4d8d779ec066af9a17cb14360c3def0aa57c4", + "html-entities@^1.2.0": "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f", + "htmlparser2@^3.9.1": "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f", + "http-errors@~1.6.2": "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d", + "iconv-lite@^0.4.4": "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b", + "ignore-walk@^3.0.1": "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8", + "inflight@^1.0.4": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", + "inherits@2": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", + "inherits@2.0.3": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", + "inherits@^2.0.1": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", + "inherits@^2.0.3": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", + "inherits@~2.0.3": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", + "ini@~1.3.0": "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927", + "invert-kv@^1.0.0": "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6", + "is-accessor-descriptor@^0.1.6": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6", + "is-accessor-descriptor@^1.0.0": "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656", + "is-binary-path@^1.0.0": "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898", + "is-buffer@^1.1.5": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be", + "is-data-descriptor@^0.1.4": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56", + "is-data-descriptor@^1.0.0": "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7", + "is-descriptor@^0.1.0": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca", + "is-descriptor@^1.0.0": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec", + "is-descriptor@^1.0.2": "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec", + "is-dotfile@^1.0.0": "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1", + "is-equal-shallow@^0.1.3": "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534", + "is-extendable@^0.1.0": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89", + "is-extendable@^0.1.1": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89", + "is-extendable@^1.0.1": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4", + "is-extglob@^1.0.0": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0", + "is-extglob@^2.1.0": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2", + "is-extglob@^2.1.1": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2", + "is-fullwidth-code-point@^1.0.0": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb", + "is-fullwidth-code-point@^2.0.0": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f", + "is-glob@^2.0.0": "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863", + "is-glob@^2.0.1": "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863", + "is-glob@^3.1.0": "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a", + "is-glob@^4.0.0": "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc", + "is-number@^2.1.0": "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f", + "is-number@^3.0.0": "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195", + "is-number@^4.0.0": "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff", + "is-plain-object@^2.0.1": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677", + "is-plain-object@^2.0.3": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677", + "is-plain-object@^2.0.4": "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677", + "is-posix-bracket@^0.1.0": "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4", + "is-primitive@^2.0.0": "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575", + "is-windows@^1.0.2": "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d", + "is-wsl@^1.1.0": "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d", + "isarray@1.0.0": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", + "isarray@~1.0.0": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", + "isexe@^2.0.0": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10", + "isobject@^2.0.0": "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89", + "isobject@^3.0.0": "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df", + "isobject@^3.0.1": "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df", + "js-yaml@^3.6.1": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847", + "jsonparse@^1.2.0": "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280", + "kind-of@^3.0.2": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64", + "kind-of@^3.0.3": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64", + "kind-of@^3.2.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64", + "kind-of@^4.0.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57", + "kind-of@^5.0.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d", + "kind-of@^6.0.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051", + "kind-of@^6.0.2": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051", + "lazy-cache@^1.0.3": "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e", + "lcid@^1.0.0": "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835", + "lodash.assignin@^4.0.9": "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2", + "lodash.bind@^4.1.4": "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35", + "lodash.defaults@^4.0.1": "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c", + "lodash.filter@^4.4.0": "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace", + "lodash.flatten@^4.2.0": "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f", + "lodash.foreach@^4.3.0": "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53", + "lodash.map@^4.4.0": "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3", + "lodash.merge@^4.4.0": "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54", + "lodash.pick@^4.2.1": "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3", + "lodash.reduce@^4.4.0": "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b", + "lodash.reject@^4.4.0": "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415", + "lodash.some@^4.4.0": "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d", + "lodash@^4.17.5": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d", + "lodash@^4.2.1": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d", + "longest@^1.0.1": "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097", + "lower-case@^1.1.1": "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac", + "lru-cache@^4.0.1": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd", + "map-cache@^0.2.2": "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf", + "map-visit@^1.0.0": "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f", + "markdown@~0.5.0": "https://registry.yarnpkg.com/markdown/-/markdown-0.5.0.tgz#28205b565a8ae7592de207463d6637dc182722b2", + "marked@^0.3.9": "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790", + "math-random@^1.0.1": "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c", + "micromatch@^2.1.5": "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565", + "micromatch@^3.1.10": "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23", + "micromatch@^3.1.4": "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23", + "mime-db@>= 1.38.0 < 2": "https://registry.yarnpkg.com/mime-db/-/mime-db-1.39.0.tgz#f95a20275742f7d2ad0429acfe40f4233543780e", + "mime-db@~1.38.0": "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad", + "mime-types@~2.1.18": "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd", + "mime@1.4.1": "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6", + "mime@^1.6.0": "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1", + "minimatch@2 || 3": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", + "minimatch@^3.0.2": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", + "minimatch@^3.0.4": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", + "minimist@0.0.8": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d", + "minimist@^1.2.0": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284", + "minimist@~0.0.1": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf", + "minipass@^2.2.1": "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848", + "minipass@^2.3.4": "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848", + "minizlib@^1.1.1": "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614", + "mixin-deep@^1.2.0": "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe", + "mkdirp@0.5.x": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", + "mkdirp@^0.5.0": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", + "mkdirp@^0.5.1": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", + "mkdirp@~0.5.1": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", + "moment-timezone@^0.5.14": "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.23.tgz#7cbb00db2c14c71b19303cb47b0fb0a6d8651463", + "moment@>= 2.9.0": "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b", + "moment@^2.10.6": "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b", + "moment@^2.19.4": "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b", + "morgan@^1.9.0": "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59", + "ms@2.0.0": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8", + "ms@^2.1.1": "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a", + "mv@~2": "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2", + "nan@^2.9.2": "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7", + "nanomatch@^1.2.9": "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119", + "ncp@~2.0.0": "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3", + "needle@^2.2.1": "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e", + "negotiator@0.6.1": "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9", + "nib@^1.1.2": "https://registry.yarnpkg.com/nib/-/nib-1.1.2.tgz#6a69ede4081b95c0def8be024a4c8ae0c2cbb6c7", + "no-case@^2.2.0": "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac", + "node-fingerprint@0.0.2": "https://registry.yarnpkg.com/node-fingerprint/-/node-fingerprint-0.0.2.tgz#31cbabeb71a67ae7dd5a7dc042e51c3c75868501", + "node-pre-gyp@^0.10.0": "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc", + "nopt@^4.0.1": "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d", + "nopt@~2.1.1": "https://registry.yarnpkg.com/nopt/-/nopt-2.1.2.tgz#6cccd977b80132a07731d6e8ce58c2c8303cf9af", + "normalize-path@^2.0.0": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9", + "normalize-path@^2.0.1": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9", + "normalize-path@^2.1.1": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9", + "normalize-path@^3.0.0": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65", + "npm-bundled@^1.0.1": "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd", + "npm-packlist@^1.1.6": "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc", + "npmlog@^4.0.2": "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b", + "nth-check@~1.0.1": "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c", + "number-is-nan@^1.0.0": "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d", + "nunjucks@^3.1.2": "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.0.tgz#53e95f43c9555e822e8950008a201b1002d49933", + "object-assign@^2.0.0": "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa", + "object-assign@^4.0.1": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863", + "object-assign@^4.1.0": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863", + "object-assign@^4.1.1": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863", + "object-copy@^0.1.0": "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c", + "object-visit@^1.0.0": "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb", + "object.omit@^2.0.0": "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa", + "object.pick@^1.3.0": "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747", + "on-finished@~2.3.0": "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947", + "on-headers@~1.0.1": "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f", + "on-headers@~1.0.2": "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f", + "once@^1.3.0": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", + "opn@^5.3.0": "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc", + "optimist@~0.6": "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686", + "os-homedir@^1.0.0": "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3", + "os-locale@^1.4.0": "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9", + "os-tmpdir@^1.0.0": "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274", + "osenv@^0.1.4": "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410", + "parse-glob@^3.0.4": "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c", + "parseurl@~1.3.2": "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3", + "pascalcase@^0.1.1": "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14", + "path-dirname@^1.0.0": "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0", + "path-is-absolute@^1.0.0": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", + "path-parse@^1.0.6": "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c", + "posix-character-classes@^0.1.0": "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab", + "preserve@^0.2.0": "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b", + "pretty-hrtime@^1.0.2": "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1", + "process-nextick-args@~2.0.0": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa", + "pseudomap@^1.0.2": "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3", + "randomatic@^3.0.0": "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed", + "range-parser@~1.2.0": "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e", + "rc@^1.2.7": "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed", + "readable-stream@^2.0.2": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf", + "readable-stream@^2.0.6": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf", + "readable-stream@^3.1.1": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9", + "readdirp@^2.0.0": "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525", + "readdirp@^2.2.1": "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525", + "regex-cache@^0.4.2": "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd", + "regex-not@^1.0.0": "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c", + "regex-not@^1.0.2": "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c", + "remove-trailing-separator@^1.0.1": "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef", + "repeat-element@^1.1.2": "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce", + "repeat-string@^1.5.2": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637", + "repeat-string@^1.6.1": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637", + "resolve-url@^0.2.1": "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a", + "resolve@^1.5.0": "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba", + "ret@~0.1.10": "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc", + "right-align@^0.1.1": "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef", + "rimraf@^2.6.1": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab", + "rimraf@~2.4.0": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da", + "safe-buffer@5.1.2": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "safe-buffer@^5.1.2": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "safe-buffer@~5.1.0": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "safe-buffer@~5.1.1": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "safe-json-stringify@~1": "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd", + "safe-regex@^1.1.0": "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e", + "safer-buffer@>= 2.1.2 < 3": "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a", + "sax@0.5.x": "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1", + "sax@^1.2.4": "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9", + "semver@^5.3.0": "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b", + "send@0.16.2": "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1", + "serve-static@^1.13.2": "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1", + "set-blocking@~2.0.0": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", + "set-value@^0.4.3": "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1", + "set-value@^2.0.0": "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274", + "setprototypeof@1.1.0": "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656", + "signal-exit@^3.0.0": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d", + "snapdragon-node@^2.0.1": "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b", + "snapdragon-util@^3.0.1": "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2", + "snapdragon@^0.8.1": "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d", + "source-map-resolve@^0.5.0": "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259", + "source-map-url@^0.4.0": "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3", + "source-map@0.1.x": "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346", + "source-map@^0.5.6": "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc", + "source-map@~0.5.1": "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc", + "split-string@^3.0.1": "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2", + "split-string@^3.0.2": "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2", + "sprintf-js@^1.0.2": "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673", + "sprintf-js@~1.0.2": "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c", + "static-extend@^0.1.1": "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6", + "statuses@>= 1.4.0 < 2": "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c", + "statuses@~1.3.1": "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e", + "statuses@~1.4.0": "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087", + "string-width@^1.0.1": "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3", + "string-width@^1.0.2 || 2": "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e", + "string_decoder@^1.1.1": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d", + "string_decoder@~1.1.1": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8", + "strip-ansi@^3.0.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", + "strip-ansi@^3.0.1": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", + "strip-ansi@^4.0.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f", + "strip-indent@^2.0.0": "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68", + "strip-json-comments@~2.0.1": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a", + "striptags@^2.1.1": "https://registry.yarnpkg.com/striptags/-/striptags-2.2.1.tgz#4c450b708d41b8bf39cf24c49ff234fc6aabfd32", + "stylus@0.54.5": "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79", + "stylus@^0.54.5": "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79", + "supports-color@^2.0.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7", + "supports-color@^5.3.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f", + "swig-extras@0.0.1": "https://registry.yarnpkg.com/swig-extras/-/swig-extras-0.0.1.tgz#b503fede372ab9c24c6ac68caf656bcef1872328", + "swig-templates@^2.0.2": "https://registry.yarnpkg.com/swig-templates/-/swig-templates-2.0.3.tgz#6b4c43b462175df2a8da857a2043379ec6ea6fd0", + "tar@^4": "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d", + "text-table@^0.2.0": "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4", + "through@>=2.2.7 <3": "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5", + "tildify@^1.2.0": "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a", + "titlecase@^1.1.2": "https://registry.yarnpkg.com/titlecase/-/titlecase-1.1.3.tgz#fc6d65ff582b0602410768ef1a09b70506313dc3", + "to-object-path@^0.3.0": "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af", + "to-regex-range@^2.1.0": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38", + "to-regex@^3.0.1": "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce", + "to-regex@^3.0.2": "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce", + "uglify-js@2.6.0": "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.6.0.tgz#25eaa1cc3550e39410ceefafd1cfbb6b6d15f001", + "uglify-to-browserify@~1.0.0": "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7", + "union-value@^1.0.0": "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4", + "unpipe@~1.0.0": "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec", + "unset-value@^1.0.0": "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559", + "upath@^1.1.1": "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068", + "upper-case@^1.1.1": "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598", + "urix@^0.1.0": "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72", + "use@^3.1.0": "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f", + "util-deprecate@^1.0.1": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", + "util-deprecate@~1.0.1": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", + "utils-merge@1.0.1": "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713", + "utils-merge@^1.0.0": "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713", + "vary@~1.1.2": "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc", + "warehouse@^2.2.0": "https://registry.yarnpkg.com/warehouse/-/warehouse-2.2.0.tgz#5d09d64942992be667d8f7c86a09c2b8aea04062", + "which@^1.2.9": "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a", + "wide-align@^1.1.0": "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457", + "window-size@0.1.0": "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d", + "window-size@^0.1.4": "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876", + "wordwrap@0.0.2": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f", + "wordwrap@~0.0.2": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107", + "wrap-ansi@^2.0.0": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85", + "wrappy@1": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", + "y18n@^3.2.0": "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41", + "yallist@^2.1.2": "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52", + "yallist@^3.0.0": "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9", + "yallist@^3.0.2": "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9", + "yargs@^3.32.0": "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995", + "yargs@~3.10.0": "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + }, + "files": [], + "artifacts": {} +} \ No newline at end of file diff --git a/node_modules/@babel/code-frame/LICENSE b/node_modules/@babel/code-frame/LICENSE new file mode 100644 index 0000000..620366e --- /dev/null +++ b/node_modules/@babel/code-frame/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-2018 Sebastian McKenzie + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/code-frame/README.md b/node_modules/@babel/code-frame/README.md new file mode 100644 index 0000000..185f93d --- /dev/null +++ b/node_modules/@babel/code-frame/README.md @@ -0,0 +1,19 @@ +# @babel/code-frame + +> Generate errors that contain a code frame that point to source locations. + +See our website [@babel/code-frame](https://babeljs.io/docs/en/next/babel-code-frame.html) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/code-frame +``` + +or using yarn: + +```sh +yarn add @babel/code-frame --dev +``` diff --git a/node_modules/@babel/code-frame/lib/index.js b/node_modules/@babel/code-frame/lib/index.js new file mode 100644 index 0000000..1f64c6c --- /dev/null +++ b/node_modules/@babel/code-frame/lib/index.js @@ -0,0 +1,173 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.codeFrameColumns = codeFrameColumns; +exports.default = _default; + +function _highlight() { + const data = _interopRequireWildcard(require("@babel/highlight")); + + _highlight = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +let deprecationWarningShown = false; + +function getDefs(chalk) { + return { + gutter: chalk.grey, + marker: chalk.red.bold, + message: chalk.red.bold + }; +} + +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; + +function getMarkerLines(loc, source, opts) { + const startLoc = Object.assign({ + column: 0, + line: -1 + }, loc.start); + const endLoc = Object.assign({}, startLoc, loc.end); + const { + linesAbove = 2, + linesBelow = 3 + } = opts || {}; + const startLine = startLoc.line; + const startColumn = startLoc.column; + const endLine = endLoc.line; + const endColumn = endLoc.column; + let start = Math.max(startLine - (linesAbove + 1), 0); + let end = Math.min(source.length, endLine + linesBelow); + + if (startLine === -1) { + start = 0; + } + + if (endLine === -1) { + end = source.length; + } + + const lineDiff = endLine - startLine; + const markerLines = {}; + + if (lineDiff) { + for (let i = 0; i <= lineDiff; i++) { + const lineNumber = i + startLine; + + if (!startColumn) { + markerLines[lineNumber] = true; + } else if (i === 0) { + const sourceLength = source[lineNumber - 1].length; + markerLines[lineNumber] = [startColumn, sourceLength - startColumn]; + } else if (i === lineDiff) { + markerLines[lineNumber] = [0, endColumn]; + } else { + const sourceLength = source[lineNumber - i].length; + markerLines[lineNumber] = [0, sourceLength]; + } + } + } else { + if (startColumn === endColumn) { + if (startColumn) { + markerLines[startLine] = [startColumn, 0]; + } else { + markerLines[startLine] = true; + } + } else { + markerLines[startLine] = [startColumn, endColumn - startColumn]; + } + } + + return { + start, + end, + markerLines + }; +} + +function codeFrameColumns(rawLines, loc, opts = {}) { + const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight().shouldHighlight)(opts); + const chalk = (0, _highlight().getChalk)(opts); + const defs = getDefs(chalk); + + const maybeHighlight = (chalkFn, string) => { + return highlighted ? chalkFn(string) : string; + }; + + if (highlighted) rawLines = (0, _highlight().default)(rawLines, opts); + const lines = rawLines.split(NEWLINE); + const { + start, + end, + markerLines + } = getMarkerLines(loc, lines, opts); + const hasColumns = loc.start && typeof loc.start.column === "number"; + const numberMaxWidth = String(end).length; + let frame = lines.slice(start, end).map((line, index) => { + const number = start + 1 + index; + const paddedNumber = ` ${number}`.slice(-numberMaxWidth); + const gutter = ` ${paddedNumber} | `; + const hasMarker = markerLines[number]; + const lastMarkerLine = !markerLines[number + 1]; + + if (hasMarker) { + let markerLine = ""; + + if (Array.isArray(hasMarker)) { + const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); + const numberOfMarkers = hasMarker[1] || 1; + markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); + + if (lastMarkerLine && opts.message) { + markerLine += " " + maybeHighlight(defs.message, opts.message); + } + } + + return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line, markerLine].join(""); + } else { + return ` ${maybeHighlight(defs.gutter, gutter)}${line}`; + } + }).join("\n"); + + if (opts.message && !hasColumns) { + frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; + } + + if (highlighted) { + return chalk.reset(frame); + } else { + return frame; + } +} + +function _default(rawLines, lineNumber, colNumber, opts = {}) { + if (!deprecationWarningShown) { + deprecationWarningShown = true; + const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + + if (process.emitWarning) { + process.emitWarning(message, "DeprecationWarning"); + } else { + const deprecationError = new Error(message); + deprecationError.name = "DeprecationWarning"; + console.warn(new Error(message)); + } + } + + colNumber = Math.max(colNumber, 0); + const location = { + start: { + column: colNumber, + line: lineNumber + } + }; + return codeFrameColumns(rawLines, location, opts); +} \ No newline at end of file diff --git a/node_modules/@babel/code-frame/package.json b/node_modules/@babel/code-frame/package.json new file mode 100644 index 0000000..173cc7a --- /dev/null +++ b/node_modules/@babel/code-frame/package.json @@ -0,0 +1,51 @@ +{ + "_from": "@babel/code-frame@^7.0.0", + "_id": "@babel/code-frame@7.0.0", + "_inBundle": false, + "_integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "_location": "/@babel/code-frame", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@babel/code-frame@^7.0.0", + "name": "@babel/code-frame", + "escapedName": "@babel%2fcode-frame", + "scope": "@babel", + "rawSpec": "^7.0.0", + "saveSpec": null, + "fetchSpec": "^7.0.0" + }, + "_requiredBy": [ + "/@babel/template", + "/@babel/traverse", + "/babel-eslint" + ], + "_resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "_shasum": "06e2ab19bdb535385559aabb5ba59729482800f8", + "_spec": "@babel/code-frame@^7.0.0", + "_where": "P:\\Git\\SitecoreSourceBlog\\node_modules\\babel-eslint", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "bundleDependencies": false, + "dependencies": { + "@babel/highlight": "^7.0.0" + }, + "deprecated": false, + "description": "Generate errors that contain a code frame that point to source locations.", + "devDependencies": { + "chalk": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/code-frame", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-code-frame" + }, + "version": "7.0.0" +} diff --git a/node_modules/@babel/generator/LICENSE b/node_modules/@babel/generator/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/generator/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/generator/README.md b/node_modules/@babel/generator/README.md new file mode 100644 index 0000000..fc980b1 --- /dev/null +++ b/node_modules/@babel/generator/README.md @@ -0,0 +1,19 @@ +# @babel/generator + +> Turns an AST into code. + +See our website [@babel/generator](https://babeljs.io/docs/en/next/babel-generator.html) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20generator%22+is%3Aopen) associated with this package. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/generator +``` + +or using yarn: + +```sh +yarn add @babel/generator --dev +``` diff --git a/node_modules/@babel/generator/lib/buffer.js b/node_modules/@babel/generator/lib/buffer.js new file mode 100644 index 0000000..8a80014 --- /dev/null +++ b/node_modules/@babel/generator/lib/buffer.js @@ -0,0 +1,257 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +function _trimRight() { + const data = _interopRequireDefault(require("trim-right")); + + _trimRight = function () { + return data; + }; + + return data; +} + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const SPACES_RE = /^[ \t]+$/; + +class Buffer { + constructor(map) { + this._map = null; + this._buf = []; + this._last = ""; + this._queue = []; + this._position = { + line: 1, + column: 0 + }; + this._sourcePosition = { + identifierName: null, + line: null, + column: null, + filename: null + }; + this._disallowedPop = null; + this._map = map; + } + + get() { + this._flush(); + + const map = this._map; + const result = { + code: (0, _trimRight().default)(this._buf.join("")), + map: null, + rawMappings: map && map.getRawMappings() + }; + + if (map) { + Object.defineProperty(result, "map", { + configurable: true, + enumerable: true, + + get() { + return this.map = map.get(); + }, + + set(value) { + Object.defineProperty(this, "map", { + value, + writable: true + }); + } + + }); + } + + return result; + } + + append(str) { + this._flush(); + + const { + line, + column, + filename, + identifierName, + force + } = this._sourcePosition; + + this._append(str, line, column, identifierName, filename, force); + } + + queue(str) { + if (str === "\n") { + while (this._queue.length > 0 && SPACES_RE.test(this._queue[0][0])) { + this._queue.shift(); + } + } + + const { + line, + column, + filename, + identifierName, + force + } = this._sourcePosition; + + this._queue.unshift([str, line, column, identifierName, filename, force]); + } + + _flush() { + let item; + + while (item = this._queue.pop()) this._append(...item); + } + + _append(str, line, column, identifierName, filename, force) { + if (this._map && str[0] !== "\n") { + this._map.mark(this._position.line, this._position.column, line, column, identifierName, filename, force); + } + + this._buf.push(str); + + this._last = str[str.length - 1]; + + for (let i = 0; i < str.length; i++) { + if (str[i] === "\n") { + this._position.line++; + this._position.column = 0; + } else { + this._position.column++; + } + } + } + + removeTrailingNewline() { + if (this._queue.length > 0 && this._queue[0][0] === "\n") { + this._queue.shift(); + } + } + + removeLastSemicolon() { + if (this._queue.length > 0 && this._queue[0][0] === ";") { + this._queue.shift(); + } + } + + endsWith(suffix) { + if (suffix.length === 1) { + let last; + + if (this._queue.length > 0) { + const str = this._queue[0][0]; + last = str[str.length - 1]; + } else { + last = this._last; + } + + return last === suffix; + } + + const end = this._last + this._queue.reduce((acc, item) => item[0] + acc, ""); + + if (suffix.length <= end.length) { + return end.slice(-suffix.length) === suffix; + } + + return false; + } + + hasContent() { + return this._queue.length > 0 || !!this._last; + } + + exactSource(loc, cb) { + this.source("start", loc, true); + cb(); + this.source("end", loc); + + this._disallowPop("start", loc); + } + + source(prop, loc, force) { + if (prop && !loc) return; + + this._normalizePosition(prop, loc, this._sourcePosition, force); + } + + withSource(prop, loc, cb) { + if (!this._map) return cb(); + const originalLine = this._sourcePosition.line; + const originalColumn = this._sourcePosition.column; + const originalFilename = this._sourcePosition.filename; + const originalIdentifierName = this._sourcePosition.identifierName; + this.source(prop, loc); + cb(); + + if ((!this._sourcePosition.force || this._sourcePosition.line !== originalLine || this._sourcePosition.column !== originalColumn || this._sourcePosition.filename !== originalFilename) && (!this._disallowedPop || this._disallowedPop.line !== originalLine || this._disallowedPop.column !== originalColumn || this._disallowedPop.filename !== originalFilename)) { + this._sourcePosition.line = originalLine; + this._sourcePosition.column = originalColumn; + this._sourcePosition.filename = originalFilename; + this._sourcePosition.identifierName = originalIdentifierName; + this._sourcePosition.force = false; + this._disallowedPop = null; + } + } + + _disallowPop(prop, loc) { + if (prop && !loc) return; + this._disallowedPop = this._normalizePosition(prop, loc); + } + + _normalizePosition(prop, loc, targetObj, force) { + const pos = loc ? loc[prop] : null; + + if (targetObj === undefined) { + targetObj = { + identifierName: null, + line: null, + column: null, + filename: null, + force: false + }; + } + + const origLine = targetObj.line; + const origColumn = targetObj.column; + const origFilename = targetObj.filename; + targetObj.identifierName = prop === "start" && loc && loc.identifierName || null; + targetObj.line = pos ? pos.line : null; + targetObj.column = pos ? pos.column : null; + targetObj.filename = loc && loc.filename || null; + + if (force || targetObj.line !== origLine || targetObj.column !== origColumn || targetObj.filename !== origFilename) { + targetObj.force = force; + } + + return targetObj; + } + + getCurrentColumn() { + const extra = this._queue.reduce((acc, item) => item[0] + acc, ""); + + const lastIndex = extra.lastIndexOf("\n"); + return lastIndex === -1 ? this._position.column + extra.length : extra.length - 1 - lastIndex; + } + + getCurrentLine() { + const extra = this._queue.reduce((acc, item) => item[0] + acc, ""); + + let count = 0; + + for (let i = 0; i < extra.length; i++) { + if (extra[i] === "\n") count++; + } + + return this._position.line + count; + } + +} + +exports.default = Buffer; \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/base.js b/node_modules/@babel/generator/lib/generators/base.js new file mode 100644 index 0000000..f8e2130 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/base.js @@ -0,0 +1,97 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.File = File; +exports.Program = Program; +exports.BlockStatement = BlockStatement; +exports.Noop = Noop; +exports.Directive = Directive; +exports.DirectiveLiteral = DirectiveLiteral; +exports.InterpreterDirective = InterpreterDirective; +exports.Placeholder = Placeholder; + +function File(node) { + if (node.program) { + this.print(node.program.interpreter, node); + } + + this.print(node.program, node); +} + +function Program(node) { + this.printInnerComments(node, false); + this.printSequence(node.directives, node); + if (node.directives && node.directives.length) this.newline(); + this.printSequence(node.body, node); +} + +function BlockStatement(node) { + this.token("{"); + this.printInnerComments(node); + const hasDirectives = node.directives && node.directives.length; + + if (node.body.length || hasDirectives) { + this.newline(); + this.printSequence(node.directives, node, { + indent: true + }); + if (hasDirectives) this.newline(); + this.printSequence(node.body, node, { + indent: true + }); + this.removeTrailingNewline(); + this.source("end", node.loc); + if (!this.endsWith("\n")) this.newline(); + this.rightBrace(); + } else { + this.source("end", node.loc); + this.token("}"); + } +} + +function Noop() {} + +function Directive(node) { + this.print(node.value, node); + this.semicolon(); +} + +const unescapedSingleQuoteRE = /(?:^|[^\\])(?:\\\\)*'/; +const unescapedDoubleQuoteRE = /(?:^|[^\\])(?:\\\\)*"/; + +function DirectiveLiteral(node) { + const raw = this.getPossibleRaw(node); + + if (raw != null) { + this.token(raw); + return; + } + + const { + value + } = node; + + if (!unescapedDoubleQuoteRE.test(value)) { + this.token(`"${value}"`); + } else if (!unescapedSingleQuoteRE.test(value)) { + this.token(`'${value}'`); + } else { + throw new Error("Malformed AST: it is not possible to print a directive containing" + " both unescaped single and double quotes."); + } +} + +function InterpreterDirective(node) { + this.token(`#!${node.value}\n`); +} + +function Placeholder(node) { + this.token("%%"); + this.print(node.name); + this.token("%%"); + + if (node.expectedNode === "Statement") { + this.semicolon(); + } +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/classes.js b/node_modules/@babel/generator/lib/generators/classes.js new file mode 100644 index 0000000..7f54632 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/classes.js @@ -0,0 +1,190 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ClassExpression = exports.ClassDeclaration = ClassDeclaration; +exports.ClassBody = ClassBody; +exports.ClassProperty = ClassProperty; +exports.ClassPrivateProperty = ClassPrivateProperty; +exports.ClassMethod = ClassMethod; +exports.ClassPrivateMethod = ClassPrivateMethod; +exports._classMethodHead = _classMethodHead; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function ClassDeclaration(node, parent) { + if (!this.format.decoratorsBeforeExport || !t().isExportDefaultDeclaration(parent) && !t().isExportNamedDeclaration(parent)) { + this.printJoin(node.decorators, node); + } + + if (node.declare) { + this.word("declare"); + this.space(); + } + + if (node.abstract) { + this.word("abstract"); + this.space(); + } + + this.word("class"); + + if (node.id) { + this.space(); + this.print(node.id, node); + } + + this.print(node.typeParameters, node); + + if (node.superClass) { + this.space(); + this.word("extends"); + this.space(); + this.print(node.superClass, node); + this.print(node.superTypeParameters, node); + } + + if (node.implements) { + this.space(); + this.word("implements"); + this.space(); + this.printList(node.implements, node); + } + + this.space(); + this.print(node.body, node); +} + +function ClassBody(node) { + this.token("{"); + this.printInnerComments(node); + + if (node.body.length === 0) { + this.token("}"); + } else { + this.newline(); + this.indent(); + this.printSequence(node.body, node); + this.dedent(); + if (!this.endsWith("\n")) this.newline(); + this.rightBrace(); + } +} + +function ClassProperty(node) { + this.printJoin(node.decorators, node); + + if (node.accessibility) { + this.word(node.accessibility); + this.space(); + } + + if (node.static) { + this.word("static"); + this.space(); + } + + if (node.abstract) { + this.word("abstract"); + this.space(); + } + + if (node.readonly) { + this.word("readonly"); + this.space(); + } + + if (node.computed) { + this.token("["); + this.print(node.key, node); + this.token("]"); + } else { + this._variance(node); + + this.print(node.key, node); + } + + if (node.optional) { + this.token("?"); + } + + if (node.definite) { + this.token("!"); + } + + this.print(node.typeAnnotation, node); + + if (node.value) { + this.space(); + this.token("="); + this.space(); + this.print(node.value, node); + } + + this.semicolon(); +} + +function ClassPrivateProperty(node) { + if (node.static) { + this.word("static"); + this.space(); + } + + this.print(node.key, node); + this.print(node.typeAnnotation, node); + + if (node.value) { + this.space(); + this.token("="); + this.space(); + this.print(node.value, node); + } + + this.semicolon(); +} + +function ClassMethod(node) { + this._classMethodHead(node); + + this.space(); + this.print(node.body, node); +} + +function ClassPrivateMethod(node) { + this._classMethodHead(node); + + this.space(); + this.print(node.body, node); +} + +function _classMethodHead(node) { + this.printJoin(node.decorators, node); + + if (node.accessibility) { + this.word(node.accessibility); + this.space(); + } + + if (node.abstract) { + this.word("abstract"); + this.space(); + } + + if (node.static) { + this.word("static"); + this.space(); + } + + this._methodHead(node); +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/expressions.js b/node_modules/@babel/generator/lib/generators/expressions.js new file mode 100644 index 0000000..45efa98 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/expressions.js @@ -0,0 +1,292 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.UnaryExpression = UnaryExpression; +exports.DoExpression = DoExpression; +exports.ParenthesizedExpression = ParenthesizedExpression; +exports.UpdateExpression = UpdateExpression; +exports.ConditionalExpression = ConditionalExpression; +exports.NewExpression = NewExpression; +exports.SequenceExpression = SequenceExpression; +exports.ThisExpression = ThisExpression; +exports.Super = Super; +exports.Decorator = Decorator; +exports.OptionalMemberExpression = OptionalMemberExpression; +exports.OptionalCallExpression = OptionalCallExpression; +exports.CallExpression = CallExpression; +exports.Import = Import; +exports.EmptyStatement = EmptyStatement; +exports.ExpressionStatement = ExpressionStatement; +exports.AssignmentPattern = AssignmentPattern; +exports.LogicalExpression = exports.BinaryExpression = exports.AssignmentExpression = AssignmentExpression; +exports.BindExpression = BindExpression; +exports.MemberExpression = MemberExpression; +exports.MetaProperty = MetaProperty; +exports.PrivateName = PrivateName; +exports.AwaitExpression = exports.YieldExpression = void 0; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +var n = _interopRequireWildcard(require("../node")); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function UnaryExpression(node) { + if (node.operator === "void" || node.operator === "delete" || node.operator === "typeof" || node.operator === "throw") { + this.word(node.operator); + this.space(); + } else { + this.token(node.operator); + } + + this.print(node.argument, node); +} + +function DoExpression(node) { + this.word("do"); + this.space(); + this.print(node.body, node); +} + +function ParenthesizedExpression(node) { + this.token("("); + this.print(node.expression, node); + this.token(")"); +} + +function UpdateExpression(node) { + if (node.prefix) { + this.token(node.operator); + this.print(node.argument, node); + } else { + this.startTerminatorless(true); + this.print(node.argument, node); + this.endTerminatorless(); + this.token(node.operator); + } +} + +function ConditionalExpression(node) { + this.print(node.test, node); + this.space(); + this.token("?"); + this.space(); + this.print(node.consequent, node); + this.space(); + this.token(":"); + this.space(); + this.print(node.alternate, node); +} + +function NewExpression(node, parent) { + this.word("new"); + this.space(); + this.print(node.callee, node); + + if (this.format.minified && node.arguments.length === 0 && !node.optional && !t().isCallExpression(parent, { + callee: node + }) && !t().isMemberExpression(parent) && !t().isNewExpression(parent)) { + return; + } + + this.print(node.typeArguments, node); + this.print(node.typeParameters, node); + + if (node.optional) { + this.token("?."); + } + + this.token("("); + this.printList(node.arguments, node); + this.token(")"); +} + +function SequenceExpression(node) { + this.printList(node.expressions, node); +} + +function ThisExpression() { + this.word("this"); +} + +function Super() { + this.word("super"); +} + +function Decorator(node) { + this.token("@"); + this.print(node.expression, node); + this.newline(); +} + +function OptionalMemberExpression(node) { + this.print(node.object, node); + + if (!node.computed && t().isMemberExpression(node.property)) { + throw new TypeError("Got a MemberExpression for MemberExpression property"); + } + + let computed = node.computed; + + if (t().isLiteral(node.property) && typeof node.property.value === "number") { + computed = true; + } + + if (node.optional) { + this.token("?."); + } + + if (computed) { + this.token("["); + this.print(node.property, node); + this.token("]"); + } else { + if (!node.optional) { + this.token("."); + } + + this.print(node.property, node); + } +} + +function OptionalCallExpression(node) { + this.print(node.callee, node); + this.print(node.typeArguments, node); + this.print(node.typeParameters, node); + + if (node.optional) { + this.token("?."); + } + + this.token("("); + this.printList(node.arguments, node); + this.token(")"); +} + +function CallExpression(node) { + this.print(node.callee, node); + this.print(node.typeArguments, node); + this.print(node.typeParameters, node); + this.token("("); + this.printList(node.arguments, node); + this.token(")"); +} + +function Import() { + this.word("import"); +} + +function buildYieldAwait(keyword) { + return function (node) { + this.word(keyword); + + if (node.delegate) { + this.token("*"); + } + + if (node.argument) { + this.space(); + const terminatorState = this.startTerminatorless(); + this.print(node.argument, node); + this.endTerminatorless(terminatorState); + } + }; +} + +const YieldExpression = buildYieldAwait("yield"); +exports.YieldExpression = YieldExpression; +const AwaitExpression = buildYieldAwait("await"); +exports.AwaitExpression = AwaitExpression; + +function EmptyStatement() { + this.semicolon(true); +} + +function ExpressionStatement(node) { + this.print(node.expression, node); + this.semicolon(); +} + +function AssignmentPattern(node) { + this.print(node.left, node); + if (node.left.optional) this.token("?"); + this.print(node.left.typeAnnotation, node); + this.space(); + this.token("="); + this.space(); + this.print(node.right, node); +} + +function AssignmentExpression(node, parent) { + const parens = this.inForStatementInitCounter && node.operator === "in" && !n.needsParens(node, parent); + + if (parens) { + this.token("("); + } + + this.print(node.left, node); + this.space(); + + if (node.operator === "in" || node.operator === "instanceof") { + this.word(node.operator); + } else { + this.token(node.operator); + } + + this.space(); + this.print(node.right, node); + + if (parens) { + this.token(")"); + } +} + +function BindExpression(node) { + this.print(node.object, node); + this.token("::"); + this.print(node.callee, node); +} + +function MemberExpression(node) { + this.print(node.object, node); + + if (!node.computed && t().isMemberExpression(node.property)) { + throw new TypeError("Got a MemberExpression for MemberExpression property"); + } + + let computed = node.computed; + + if (t().isLiteral(node.property) && typeof node.property.value === "number") { + computed = true; + } + + if (computed) { + this.token("["); + this.print(node.property, node); + this.token("]"); + } else { + this.token("."); + this.print(node.property, node); + } +} + +function MetaProperty(node) { + this.print(node.meta, node); + this.token("."); + this.print(node.property, node); +} + +function PrivateName(node) { + this.token("#"); + this.print(node.id, node); +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/flow.js b/node_modules/@babel/generator/lib/generators/flow.js new file mode 100644 index 0000000..0b24d2c --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/flow.js @@ -0,0 +1,628 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AnyTypeAnnotation = AnyTypeAnnotation; +exports.ArrayTypeAnnotation = ArrayTypeAnnotation; +exports.BooleanTypeAnnotation = BooleanTypeAnnotation; +exports.BooleanLiteralTypeAnnotation = BooleanLiteralTypeAnnotation; +exports.NullLiteralTypeAnnotation = NullLiteralTypeAnnotation; +exports.DeclareClass = DeclareClass; +exports.DeclareFunction = DeclareFunction; +exports.InferredPredicate = InferredPredicate; +exports.DeclaredPredicate = DeclaredPredicate; +exports.DeclareInterface = DeclareInterface; +exports.DeclareModule = DeclareModule; +exports.DeclareModuleExports = DeclareModuleExports; +exports.DeclareTypeAlias = DeclareTypeAlias; +exports.DeclareOpaqueType = DeclareOpaqueType; +exports.DeclareVariable = DeclareVariable; +exports.DeclareExportDeclaration = DeclareExportDeclaration; +exports.DeclareExportAllDeclaration = DeclareExportAllDeclaration; +exports.ExistsTypeAnnotation = ExistsTypeAnnotation; +exports.FunctionTypeAnnotation = FunctionTypeAnnotation; +exports.FunctionTypeParam = FunctionTypeParam; +exports.GenericTypeAnnotation = exports.ClassImplements = exports.InterfaceExtends = InterfaceExtends; +exports._interfaceish = _interfaceish; +exports._variance = _variance; +exports.InterfaceDeclaration = InterfaceDeclaration; +exports.InterfaceTypeAnnotation = InterfaceTypeAnnotation; +exports.IntersectionTypeAnnotation = IntersectionTypeAnnotation; +exports.MixedTypeAnnotation = MixedTypeAnnotation; +exports.EmptyTypeAnnotation = EmptyTypeAnnotation; +exports.NullableTypeAnnotation = NullableTypeAnnotation; +exports.NumberTypeAnnotation = NumberTypeAnnotation; +exports.StringTypeAnnotation = StringTypeAnnotation; +exports.ThisTypeAnnotation = ThisTypeAnnotation; +exports.TupleTypeAnnotation = TupleTypeAnnotation; +exports.TypeofTypeAnnotation = TypeofTypeAnnotation; +exports.TypeAlias = TypeAlias; +exports.TypeAnnotation = TypeAnnotation; +exports.TypeParameterDeclaration = exports.TypeParameterInstantiation = TypeParameterInstantiation; +exports.TypeParameter = TypeParameter; +exports.OpaqueType = OpaqueType; +exports.ObjectTypeAnnotation = ObjectTypeAnnotation; +exports.ObjectTypeInternalSlot = ObjectTypeInternalSlot; +exports.ObjectTypeCallProperty = ObjectTypeCallProperty; +exports.ObjectTypeIndexer = ObjectTypeIndexer; +exports.ObjectTypeProperty = ObjectTypeProperty; +exports.ObjectTypeSpreadProperty = ObjectTypeSpreadProperty; +exports.QualifiedTypeIdentifier = QualifiedTypeIdentifier; +exports.UnionTypeAnnotation = UnionTypeAnnotation; +exports.TypeCastExpression = TypeCastExpression; +exports.Variance = Variance; +exports.VoidTypeAnnotation = VoidTypeAnnotation; +Object.defineProperty(exports, "NumberLiteralTypeAnnotation", { + enumerable: true, + get: function () { + return _types2.NumericLiteral; + } +}); +Object.defineProperty(exports, "StringLiteralTypeAnnotation", { + enumerable: true, + get: function () { + return _types2.StringLiteral; + } +}); + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +var _modules = require("./modules"); + +var _types2 = require("./types"); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function AnyTypeAnnotation() { + this.word("any"); +} + +function ArrayTypeAnnotation(node) { + this.print(node.elementType, node); + this.token("["); + this.token("]"); +} + +function BooleanTypeAnnotation() { + this.word("boolean"); +} + +function BooleanLiteralTypeAnnotation(node) { + this.word(node.value ? "true" : "false"); +} + +function NullLiteralTypeAnnotation() { + this.word("null"); +} + +function DeclareClass(node, parent) { + if (!t().isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + + this.word("class"); + this.space(); + + this._interfaceish(node); +} + +function DeclareFunction(node, parent) { + if (!t().isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + + this.word("function"); + this.space(); + this.print(node.id, node); + this.print(node.id.typeAnnotation.typeAnnotation, node); + + if (node.predicate) { + this.space(); + this.print(node.predicate, node); + } + + this.semicolon(); +} + +function InferredPredicate() { + this.token("%"); + this.word("checks"); +} + +function DeclaredPredicate(node) { + this.token("%"); + this.word("checks"); + this.token("("); + this.print(node.value, node); + this.token(")"); +} + +function DeclareInterface(node) { + this.word("declare"); + this.space(); + this.InterfaceDeclaration(node); +} + +function DeclareModule(node) { + this.word("declare"); + this.space(); + this.word("module"); + this.space(); + this.print(node.id, node); + this.space(); + this.print(node.body, node); +} + +function DeclareModuleExports(node) { + this.word("declare"); + this.space(); + this.word("module"); + this.token("."); + this.word("exports"); + this.print(node.typeAnnotation, node); +} + +function DeclareTypeAlias(node) { + this.word("declare"); + this.space(); + this.TypeAlias(node); +} + +function DeclareOpaqueType(node, parent) { + if (!t().isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + + this.OpaqueType(node); +} + +function DeclareVariable(node, parent) { + if (!t().isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + + this.word("var"); + this.space(); + this.print(node.id, node); + this.print(node.id.typeAnnotation, node); + this.semicolon(); +} + +function DeclareExportDeclaration(node) { + this.word("declare"); + this.space(); + this.word("export"); + this.space(); + + if (node.default) { + this.word("default"); + this.space(); + } + + FlowExportDeclaration.apply(this, arguments); +} + +function DeclareExportAllDeclaration() { + this.word("declare"); + this.space(); + + _modules.ExportAllDeclaration.apply(this, arguments); +} + +function FlowExportDeclaration(node) { + if (node.declaration) { + const declar = node.declaration; + this.print(declar, node); + if (!t().isStatement(declar)) this.semicolon(); + } else { + this.token("{"); + + if (node.specifiers.length) { + this.space(); + this.printList(node.specifiers, node); + this.space(); + } + + this.token("}"); + + if (node.source) { + this.space(); + this.word("from"); + this.space(); + this.print(node.source, node); + } + + this.semicolon(); + } +} + +function ExistsTypeAnnotation() { + this.token("*"); +} + +function FunctionTypeAnnotation(node, parent) { + this.print(node.typeParameters, node); + this.token("("); + this.printList(node.params, node); + + if (node.rest) { + if (node.params.length) { + this.token(","); + this.space(); + } + + this.token("..."); + this.print(node.rest, node); + } + + this.token(")"); + + if (parent.type === "ObjectTypeCallProperty" || parent.type === "DeclareFunction" || parent.type === "ObjectTypeProperty" && parent.method) { + this.token(":"); + } else { + this.space(); + this.token("=>"); + } + + this.space(); + this.print(node.returnType, node); +} + +function FunctionTypeParam(node) { + this.print(node.name, node); + if (node.optional) this.token("?"); + + if (node.name) { + this.token(":"); + this.space(); + } + + this.print(node.typeAnnotation, node); +} + +function InterfaceExtends(node) { + this.print(node.id, node); + this.print(node.typeParameters, node); +} + +function _interfaceish(node) { + this.print(node.id, node); + this.print(node.typeParameters, node); + + if (node.extends.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(node.extends, node); + } + + if (node.mixins && node.mixins.length) { + this.space(); + this.word("mixins"); + this.space(); + this.printList(node.mixins, node); + } + + if (node.implements && node.implements.length) { + this.space(); + this.word("implements"); + this.space(); + this.printList(node.implements, node); + } + + this.space(); + this.print(node.body, node); +} + +function _variance(node) { + if (node.variance) { + if (node.variance.kind === "plus") { + this.token("+"); + } else if (node.variance.kind === "minus") { + this.token("-"); + } + } +} + +function InterfaceDeclaration(node) { + this.word("interface"); + this.space(); + + this._interfaceish(node); +} + +function andSeparator() { + this.space(); + this.token("&"); + this.space(); +} + +function InterfaceTypeAnnotation(node) { + this.word("interface"); + + if (node.extends && node.extends.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(node.extends, node); + } + + this.space(); + this.print(node.body, node); +} + +function IntersectionTypeAnnotation(node) { + this.printJoin(node.types, node, { + separator: andSeparator + }); +} + +function MixedTypeAnnotation() { + this.word("mixed"); +} + +function EmptyTypeAnnotation() { + this.word("empty"); +} + +function NullableTypeAnnotation(node) { + this.token("?"); + this.print(node.typeAnnotation, node); +} + +function NumberTypeAnnotation() { + this.word("number"); +} + +function StringTypeAnnotation() { + this.word("string"); +} + +function ThisTypeAnnotation() { + this.word("this"); +} + +function TupleTypeAnnotation(node) { + this.token("["); + this.printList(node.types, node); + this.token("]"); +} + +function TypeofTypeAnnotation(node) { + this.word("typeof"); + this.space(); + this.print(node.argument, node); +} + +function TypeAlias(node) { + this.word("type"); + this.space(); + this.print(node.id, node); + this.print(node.typeParameters, node); + this.space(); + this.token("="); + this.space(); + this.print(node.right, node); + this.semicolon(); +} + +function TypeAnnotation(node) { + this.token(":"); + this.space(); + if (node.optional) this.token("?"); + this.print(node.typeAnnotation, node); +} + +function TypeParameterInstantiation(node) { + this.token("<"); + this.printList(node.params, node, {}); + this.token(">"); +} + +function TypeParameter(node) { + this._variance(node); + + this.word(node.name); + + if (node.bound) { + this.print(node.bound, node); + } + + if (node.default) { + this.space(); + this.token("="); + this.space(); + this.print(node.default, node); + } +} + +function OpaqueType(node) { + this.word("opaque"); + this.space(); + this.word("type"); + this.space(); + this.print(node.id, node); + this.print(node.typeParameters, node); + + if (node.supertype) { + this.token(":"); + this.space(); + this.print(node.supertype, node); + } + + if (node.impltype) { + this.space(); + this.token("="); + this.space(); + this.print(node.impltype, node); + } + + this.semicolon(); +} + +function ObjectTypeAnnotation(node) { + if (node.exact) { + this.token("{|"); + } else { + this.token("{"); + } + + const props = node.properties.concat(node.callProperties || [], node.indexers || [], node.internalSlots || []); + + if (props.length) { + this.space(); + this.printJoin(props, node, { + addNewlines(leading) { + if (leading && !props[0]) return 1; + }, + + indent: true, + statement: true, + iterator: () => { + if (props.length !== 1) { + this.token(","); + this.space(); + } + } + }); + this.space(); + } + + if (node.exact) { + this.token("|}"); + } else { + this.token("}"); + } +} + +function ObjectTypeInternalSlot(node) { + if (node.static) { + this.word("static"); + this.space(); + } + + this.token("["); + this.token("["); + this.print(node.id, node); + this.token("]"); + this.token("]"); + if (node.optional) this.token("?"); + + if (!node.method) { + this.token(":"); + this.space(); + } + + this.print(node.value, node); +} + +function ObjectTypeCallProperty(node) { + if (node.static) { + this.word("static"); + this.space(); + } + + this.print(node.value, node); +} + +function ObjectTypeIndexer(node) { + if (node.static) { + this.word("static"); + this.space(); + } + + this._variance(node); + + this.token("["); + + if (node.id) { + this.print(node.id, node); + this.token(":"); + this.space(); + } + + this.print(node.key, node); + this.token("]"); + this.token(":"); + this.space(); + this.print(node.value, node); +} + +function ObjectTypeProperty(node) { + if (node.proto) { + this.word("proto"); + this.space(); + } + + if (node.static) { + this.word("static"); + this.space(); + } + + this._variance(node); + + this.print(node.key, node); + if (node.optional) this.token("?"); + + if (!node.method) { + this.token(":"); + this.space(); + } + + this.print(node.value, node); +} + +function ObjectTypeSpreadProperty(node) { + this.token("..."); + this.print(node.argument, node); +} + +function QualifiedTypeIdentifier(node) { + this.print(node.qualification, node); + this.token("."); + this.print(node.id, node); +} + +function orSeparator() { + this.space(); + this.token("|"); + this.space(); +} + +function UnionTypeAnnotation(node) { + this.printJoin(node.types, node, { + separator: orSeparator + }); +} + +function TypeCastExpression(node) { + this.token("("); + this.print(node.expression, node); + this.print(node.typeAnnotation, node); + this.token(")"); +} + +function Variance(node) { + if (node.kind === "plus") { + this.token("+"); + } else { + this.token("-"); + } +} + +function VoidTypeAnnotation() { + this.word("void"); +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/index.js b/node_modules/@babel/generator/lib/generators/index.js new file mode 100644 index 0000000..f2b4cec --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/index.js @@ -0,0 +1,137 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _templateLiterals = require("./template-literals"); + +Object.keys(_templateLiterals).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _templateLiterals[key]; + } + }); +}); + +var _expressions = require("./expressions"); + +Object.keys(_expressions).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _expressions[key]; + } + }); +}); + +var _statements = require("./statements"); + +Object.keys(_statements).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _statements[key]; + } + }); +}); + +var _classes = require("./classes"); + +Object.keys(_classes).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _classes[key]; + } + }); +}); + +var _methods = require("./methods"); + +Object.keys(_methods).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _methods[key]; + } + }); +}); + +var _modules = require("./modules"); + +Object.keys(_modules).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _modules[key]; + } + }); +}); + +var _types = require("./types"); + +Object.keys(_types).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _types[key]; + } + }); +}); + +var _flow = require("./flow"); + +Object.keys(_flow).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _flow[key]; + } + }); +}); + +var _base = require("./base"); + +Object.keys(_base).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _base[key]; + } + }); +}); + +var _jsx = require("./jsx"); + +Object.keys(_jsx).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _jsx[key]; + } + }); +}); + +var _typescript = require("./typescript"); + +Object.keys(_typescript).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _typescript[key]; + } + }); +}); \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/jsx.js b/node_modules/@babel/generator/lib/generators/jsx.js new file mode 100644 index 0000000..4850913 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/jsx.js @@ -0,0 +1,145 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.JSXAttribute = JSXAttribute; +exports.JSXIdentifier = JSXIdentifier; +exports.JSXNamespacedName = JSXNamespacedName; +exports.JSXMemberExpression = JSXMemberExpression; +exports.JSXSpreadAttribute = JSXSpreadAttribute; +exports.JSXExpressionContainer = JSXExpressionContainer; +exports.JSXSpreadChild = JSXSpreadChild; +exports.JSXText = JSXText; +exports.JSXElement = JSXElement; +exports.JSXOpeningElement = JSXOpeningElement; +exports.JSXClosingElement = JSXClosingElement; +exports.JSXEmptyExpression = JSXEmptyExpression; +exports.JSXFragment = JSXFragment; +exports.JSXOpeningFragment = JSXOpeningFragment; +exports.JSXClosingFragment = JSXClosingFragment; + +function JSXAttribute(node) { + this.print(node.name, node); + + if (node.value) { + this.token("="); + this.print(node.value, node); + } +} + +function JSXIdentifier(node) { + this.word(node.name); +} + +function JSXNamespacedName(node) { + this.print(node.namespace, node); + this.token(":"); + this.print(node.name, node); +} + +function JSXMemberExpression(node) { + this.print(node.object, node); + this.token("."); + this.print(node.property, node); +} + +function JSXSpreadAttribute(node) { + this.token("{"); + this.token("..."); + this.print(node.argument, node); + this.token("}"); +} + +function JSXExpressionContainer(node) { + this.token("{"); + this.print(node.expression, node); + this.token("}"); +} + +function JSXSpreadChild(node) { + this.token("{"); + this.token("..."); + this.print(node.expression, node); + this.token("}"); +} + +function JSXText(node) { + const raw = this.getPossibleRaw(node); + + if (raw != null) { + this.token(raw); + } else { + this.token(node.value); + } +} + +function JSXElement(node) { + const open = node.openingElement; + this.print(open, node); + if (open.selfClosing) return; + this.indent(); + + for (const child of node.children) { + this.print(child, node); + } + + this.dedent(); + this.print(node.closingElement, node); +} + +function spaceSeparator() { + this.space(); +} + +function JSXOpeningElement(node) { + this.token("<"); + this.print(node.name, node); + this.print(node.typeParameters, node); + + if (node.attributes.length > 0) { + this.space(); + this.printJoin(node.attributes, node, { + separator: spaceSeparator + }); + } + + if (node.selfClosing) { + this.space(); + this.token("/>"); + } else { + this.token(">"); + } +} + +function JSXClosingElement(node) { + this.token(""); +} + +function JSXEmptyExpression(node) { + this.printInnerComments(node); +} + +function JSXFragment(node) { + this.print(node.openingFragment, node); + this.indent(); + + for (const child of node.children) { + this.print(child, node); + } + + this.dedent(); + this.print(node.closingFragment, node); +} + +function JSXOpeningFragment() { + this.token("<"); + this.token(">"); +} + +function JSXClosingFragment() { + this.token(""); +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/methods.js b/node_modules/@babel/generator/lib/generators/methods.js new file mode 100644 index 0000000..39965ba --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/methods.js @@ -0,0 +1,167 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports._params = _params; +exports._parameters = _parameters; +exports._param = _param; +exports._methodHead = _methodHead; +exports._predicate = _predicate; +exports._functionHead = _functionHead; +exports.FunctionDeclaration = exports.FunctionExpression = FunctionExpression; +exports.ArrowFunctionExpression = ArrowFunctionExpression; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function _params(node) { + this.print(node.typeParameters, node); + this.token("("); + + this._parameters(node.params, node); + + this.token(")"); + this.print(node.returnType, node); +} + +function _parameters(parameters, parent) { + for (let i = 0; i < parameters.length; i++) { + this._param(parameters[i], parent); + + if (i < parameters.length - 1) { + this.token(","); + this.space(); + } + } +} + +function _param(parameter, parent) { + this.printJoin(parameter.decorators, parameter); + this.print(parameter, parent); + if (parameter.optional) this.token("?"); + this.print(parameter.typeAnnotation, parameter); +} + +function _methodHead(node) { + const kind = node.kind; + const key = node.key; + + if (kind === "get" || kind === "set") { + this.word(kind); + this.space(); + } + + if (node.async) { + this.word("async"); + this.space(); + } + + if (kind === "method" || kind === "init") { + if (node.generator) { + this.token("*"); + } + } + + if (node.computed) { + this.token("["); + this.print(key, node); + this.token("]"); + } else { + this.print(key, node); + } + + if (node.optional) { + this.token("?"); + } + + this._params(node); +} + +function _predicate(node) { + if (node.predicate) { + if (!node.returnType) { + this.token(":"); + } + + this.space(); + this.print(node.predicate, node); + } +} + +function _functionHead(node) { + if (node.async) { + this.word("async"); + this.space(); + } + + this.word("function"); + if (node.generator) this.token("*"); + this.space(); + + if (node.id) { + this.print(node.id, node); + } + + this._params(node); + + this._predicate(node); +} + +function FunctionExpression(node) { + this._functionHead(node); + + this.space(); + this.print(node.body, node); +} + +function ArrowFunctionExpression(node) { + if (node.async) { + this.word("async"); + this.space(); + } + + const firstParam = node.params[0]; + + if (node.params.length === 1 && t().isIdentifier(firstParam) && !hasTypes(node, firstParam)) { + if (this.format.retainLines && node.loc && node.body.loc && node.loc.start.line < node.body.loc.start.line) { + this.token("("); + + if (firstParam.loc && firstParam.loc.start.line > node.loc.start.line) { + this.indent(); + this.print(firstParam, node); + this.dedent(); + + this._catchUp("start", node.body.loc); + } else { + this.print(firstParam, node); + } + + this.token(")"); + } else { + this.print(firstParam, node); + } + } else { + this._params(node); + } + + this._predicate(node); + + this.space(); + this.token("=>"); + this.space(); + this.print(node.body, node); +} + +function hasTypes(node, param) { + return node.typeParameters || node.returnType || param.typeAnnotation || param.optional || param.trailingComments; +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/modules.js b/node_modules/@babel/generator/lib/generators/modules.js new file mode 100644 index 0000000..af87bd5 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/modules.js @@ -0,0 +1,214 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ImportSpecifier = ImportSpecifier; +exports.ImportDefaultSpecifier = ImportDefaultSpecifier; +exports.ExportDefaultSpecifier = ExportDefaultSpecifier; +exports.ExportSpecifier = ExportSpecifier; +exports.ExportNamespaceSpecifier = ExportNamespaceSpecifier; +exports.ExportAllDeclaration = ExportAllDeclaration; +exports.ExportNamedDeclaration = ExportNamedDeclaration; +exports.ExportDefaultDeclaration = ExportDefaultDeclaration; +exports.ImportDeclaration = ImportDeclaration; +exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function ImportSpecifier(node) { + if (node.importKind === "type" || node.importKind === "typeof") { + this.word(node.importKind); + this.space(); + } + + this.print(node.imported, node); + + if (node.local && node.local.name !== node.imported.name) { + this.space(); + this.word("as"); + this.space(); + this.print(node.local, node); + } +} + +function ImportDefaultSpecifier(node) { + this.print(node.local, node); +} + +function ExportDefaultSpecifier(node) { + this.print(node.exported, node); +} + +function ExportSpecifier(node) { + this.print(node.local, node); + + if (node.exported && node.local.name !== node.exported.name) { + this.space(); + this.word("as"); + this.space(); + this.print(node.exported, node); + } +} + +function ExportNamespaceSpecifier(node) { + this.token("*"); + this.space(); + this.word("as"); + this.space(); + this.print(node.exported, node); +} + +function ExportAllDeclaration(node) { + this.word("export"); + this.space(); + + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + + this.token("*"); + this.space(); + this.word("from"); + this.space(); + this.print(node.source, node); + this.semicolon(); +} + +function ExportNamedDeclaration(node) { + if (this.format.decoratorsBeforeExport && t().isClassDeclaration(node.declaration)) { + this.printJoin(node.declaration.decorators, node); + } + + this.word("export"); + this.space(); + ExportDeclaration.apply(this, arguments); +} + +function ExportDefaultDeclaration(node) { + if (this.format.decoratorsBeforeExport && t().isClassDeclaration(node.declaration)) { + this.printJoin(node.declaration.decorators, node); + } + + this.word("export"); + this.space(); + this.word("default"); + this.space(); + ExportDeclaration.apply(this, arguments); +} + +function ExportDeclaration(node) { + if (node.declaration) { + const declar = node.declaration; + this.print(declar, node); + if (!t().isStatement(declar)) this.semicolon(); + } else { + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + + const specifiers = node.specifiers.slice(0); + let hasSpecial = false; + + while (true) { + const first = specifiers[0]; + + if (t().isExportDefaultSpecifier(first) || t().isExportNamespaceSpecifier(first)) { + hasSpecial = true; + this.print(specifiers.shift(), node); + + if (specifiers.length) { + this.token(","); + this.space(); + } + } else { + break; + } + } + + if (specifiers.length || !specifiers.length && !hasSpecial) { + this.token("{"); + + if (specifiers.length) { + this.space(); + this.printList(specifiers, node); + this.space(); + } + + this.token("}"); + } + + if (node.source) { + this.space(); + this.word("from"); + this.space(); + this.print(node.source, node); + } + + this.semicolon(); + } +} + +function ImportDeclaration(node) { + this.word("import"); + this.space(); + + if (node.importKind === "type" || node.importKind === "typeof") { + this.word(node.importKind); + this.space(); + } + + const specifiers = node.specifiers.slice(0); + + if (specifiers && specifiers.length) { + while (true) { + const first = specifiers[0]; + + if (t().isImportDefaultSpecifier(first) || t().isImportNamespaceSpecifier(first)) { + this.print(specifiers.shift(), node); + + if (specifiers.length) { + this.token(","); + this.space(); + } + } else { + break; + } + } + + if (specifiers.length) { + this.token("{"); + this.space(); + this.printList(specifiers, node); + this.space(); + this.token("}"); + } + + this.space(); + this.word("from"); + this.space(); + } + + this.print(node.source, node); + this.semicolon(); +} + +function ImportNamespaceSpecifier(node) { + this.token("*"); + this.space(); + this.word("as"); + this.space(); + this.print(node.local, node); +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/statements.js b/node_modules/@babel/generator/lib/generators/statements.js new file mode 100644 index 0000000..c74363d --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/statements.js @@ -0,0 +1,319 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.WithStatement = WithStatement; +exports.IfStatement = IfStatement; +exports.ForStatement = ForStatement; +exports.WhileStatement = WhileStatement; +exports.DoWhileStatement = DoWhileStatement; +exports.LabeledStatement = LabeledStatement; +exports.TryStatement = TryStatement; +exports.CatchClause = CatchClause; +exports.SwitchStatement = SwitchStatement; +exports.SwitchCase = SwitchCase; +exports.DebuggerStatement = DebuggerStatement; +exports.VariableDeclaration = VariableDeclaration; +exports.VariableDeclarator = VariableDeclarator; +exports.ThrowStatement = exports.BreakStatement = exports.ReturnStatement = exports.ContinueStatement = exports.ForOfStatement = exports.ForInStatement = void 0; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function WithStatement(node) { + this.word("with"); + this.space(); + this.token("("); + this.print(node.object, node); + this.token(")"); + this.printBlock(node); +} + +function IfStatement(node) { + this.word("if"); + this.space(); + this.token("("); + this.print(node.test, node); + this.token(")"); + this.space(); + const needsBlock = node.alternate && t().isIfStatement(getLastStatement(node.consequent)); + + if (needsBlock) { + this.token("{"); + this.newline(); + this.indent(); + } + + this.printAndIndentOnComments(node.consequent, node); + + if (needsBlock) { + this.dedent(); + this.newline(); + this.token("}"); + } + + if (node.alternate) { + if (this.endsWith("}")) this.space(); + this.word("else"); + this.space(); + this.printAndIndentOnComments(node.alternate, node); + } +} + +function getLastStatement(statement) { + if (!t().isStatement(statement.body)) return statement; + return getLastStatement(statement.body); +} + +function ForStatement(node) { + this.word("for"); + this.space(); + this.token("("); + this.inForStatementInitCounter++; + this.print(node.init, node); + this.inForStatementInitCounter--; + this.token(";"); + + if (node.test) { + this.space(); + this.print(node.test, node); + } + + this.token(";"); + + if (node.update) { + this.space(); + this.print(node.update, node); + } + + this.token(")"); + this.printBlock(node); +} + +function WhileStatement(node) { + this.word("while"); + this.space(); + this.token("("); + this.print(node.test, node); + this.token(")"); + this.printBlock(node); +} + +const buildForXStatement = function (op) { + return function (node) { + this.word("for"); + this.space(); + + if (op === "of" && node.await) { + this.word("await"); + this.space(); + } + + this.token("("); + this.print(node.left, node); + this.space(); + this.word(op); + this.space(); + this.print(node.right, node); + this.token(")"); + this.printBlock(node); + }; +}; + +const ForInStatement = buildForXStatement("in"); +exports.ForInStatement = ForInStatement; +const ForOfStatement = buildForXStatement("of"); +exports.ForOfStatement = ForOfStatement; + +function DoWhileStatement(node) { + this.word("do"); + this.space(); + this.print(node.body, node); + this.space(); + this.word("while"); + this.space(); + this.token("("); + this.print(node.test, node); + this.token(")"); + this.semicolon(); +} + +function buildLabelStatement(prefix, key = "label") { + return function (node) { + this.word(prefix); + const label = node[key]; + + if (label) { + this.space(); + const isLabel = key == "label"; + const terminatorState = this.startTerminatorless(isLabel); + this.print(label, node); + this.endTerminatorless(terminatorState); + } + + this.semicolon(); + }; +} + +const ContinueStatement = buildLabelStatement("continue"); +exports.ContinueStatement = ContinueStatement; +const ReturnStatement = buildLabelStatement("return", "argument"); +exports.ReturnStatement = ReturnStatement; +const BreakStatement = buildLabelStatement("break"); +exports.BreakStatement = BreakStatement; +const ThrowStatement = buildLabelStatement("throw", "argument"); +exports.ThrowStatement = ThrowStatement; + +function LabeledStatement(node) { + this.print(node.label, node); + this.token(":"); + this.space(); + this.print(node.body, node); +} + +function TryStatement(node) { + this.word("try"); + this.space(); + this.print(node.block, node); + this.space(); + + if (node.handlers) { + this.print(node.handlers[0], node); + } else { + this.print(node.handler, node); + } + + if (node.finalizer) { + this.space(); + this.word("finally"); + this.space(); + this.print(node.finalizer, node); + } +} + +function CatchClause(node) { + this.word("catch"); + this.space(); + + if (node.param) { + this.token("("); + this.print(node.param, node); + this.token(")"); + this.space(); + } + + this.print(node.body, node); +} + +function SwitchStatement(node) { + this.word("switch"); + this.space(); + this.token("("); + this.print(node.discriminant, node); + this.token(")"); + this.space(); + this.token("{"); + this.printSequence(node.cases, node, { + indent: true, + + addNewlines(leading, cas) { + if (!leading && node.cases[node.cases.length - 1] === cas) return -1; + } + + }); + this.token("}"); +} + +function SwitchCase(node) { + if (node.test) { + this.word("case"); + this.space(); + this.print(node.test, node); + this.token(":"); + } else { + this.word("default"); + this.token(":"); + } + + if (node.consequent.length) { + this.newline(); + this.printSequence(node.consequent, node, { + indent: true + }); + } +} + +function DebuggerStatement() { + this.word("debugger"); + this.semicolon(); +} + +function variableDeclarationIndent() { + this.token(","); + this.newline(); + if (this.endsWith("\n")) for (let i = 0; i < 4; i++) this.space(true); +} + +function constDeclarationIndent() { + this.token(","); + this.newline(); + if (this.endsWith("\n")) for (let i = 0; i < 6; i++) this.space(true); +} + +function VariableDeclaration(node, parent) { + if (node.declare) { + this.word("declare"); + this.space(); + } + + this.word(node.kind); + this.space(); + let hasInits = false; + + if (!t().isFor(parent)) { + for (const declar of node.declarations) { + if (declar.init) { + hasInits = true; + } + } + } + + let separator; + + if (hasInits) { + separator = node.kind === "const" ? constDeclarationIndent : variableDeclarationIndent; + } + + this.printList(node.declarations, node, { + separator + }); + + if (t().isFor(parent)) { + if (parent.left === node || parent.init === node) return; + } + + this.semicolon(); +} + +function VariableDeclarator(node) { + this.print(node.id, node); + if (node.definite) this.token("!"); + this.print(node.id.typeAnnotation, node); + + if (node.init) { + this.space(); + this.token("="); + this.space(); + this.print(node.init, node); + } +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/template-literals.js b/node_modules/@babel/generator/lib/generators/template-literals.js new file mode 100644 index 0000000..0543303 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/template-literals.js @@ -0,0 +1,33 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TaggedTemplateExpression = TaggedTemplateExpression; +exports.TemplateElement = TemplateElement; +exports.TemplateLiteral = TemplateLiteral; + +function TaggedTemplateExpression(node) { + this.print(node.tag, node); + this.print(node.typeParameters, node); + this.print(node.quasi, node); +} + +function TemplateElement(node, parent) { + const isFirst = parent.quasis[0] === node; + const isLast = parent.quasis[parent.quasis.length - 1] === node; + const value = (isFirst ? "`" : "}") + node.value.raw + (isLast ? "`" : "${"); + this.token(value); +} + +function TemplateLiteral(node) { + const quasis = node.quasis; + + for (let i = 0; i < quasis.length; i++) { + this.print(quasis[i], node); + + if (i + 1 < quasis.length) { + this.print(node.expressions[i], node); + } + } +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/types.js b/node_modules/@babel/generator/lib/generators/types.js new file mode 100644 index 0000000..12ae494 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/types.js @@ -0,0 +1,198 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Identifier = Identifier; +exports.ArgumentPlaceholder = ArgumentPlaceholder; +exports.SpreadElement = exports.RestElement = RestElement; +exports.ObjectPattern = exports.ObjectExpression = ObjectExpression; +exports.ObjectMethod = ObjectMethod; +exports.ObjectProperty = ObjectProperty; +exports.ArrayPattern = exports.ArrayExpression = ArrayExpression; +exports.RegExpLiteral = RegExpLiteral; +exports.BooleanLiteral = BooleanLiteral; +exports.NullLiteral = NullLiteral; +exports.NumericLiteral = NumericLiteral; +exports.StringLiteral = StringLiteral; +exports.BigIntLiteral = BigIntLiteral; +exports.PipelineTopicExpression = PipelineTopicExpression; +exports.PipelineBareFunction = PipelineBareFunction; +exports.PipelinePrimaryTopicReference = PipelinePrimaryTopicReference; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _jsesc() { + const data = _interopRequireDefault(require("jsesc")); + + _jsesc = function () { + return data; + }; + + return data; +} + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function Identifier(node) { + this.exactSource(node.loc, () => { + this.word(node.name); + }); +} + +function ArgumentPlaceholder() { + this.token("?"); +} + +function RestElement(node) { + this.token("..."); + this.print(node.argument, node); +} + +function ObjectExpression(node) { + const props = node.properties; + this.token("{"); + this.printInnerComments(node); + + if (props.length) { + this.space(); + this.printList(props, node, { + indent: true, + statement: true + }); + this.space(); + } + + this.token("}"); +} + +function ObjectMethod(node) { + this.printJoin(node.decorators, node); + + this._methodHead(node); + + this.space(); + this.print(node.body, node); +} + +function ObjectProperty(node) { + this.printJoin(node.decorators, node); + + if (node.computed) { + this.token("["); + this.print(node.key, node); + this.token("]"); + } else { + if (t().isAssignmentPattern(node.value) && t().isIdentifier(node.key) && node.key.name === node.value.left.name) { + this.print(node.value, node); + return; + } + + this.print(node.key, node); + + if (node.shorthand && t().isIdentifier(node.key) && t().isIdentifier(node.value) && node.key.name === node.value.name) { + return; + } + } + + this.token(":"); + this.space(); + this.print(node.value, node); +} + +function ArrayExpression(node) { + const elems = node.elements; + const len = elems.length; + this.token("["); + this.printInnerComments(node); + + for (let i = 0; i < elems.length; i++) { + const elem = elems[i]; + + if (elem) { + if (i > 0) this.space(); + this.print(elem, node); + if (i < len - 1) this.token(","); + } else { + this.token(","); + } + } + + this.token("]"); +} + +function RegExpLiteral(node) { + this.word(`/${node.pattern}/${node.flags}`); +} + +function BooleanLiteral(node) { + this.word(node.value ? "true" : "false"); +} + +function NullLiteral() { + this.word("null"); +} + +function NumericLiteral(node) { + const raw = this.getPossibleRaw(node); + const value = node.value + ""; + + if (raw == null) { + this.number(value); + } else if (this.format.minified) { + this.number(raw.length < value.length ? raw : value); + } else { + this.number(raw); + } +} + +function StringLiteral(node) { + const raw = this.getPossibleRaw(node); + + if (!this.format.minified && raw != null) { + this.token(raw); + return; + } + + const opts = this.format.jsescOption; + + if (this.format.jsonCompatibleStrings) { + opts.json = true; + } + + const val = (0, _jsesc().default)(node.value, opts); + return this.token(val); +} + +function BigIntLiteral(node) { + const raw = this.getPossibleRaw(node); + + if (!this.format.minified && raw != null) { + this.token(raw); + return; + } + + this.token(node.value); +} + +function PipelineTopicExpression(node) { + this.print(node.expression, node); +} + +function PipelineBareFunction(node) { + this.print(node.callee, node); +} + +function PipelinePrimaryTopicReference() { + this.token("#"); +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/typescript.js b/node_modules/@babel/generator/lib/generators/typescript.js new file mode 100644 index 0000000..0355057 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/typescript.js @@ -0,0 +1,715 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TSTypeAnnotation = TSTypeAnnotation; +exports.TSTypeParameterDeclaration = exports.TSTypeParameterInstantiation = TSTypeParameterInstantiation; +exports.TSTypeParameter = TSTypeParameter; +exports.TSParameterProperty = TSParameterProperty; +exports.TSDeclareFunction = TSDeclareFunction; +exports.TSDeclareMethod = TSDeclareMethod; +exports.TSQualifiedName = TSQualifiedName; +exports.TSCallSignatureDeclaration = TSCallSignatureDeclaration; +exports.TSConstructSignatureDeclaration = TSConstructSignatureDeclaration; +exports.TSPropertySignature = TSPropertySignature; +exports.tsPrintPropertyOrMethodName = tsPrintPropertyOrMethodName; +exports.TSMethodSignature = TSMethodSignature; +exports.TSIndexSignature = TSIndexSignature; +exports.TSAnyKeyword = TSAnyKeyword; +exports.TSUnknownKeyword = TSUnknownKeyword; +exports.TSNumberKeyword = TSNumberKeyword; +exports.TSObjectKeyword = TSObjectKeyword; +exports.TSBooleanKeyword = TSBooleanKeyword; +exports.TSStringKeyword = TSStringKeyword; +exports.TSSymbolKeyword = TSSymbolKeyword; +exports.TSVoidKeyword = TSVoidKeyword; +exports.TSUndefinedKeyword = TSUndefinedKeyword; +exports.TSNullKeyword = TSNullKeyword; +exports.TSNeverKeyword = TSNeverKeyword; +exports.TSThisType = TSThisType; +exports.TSFunctionType = TSFunctionType; +exports.TSConstructorType = TSConstructorType; +exports.tsPrintFunctionOrConstructorType = tsPrintFunctionOrConstructorType; +exports.TSTypeReference = TSTypeReference; +exports.TSTypePredicate = TSTypePredicate; +exports.TSTypeQuery = TSTypeQuery; +exports.TSTypeLiteral = TSTypeLiteral; +exports.tsPrintTypeLiteralOrInterfaceBody = tsPrintTypeLiteralOrInterfaceBody; +exports.tsPrintBraced = tsPrintBraced; +exports.TSArrayType = TSArrayType; +exports.TSTupleType = TSTupleType; +exports.TSOptionalType = TSOptionalType; +exports.TSRestType = TSRestType; +exports.TSUnionType = TSUnionType; +exports.TSIntersectionType = TSIntersectionType; +exports.tsPrintUnionOrIntersectionType = tsPrintUnionOrIntersectionType; +exports.TSConditionalType = TSConditionalType; +exports.TSInferType = TSInferType; +exports.TSParenthesizedType = TSParenthesizedType; +exports.TSTypeOperator = TSTypeOperator; +exports.TSIndexedAccessType = TSIndexedAccessType; +exports.TSMappedType = TSMappedType; +exports.TSLiteralType = TSLiteralType; +exports.TSExpressionWithTypeArguments = TSExpressionWithTypeArguments; +exports.TSInterfaceDeclaration = TSInterfaceDeclaration; +exports.TSInterfaceBody = TSInterfaceBody; +exports.TSTypeAliasDeclaration = TSTypeAliasDeclaration; +exports.TSAsExpression = TSAsExpression; +exports.TSTypeAssertion = TSTypeAssertion; +exports.TSEnumDeclaration = TSEnumDeclaration; +exports.TSEnumMember = TSEnumMember; +exports.TSModuleDeclaration = TSModuleDeclaration; +exports.TSModuleBlock = TSModuleBlock; +exports.TSImportType = TSImportType; +exports.TSImportEqualsDeclaration = TSImportEqualsDeclaration; +exports.TSExternalModuleReference = TSExternalModuleReference; +exports.TSNonNullExpression = TSNonNullExpression; +exports.TSExportAssignment = TSExportAssignment; +exports.TSNamespaceExportDeclaration = TSNamespaceExportDeclaration; +exports.tsPrintSignatureDeclarationBase = tsPrintSignatureDeclarationBase; + +function TSTypeAnnotation(node) { + this.token(":"); + this.space(); + if (node.optional) this.token("?"); + this.print(node.typeAnnotation, node); +} + +function TSTypeParameterInstantiation(node) { + this.token("<"); + this.printList(node.params, node, {}); + this.token(">"); +} + +function TSTypeParameter(node) { + this.word(node.name); + + if (node.constraint) { + this.space(); + this.word("extends"); + this.space(); + this.print(node.constraint, node); + } + + if (node.default) { + this.space(); + this.token("="); + this.space(); + this.print(node.default, node); + } +} + +function TSParameterProperty(node) { + if (node.accessibility) { + this.word(node.accessibility); + this.space(); + } + + if (node.readonly) { + this.word("readonly"); + this.space(); + } + + this._param(node.parameter); +} + +function TSDeclareFunction(node) { + if (node.declare) { + this.word("declare"); + this.space(); + } + + this._functionHead(node); + + this.token(";"); +} + +function TSDeclareMethod(node) { + this._classMethodHead(node); + + this.token(";"); +} + +function TSQualifiedName(node) { + this.print(node.left, node); + this.token("."); + this.print(node.right, node); +} + +function TSCallSignatureDeclaration(node) { + this.tsPrintSignatureDeclarationBase(node); +} + +function TSConstructSignatureDeclaration(node) { + this.word("new"); + this.space(); + this.tsPrintSignatureDeclarationBase(node); +} + +function TSPropertySignature(node) { + const { + readonly, + initializer + } = node; + + if (readonly) { + this.word("readonly"); + this.space(); + } + + this.tsPrintPropertyOrMethodName(node); + this.print(node.typeAnnotation, node); + + if (initializer) { + this.space(); + this.token("="); + this.space(); + this.print(initializer, node); + } + + this.token(";"); +} + +function tsPrintPropertyOrMethodName(node) { + if (node.computed) { + this.token("["); + } + + this.print(node.key, node); + + if (node.computed) { + this.token("]"); + } + + if (node.optional) { + this.token("?"); + } +} + +function TSMethodSignature(node) { + this.tsPrintPropertyOrMethodName(node); + this.tsPrintSignatureDeclarationBase(node); + this.token(";"); +} + +function TSIndexSignature(node) { + const { + readonly + } = node; + + if (readonly) { + this.word("readonly"); + this.space(); + } + + this.token("["); + + this._parameters(node.parameters, node); + + this.token("]"); + this.print(node.typeAnnotation, node); + this.token(";"); +} + +function TSAnyKeyword() { + this.word("any"); +} + +function TSUnknownKeyword() { + this.word("unknown"); +} + +function TSNumberKeyword() { + this.word("number"); +} + +function TSObjectKeyword() { + this.word("object"); +} + +function TSBooleanKeyword() { + this.word("boolean"); +} + +function TSStringKeyword() { + this.word("string"); +} + +function TSSymbolKeyword() { + this.word("symbol"); +} + +function TSVoidKeyword() { + this.word("void"); +} + +function TSUndefinedKeyword() { + this.word("undefined"); +} + +function TSNullKeyword() { + this.word("null"); +} + +function TSNeverKeyword() { + this.word("never"); +} + +function TSThisType() { + this.word("this"); +} + +function TSFunctionType(node) { + this.tsPrintFunctionOrConstructorType(node); +} + +function TSConstructorType(node) { + this.word("new"); + this.space(); + this.tsPrintFunctionOrConstructorType(node); +} + +function tsPrintFunctionOrConstructorType(node) { + const { + typeParameters, + parameters + } = node; + this.print(typeParameters, node); + this.token("("); + + this._parameters(parameters, node); + + this.token(")"); + this.space(); + this.token("=>"); + this.space(); + this.print(node.typeAnnotation.typeAnnotation, node); +} + +function TSTypeReference(node) { + this.print(node.typeName, node); + this.print(node.typeParameters, node); +} + +function TSTypePredicate(node) { + this.print(node.parameterName); + this.space(); + this.word("is"); + this.space(); + this.print(node.typeAnnotation.typeAnnotation); +} + +function TSTypeQuery(node) { + this.word("typeof"); + this.space(); + this.print(node.exprName); +} + +function TSTypeLiteral(node) { + this.tsPrintTypeLiteralOrInterfaceBody(node.members, node); +} + +function tsPrintTypeLiteralOrInterfaceBody(members, node) { + this.tsPrintBraced(members, node); +} + +function tsPrintBraced(members, node) { + this.token("{"); + + if (members.length) { + this.indent(); + this.newline(); + + for (const member of members) { + this.print(member, node); + this.newline(); + } + + this.dedent(); + this.rightBrace(); + } else { + this.token("}"); + } +} + +function TSArrayType(node) { + this.print(node.elementType, node); + this.token("[]"); +} + +function TSTupleType(node) { + this.token("["); + this.printList(node.elementTypes, node); + this.token("]"); +} + +function TSOptionalType(node) { + this.print(node.typeAnnotation, node); + this.token("?"); +} + +function TSRestType(node) { + this.token("..."); + this.print(node.typeAnnotation, node); +} + +function TSUnionType(node) { + this.tsPrintUnionOrIntersectionType(node, "|"); +} + +function TSIntersectionType(node) { + this.tsPrintUnionOrIntersectionType(node, "&"); +} + +function tsPrintUnionOrIntersectionType(node, sep) { + this.printJoin(node.types, node, { + separator() { + this.space(); + this.token(sep); + this.space(); + } + + }); +} + +function TSConditionalType(node) { + this.print(node.checkType); + this.space(); + this.word("extends"); + this.space(); + this.print(node.extendsType); + this.space(); + this.token("?"); + this.space(); + this.print(node.trueType); + this.space(); + this.token(":"); + this.space(); + this.print(node.falseType); +} + +function TSInferType(node) { + this.token("infer"); + this.space(); + this.print(node.typeParameter); +} + +function TSParenthesizedType(node) { + this.token("("); + this.print(node.typeAnnotation, node); + this.token(")"); +} + +function TSTypeOperator(node) { + this.token(node.operator); + this.space(); + this.print(node.typeAnnotation, node); +} + +function TSIndexedAccessType(node) { + this.print(node.objectType, node); + this.token("["); + this.print(node.indexType, node); + this.token("]"); +} + +function TSMappedType(node) { + const { + readonly, + typeParameter, + optional + } = node; + this.token("{"); + this.space(); + + if (readonly) { + tokenIfPlusMinus(this, readonly); + this.word("readonly"); + this.space(); + } + + this.token("["); + this.word(typeParameter.name); + this.space(); + this.word("in"); + this.space(); + this.print(typeParameter.constraint, typeParameter); + this.token("]"); + + if (optional) { + tokenIfPlusMinus(this, optional); + this.token("?"); + } + + this.token(":"); + this.space(); + this.print(node.typeAnnotation, node); + this.space(); + this.token("}"); +} + +function tokenIfPlusMinus(self, tok) { + if (tok !== true) { + self.token(tok); + } +} + +function TSLiteralType(node) { + this.print(node.literal, node); +} + +function TSExpressionWithTypeArguments(node) { + this.print(node.expression, node); + this.print(node.typeParameters, node); +} + +function TSInterfaceDeclaration(node) { + const { + declare, + id, + typeParameters, + extends: extendz, + body + } = node; + + if (declare) { + this.word("declare"); + this.space(); + } + + this.word("interface"); + this.space(); + this.print(id, node); + this.print(typeParameters, node); + + if (extendz) { + this.space(); + this.word("extends"); + this.space(); + this.printList(extendz, node); + } + + this.space(); + this.print(body, node); +} + +function TSInterfaceBody(node) { + this.tsPrintTypeLiteralOrInterfaceBody(node.body, node); +} + +function TSTypeAliasDeclaration(node) { + const { + declare, + id, + typeParameters, + typeAnnotation + } = node; + + if (declare) { + this.word("declare"); + this.space(); + } + + this.word("type"); + this.space(); + this.print(id, node); + this.print(typeParameters, node); + this.space(); + this.token("="); + this.space(); + this.print(typeAnnotation, node); + this.token(";"); +} + +function TSAsExpression(node) { + const { + expression, + typeAnnotation + } = node; + this.print(expression, node); + this.space(); + this.word("as"); + this.space(); + this.print(typeAnnotation, node); +} + +function TSTypeAssertion(node) { + const { + typeAnnotation, + expression + } = node; + this.token("<"); + this.print(typeAnnotation, node); + this.token(">"); + this.space(); + this.print(expression, node); +} + +function TSEnumDeclaration(node) { + const { + declare, + const: isConst, + id, + members + } = node; + + if (declare) { + this.word("declare"); + this.space(); + } + + if (isConst) { + this.word("const"); + this.space(); + } + + this.word("enum"); + this.space(); + this.print(id, node); + this.space(); + this.tsPrintBraced(members, node); +} + +function TSEnumMember(node) { + const { + id, + initializer + } = node; + this.print(id, node); + + if (initializer) { + this.space(); + this.token("="); + this.space(); + this.print(initializer, node); + } + + this.token(","); +} + +function TSModuleDeclaration(node) { + const { + declare, + id + } = node; + + if (declare) { + this.word("declare"); + this.space(); + } + + if (!node.global) { + this.word(id.type === "Identifier" ? "namespace" : "module"); + this.space(); + } + + this.print(id, node); + + if (!node.body) { + this.token(";"); + return; + } + + let body = node.body; + + while (body.type === "TSModuleDeclaration") { + this.token("."); + this.print(body.id, body); + body = body.body; + } + + this.space(); + this.print(body, node); +} + +function TSModuleBlock(node) { + this.tsPrintBraced(node.body, node); +} + +function TSImportType(node) { + const { + argument, + qualifier, + typeParameters + } = node; + this.word("import"); + this.token("("); + this.print(argument, node); + this.token(")"); + + if (qualifier) { + this.token("."); + this.print(qualifier, node); + } + + if (typeParameters) { + this.print(typeParameters, node); + } +} + +function TSImportEqualsDeclaration(node) { + const { + isExport, + id, + moduleReference + } = node; + + if (isExport) { + this.word("export"); + this.space(); + } + + this.word("import"); + this.space(); + this.print(id, node); + this.space(); + this.token("="); + this.space(); + this.print(moduleReference, node); + this.token(";"); +} + +function TSExternalModuleReference(node) { + this.token("require("); + this.print(node.expression, node); + this.token(")"); +} + +function TSNonNullExpression(node) { + this.print(node.expression, node); + this.token("!"); +} + +function TSExportAssignment(node) { + this.word("export"); + this.space(); + this.token("="); + this.space(); + this.print(node.expression, node); + this.token(";"); +} + +function TSNamespaceExportDeclaration(node) { + this.word("export"); + this.space(); + this.word("as"); + this.space(); + this.word("namespace"); + this.space(); + this.print(node.id, node); +} + +function tsPrintSignatureDeclarationBase(node) { + const { + typeParameters, + parameters + } = node; + this.print(typeParameters, node); + this.token("("); + + this._parameters(parameters, node); + + this.token(")"); + this.print(node.typeAnnotation, node); +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/index.js b/node_modules/@babel/generator/lib/index.js new file mode 100644 index 0000000..fcdb288 --- /dev/null +++ b/node_modules/@babel/generator/lib/index.js @@ -0,0 +1,92 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +exports.CodeGenerator = void 0; + +var _sourceMap = _interopRequireDefault(require("./source-map")); + +var _printer = _interopRequireDefault(require("./printer")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +class Generator extends _printer.default { + constructor(ast, opts = {}, code) { + const format = normalizeOptions(code, opts); + const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; + super(format, map); + this.ast = ast; + } + + generate() { + return super.generate(this.ast); + } + +} + +function normalizeOptions(code, opts) { + const format = { + auxiliaryCommentBefore: opts.auxiliaryCommentBefore, + auxiliaryCommentAfter: opts.auxiliaryCommentAfter, + shouldPrintComment: opts.shouldPrintComment, + retainLines: opts.retainLines, + retainFunctionParens: opts.retainFunctionParens, + comments: opts.comments == null || opts.comments, + compact: opts.compact, + minified: opts.minified, + concise: opts.concise, + jsonCompatibleStrings: opts.jsonCompatibleStrings, + indent: { + adjustMultilineComment: true, + style: " ", + base: 0 + }, + decoratorsBeforeExport: !!opts.decoratorsBeforeExport, + jsescOption: Object.assign({ + quotes: "double", + wrap: true + }, opts.jsescOption) + }; + + if (format.minified) { + format.compact = true; + + format.shouldPrintComment = format.shouldPrintComment || (() => format.comments); + } else { + format.shouldPrintComment = format.shouldPrintComment || (value => format.comments || value.indexOf("@license") >= 0 || value.indexOf("@preserve") >= 0); + } + + if (format.compact === "auto") { + format.compact = code.length > 500000; + + if (format.compact) { + console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`); + } + } + + if (format.compact) { + format.indent.adjustMultilineComment = false; + } + + return format; +} + +class CodeGenerator { + constructor(ast, opts, code) { + this._generator = new Generator(ast, opts, code); + } + + generate() { + return this._generator.generate(); + } + +} + +exports.CodeGenerator = CodeGenerator; + +function _default(ast, opts, code) { + const gen = new Generator(ast, opts, code); + return gen.generate(); +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/node/index.js b/node_modules/@babel/generator/lib/node/index.js new file mode 100644 index 0000000..bef46f0 --- /dev/null +++ b/node_modules/@babel/generator/lib/node/index.js @@ -0,0 +1,117 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.needsWhitespace = needsWhitespace; +exports.needsWhitespaceBefore = needsWhitespaceBefore; +exports.needsWhitespaceAfter = needsWhitespaceAfter; +exports.needsParens = needsParens; + +var whitespace = _interopRequireWildcard(require("./whitespace")); + +var parens = _interopRequireWildcard(require("./parentheses")); + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function expandAliases(obj) { + const newObj = {}; + + function add(type, func) { + const fn = newObj[type]; + newObj[type] = fn ? function (node, parent, stack) { + const result = fn(node, parent, stack); + return result == null ? func(node, parent, stack) : result; + } : func; + } + + for (const type of Object.keys(obj)) { + const aliases = t().FLIPPED_ALIAS_KEYS[type]; + + if (aliases) { + for (const alias of aliases) { + add(alias, obj[type]); + } + } else { + add(type, obj[type]); + } + } + + return newObj; +} + +const expandedParens = expandAliases(parens); +const expandedWhitespaceNodes = expandAliases(whitespace.nodes); +const expandedWhitespaceList = expandAliases(whitespace.list); + +function find(obj, node, parent, printStack) { + const fn = obj[node.type]; + return fn ? fn(node, parent, printStack) : null; +} + +function isOrHasCallExpression(node) { + if (t().isCallExpression(node)) { + return true; + } + + if (t().isMemberExpression(node)) { + return isOrHasCallExpression(node.object) || !node.computed && isOrHasCallExpression(node.property); + } else { + return false; + } +} + +function needsWhitespace(node, parent, type) { + if (!node) return 0; + + if (t().isExpressionStatement(node)) { + node = node.expression; + } + + let linesInfo = find(expandedWhitespaceNodes, node, parent); + + if (!linesInfo) { + const items = find(expandedWhitespaceList, node, parent); + + if (items) { + for (let i = 0; i < items.length; i++) { + linesInfo = needsWhitespace(items[i], node, type); + if (linesInfo) break; + } + } + } + + if (typeof linesInfo === "object" && linesInfo !== null) { + return linesInfo[type] || 0; + } + + return 0; +} + +function needsWhitespaceBefore(node, parent) { + return needsWhitespace(node, parent, "before"); +} + +function needsWhitespaceAfter(node, parent) { + return needsWhitespace(node, parent, "after"); +} + +function needsParens(node, parent, printStack) { + if (!parent) return false; + + if (t().isNewExpression(parent) && parent.callee === node) { + if (isOrHasCallExpression(node)) return true; + } + + return find(expandedParens, node, parent, printStack); +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/node/parentheses.js b/node_modules/@babel/generator/lib/node/parentheses.js new file mode 100644 index 0000000..3f98dc1 --- /dev/null +++ b/node_modules/@babel/generator/lib/node/parentheses.js @@ -0,0 +1,253 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.NullableTypeAnnotation = NullableTypeAnnotation; +exports.FunctionTypeAnnotation = FunctionTypeAnnotation; +exports.UpdateExpression = UpdateExpression; +exports.ObjectExpression = ObjectExpression; +exports.DoExpression = DoExpression; +exports.Binary = Binary; +exports.IntersectionTypeAnnotation = exports.UnionTypeAnnotation = UnionTypeAnnotation; +exports.TSAsExpression = TSAsExpression; +exports.TSTypeAssertion = TSTypeAssertion; +exports.TSIntersectionType = exports.TSUnionType = TSUnionType; +exports.BinaryExpression = BinaryExpression; +exports.SequenceExpression = SequenceExpression; +exports.AwaitExpression = exports.YieldExpression = YieldExpression; +exports.ClassExpression = ClassExpression; +exports.UnaryLike = UnaryLike; +exports.FunctionExpression = FunctionExpression; +exports.ArrowFunctionExpression = ArrowFunctionExpression; +exports.ConditionalExpression = ConditionalExpression; +exports.OptionalMemberExpression = OptionalMemberExpression; +exports.AssignmentExpression = AssignmentExpression; +exports.NewExpression = NewExpression; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +const PRECEDENCE = { + "||": 0, + "&&": 1, + "|": 2, + "^": 3, + "&": 4, + "==": 5, + "===": 5, + "!=": 5, + "!==": 5, + "<": 6, + ">": 6, + "<=": 6, + ">=": 6, + in: 6, + instanceof: 6, + ">>": 7, + "<<": 7, + ">>>": 7, + "+": 8, + "-": 8, + "*": 9, + "/": 9, + "%": 9, + "**": 10 +}; + +const isClassExtendsClause = (node, parent) => (t().isClassDeclaration(parent) || t().isClassExpression(parent)) && parent.superClass === node; + +function NullableTypeAnnotation(node, parent) { + return t().isArrayTypeAnnotation(parent); +} + +function FunctionTypeAnnotation(node, parent) { + return t().isUnionTypeAnnotation(parent) || t().isIntersectionTypeAnnotation(parent) || t().isArrayTypeAnnotation(parent); +} + +function UpdateExpression(node, parent) { + return t().isMemberExpression(parent, { + object: node + }) || t().isCallExpression(parent, { + callee: node + }) || t().isNewExpression(parent, { + callee: node + }) || isClassExtendsClause(node, parent); +} + +function ObjectExpression(node, parent, printStack) { + return isFirstInStatement(printStack, { + considerArrow: true + }); +} + +function DoExpression(node, parent, printStack) { + return isFirstInStatement(printStack); +} + +function Binary(node, parent) { + if (node.operator === "**" && t().isBinaryExpression(parent, { + operator: "**" + })) { + return parent.left === node; + } + + if (isClassExtendsClause(node, parent)) { + return true; + } + + if ((t().isCallExpression(parent) || t().isNewExpression(parent)) && parent.callee === node || t().isUnaryLike(parent) || t().isMemberExpression(parent) && parent.object === node || t().isAwaitExpression(parent)) { + return true; + } + + if (t().isBinary(parent)) { + const parentOp = parent.operator; + const parentPos = PRECEDENCE[parentOp]; + const nodeOp = node.operator; + const nodePos = PRECEDENCE[nodeOp]; + + if (parentPos === nodePos && parent.right === node && !t().isLogicalExpression(parent) || parentPos > nodePos) { + return true; + } + } + + return false; +} + +function UnionTypeAnnotation(node, parent) { + return t().isArrayTypeAnnotation(parent) || t().isNullableTypeAnnotation(parent) || t().isIntersectionTypeAnnotation(parent) || t().isUnionTypeAnnotation(parent); +} + +function TSAsExpression() { + return true; +} + +function TSTypeAssertion() { + return true; +} + +function TSUnionType(node, parent) { + return t().isTSArrayType(parent) || t().isTSOptionalType(parent) || t().isTSIntersectionType(parent) || t().isTSUnionType(parent) || t().isTSRestType(parent); +} + +function BinaryExpression(node, parent) { + return node.operator === "in" && (t().isVariableDeclarator(parent) || t().isFor(parent)); +} + +function SequenceExpression(node, parent) { + if (t().isForStatement(parent) || t().isThrowStatement(parent) || t().isReturnStatement(parent) || t().isIfStatement(parent) && parent.test === node || t().isWhileStatement(parent) && parent.test === node || t().isForInStatement(parent) && parent.right === node || t().isSwitchStatement(parent) && parent.discriminant === node || t().isExpressionStatement(parent) && parent.expression === node) { + return false; + } + + return true; +} + +function YieldExpression(node, parent) { + return t().isBinary(parent) || t().isUnaryLike(parent) || t().isCallExpression(parent) || t().isMemberExpression(parent) || t().isNewExpression(parent) || t().isAwaitExpression(parent) && t().isYieldExpression(node) || t().isConditionalExpression(parent) && node === parent.test || isClassExtendsClause(node, parent); +} + +function ClassExpression(node, parent, printStack) { + return isFirstInStatement(printStack, { + considerDefaultExports: true + }); +} + +function UnaryLike(node, parent) { + return t().isMemberExpression(parent, { + object: node + }) || t().isCallExpression(parent, { + callee: node + }) || t().isNewExpression(parent, { + callee: node + }) || t().isBinaryExpression(parent, { + operator: "**", + left: node + }) || isClassExtendsClause(node, parent); +} + +function FunctionExpression(node, parent, printStack) { + return isFirstInStatement(printStack, { + considerDefaultExports: true + }); +} + +function ArrowFunctionExpression(node, parent) { + return t().isExportDeclaration(parent) || ConditionalExpression(node, parent); +} + +function ConditionalExpression(node, parent) { + if (t().isUnaryLike(parent) || t().isBinary(parent) || t().isConditionalExpression(parent, { + test: node + }) || t().isAwaitExpression(parent) || t().isOptionalMemberExpression(parent) || t().isTaggedTemplateExpression(parent) || t().isTSTypeAssertion(parent) || t().isTSAsExpression(parent)) { + return true; + } + + return UnaryLike(node, parent); +} + +function OptionalMemberExpression(node, parent) { + return t().isCallExpression(parent) || t().isMemberExpression(parent); +} + +function AssignmentExpression(node) { + if (t().isObjectPattern(node.left)) { + return true; + } else { + return ConditionalExpression(...arguments); + } +} + +function NewExpression(node, parent) { + return isClassExtendsClause(node, parent); +} + +function isFirstInStatement(printStack, { + considerArrow = false, + considerDefaultExports = false +} = {}) { + let i = printStack.length - 1; + let node = printStack[i]; + i--; + let parent = printStack[i]; + + while (i > 0) { + if (t().isExpressionStatement(parent, { + expression: node + }) || t().isTaggedTemplateExpression(parent) || considerDefaultExports && t().isExportDefaultDeclaration(parent, { + declaration: node + }) || considerArrow && t().isArrowFunctionExpression(parent, { + body: node + })) { + return true; + } + + if (t().isCallExpression(parent, { + callee: node + }) || t().isSequenceExpression(parent) && parent.expressions[0] === node || t().isMemberExpression(parent, { + object: node + }) || t().isConditional(parent, { + test: node + }) || t().isBinary(parent, { + left: node + }) || t().isAssignmentExpression(parent, { + left: node + })) { + node = parent; + i--; + parent = printStack[i]; + } else { + return false; + } + } + + return false; +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/node/whitespace.js b/node_modules/@babel/generator/lib/node/whitespace.js new file mode 100644 index 0000000..0612186 --- /dev/null +++ b/node_modules/@babel/generator/lib/node/whitespace.js @@ -0,0 +1,192 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.list = exports.nodes = void 0; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function crawl(node, state = {}) { + if (t().isMemberExpression(node)) { + crawl(node.object, state); + if (node.computed) crawl(node.property, state); + } else if (t().isBinary(node) || t().isAssignmentExpression(node)) { + crawl(node.left, state); + crawl(node.right, state); + } else if (t().isCallExpression(node)) { + state.hasCall = true; + crawl(node.callee, state); + } else if (t().isFunction(node)) { + state.hasFunction = true; + } else if (t().isIdentifier(node)) { + state.hasHelper = state.hasHelper || isHelper(node.callee); + } + + return state; +} + +function isHelper(node) { + if (t().isMemberExpression(node)) { + return isHelper(node.object) || isHelper(node.property); + } else if (t().isIdentifier(node)) { + return node.name === "require" || node.name[0] === "_"; + } else if (t().isCallExpression(node)) { + return isHelper(node.callee); + } else if (t().isBinary(node) || t().isAssignmentExpression(node)) { + return t().isIdentifier(node.left) && isHelper(node.left) || isHelper(node.right); + } else { + return false; + } +} + +function isType(node) { + return t().isLiteral(node) || t().isObjectExpression(node) || t().isArrayExpression(node) || t().isIdentifier(node) || t().isMemberExpression(node); +} + +const nodes = { + AssignmentExpression(node) { + const state = crawl(node.right); + + if (state.hasCall && state.hasHelper || state.hasFunction) { + return { + before: state.hasFunction, + after: true + }; + } + }, + + SwitchCase(node, parent) { + return { + before: node.consequent.length || parent.cases[0] === node, + after: !node.consequent.length && parent.cases[parent.cases.length - 1] === node + }; + }, + + LogicalExpression(node) { + if (t().isFunction(node.left) || t().isFunction(node.right)) { + return { + after: true + }; + } + }, + + Literal(node) { + if (node.value === "use strict") { + return { + after: true + }; + } + }, + + CallExpression(node) { + if (t().isFunction(node.callee) || isHelper(node)) { + return { + before: true, + after: true + }; + } + }, + + VariableDeclaration(node) { + for (let i = 0; i < node.declarations.length; i++) { + const declar = node.declarations[i]; + let enabled = isHelper(declar.id) && !isType(declar.init); + + if (!enabled) { + const state = crawl(declar.init); + enabled = isHelper(declar.init) && state.hasCall || state.hasFunction; + } + + if (enabled) { + return { + before: true, + after: true + }; + } + } + }, + + IfStatement(node) { + if (t().isBlockStatement(node.consequent)) { + return { + before: true, + after: true + }; + } + } + +}; +exports.nodes = nodes; + +nodes.ObjectProperty = nodes.ObjectTypeProperty = nodes.ObjectMethod = function (node, parent) { + if (parent.properties[0] === node) { + return { + before: true + }; + } +}; + +nodes.ObjectTypeCallProperty = function (node, parent) { + if (parent.callProperties[0] === node && (!parent.properties || !parent.properties.length)) { + return { + before: true + }; + } +}; + +nodes.ObjectTypeIndexer = function (node, parent) { + if (parent.indexers[0] === node && (!parent.properties || !parent.properties.length) && (!parent.callProperties || !parent.callProperties.length)) { + return { + before: true + }; + } +}; + +nodes.ObjectTypeInternalSlot = function (node, parent) { + if (parent.internalSlots[0] === node && (!parent.properties || !parent.properties.length) && (!parent.callProperties || !parent.callProperties.length) && (!parent.indexers || !parent.indexers.length)) { + return { + before: true + }; + } +}; + +const list = { + VariableDeclaration(node) { + return node.declarations.map(decl => decl.init); + }, + + ArrayExpression(node) { + return node.elements; + }, + + ObjectExpression(node) { + return node.properties; + } + +}; +exports.list = list; +[["Function", true], ["Class", true], ["Loop", true], ["LabeledStatement", true], ["SwitchStatement", true], ["TryStatement", true]].forEach(function ([type, amounts]) { + if (typeof amounts === "boolean") { + amounts = { + after: amounts, + before: amounts + }; + } + + [type].concat(t().FLIPPED_ALIAS_KEYS[type] || []).forEach(function (type) { + nodes[type] = function () { + return amounts; + }; + }); +}); \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/printer.js b/node_modules/@babel/generator/lib/printer.js new file mode 100644 index 0000000..9458169 --- /dev/null +++ b/node_modules/@babel/generator/lib/printer.js @@ -0,0 +1,501 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +function _isInteger() { + const data = _interopRequireDefault(require("lodash/isInteger")); + + _isInteger = function () { + return data; + }; + + return data; +} + +function _repeat() { + const data = _interopRequireDefault(require("lodash/repeat")); + + _repeat = function () { + return data; + }; + + return data; +} + +var _buffer = _interopRequireDefault(require("./buffer")); + +var n = _interopRequireWildcard(require("./node")); + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +var generatorFunctions = _interopRequireWildcard(require("./generators")); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const SCIENTIFIC_NOTATION = /e/i; +const ZERO_DECIMAL_INTEGER = /\.0+$/; +const NON_DECIMAL_LITERAL = /^0[box]/; + +class Printer { + constructor(format, map) { + this.inForStatementInitCounter = 0; + this._printStack = []; + this._indent = 0; + this._insideAux = false; + this._printedCommentStarts = {}; + this._parenPushNewlineState = null; + this._noLineTerminator = false; + this._printAuxAfterOnNextUserNode = false; + this._printedComments = new WeakSet(); + this._endsWithInteger = false; + this._endsWithWord = false; + this.format = format || {}; + this._buf = new _buffer.default(map); + } + + generate(ast) { + this.print(ast); + + this._maybeAddAuxComment(); + + return this._buf.get(); + } + + indent() { + if (this.format.compact || this.format.concise) return; + this._indent++; + } + + dedent() { + if (this.format.compact || this.format.concise) return; + this._indent--; + } + + semicolon(force = false) { + this._maybeAddAuxComment(); + + this._append(";", !force); + } + + rightBrace() { + if (this.format.minified) { + this._buf.removeLastSemicolon(); + } + + this.token("}"); + } + + space(force = false) { + if (this.format.compact) return; + + if (this._buf.hasContent() && !this.endsWith(" ") && !this.endsWith("\n") || force) { + this._space(); + } + } + + word(str) { + if (this._endsWithWord || this.endsWith("/") && str.indexOf("/") === 0) { + this._space(); + } + + this._maybeAddAuxComment(); + + this._append(str); + + this._endsWithWord = true; + } + + number(str) { + this.word(str); + this._endsWithInteger = (0, _isInteger().default)(+str) && !NON_DECIMAL_LITERAL.test(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str[str.length - 1] !== "."; + } + + token(str) { + if (str === "--" && this.endsWith("!") || str[0] === "+" && this.endsWith("+") || str[0] === "-" && this.endsWith("-") || str[0] === "." && this._endsWithInteger) { + this._space(); + } + + this._maybeAddAuxComment(); + + this._append(str); + } + + newline(i) { + if (this.format.retainLines || this.format.compact) return; + + if (this.format.concise) { + this.space(); + return; + } + + if (this.endsWith("\n\n")) return; + if (typeof i !== "number") i = 1; + i = Math.min(2, i); + if (this.endsWith("{\n") || this.endsWith(":\n")) i--; + if (i <= 0) return; + + for (let j = 0; j < i; j++) { + this._newline(); + } + } + + endsWith(str) { + return this._buf.endsWith(str); + } + + removeTrailingNewline() { + this._buf.removeTrailingNewline(); + } + + exactSource(loc, cb) { + this._catchUp("start", loc); + + this._buf.exactSource(loc, cb); + } + + source(prop, loc) { + this._catchUp(prop, loc); + + this._buf.source(prop, loc); + } + + withSource(prop, loc, cb) { + this._catchUp(prop, loc); + + this._buf.withSource(prop, loc, cb); + } + + _space() { + this._append(" ", true); + } + + _newline() { + this._append("\n", true); + } + + _append(str, queue = false) { + this._maybeAddParen(str); + + this._maybeIndent(str); + + if (queue) this._buf.queue(str);else this._buf.append(str); + this._endsWithWord = false; + this._endsWithInteger = false; + } + + _maybeIndent(str) { + if (this._indent && this.endsWith("\n") && str[0] !== "\n") { + this._buf.queue(this._getIndent()); + } + } + + _maybeAddParen(str) { + const parenPushNewlineState = this._parenPushNewlineState; + if (!parenPushNewlineState) return; + this._parenPushNewlineState = null; + let i; + + for (i = 0; i < str.length && str[i] === " "; i++) continue; + + if (i === str.length) return; + const cha = str[i]; + + if (cha !== "\n") { + if (cha !== "/") return; + if (i + 1 === str.length) return; + const chaPost = str[i + 1]; + if (chaPost !== "/" && chaPost !== "*") return; + } + + this.token("("); + this.indent(); + parenPushNewlineState.printed = true; + } + + _catchUp(prop, loc) { + if (!this.format.retainLines) return; + const pos = loc ? loc[prop] : null; + + if (pos && pos.line !== null) { + const count = pos.line - this._buf.getCurrentLine(); + + for (let i = 0; i < count; i++) { + this._newline(); + } + } + } + + _getIndent() { + return (0, _repeat().default)(this.format.indent.style, this._indent); + } + + startTerminatorless(isLabel = false) { + if (isLabel) { + this._noLineTerminator = true; + return null; + } else { + return this._parenPushNewlineState = { + printed: false + }; + } + } + + endTerminatorless(state) { + this._noLineTerminator = false; + + if (state && state.printed) { + this.dedent(); + this.newline(); + this.token(")"); + } + } + + print(node, parent) { + if (!node) return; + const oldConcise = this.format.concise; + + if (node._compact) { + this.format.concise = true; + } + + const printMethod = this[node.type]; + + if (!printMethod) { + throw new ReferenceError(`unknown node of type ${JSON.stringify(node.type)} with constructor ${JSON.stringify(node && node.constructor.name)}`); + } + + this._printStack.push(node); + + const oldInAux = this._insideAux; + this._insideAux = !node.loc; + + this._maybeAddAuxComment(this._insideAux && !oldInAux); + + let needsParens = n.needsParens(node, parent, this._printStack); + + if (this.format.retainFunctionParens && node.type === "FunctionExpression" && node.extra && node.extra.parenthesized) { + needsParens = true; + } + + if (needsParens) this.token("("); + + this._printLeadingComments(node); + + const loc = t().isProgram(node) || t().isFile(node) ? null : node.loc; + this.withSource("start", loc, () => { + printMethod.call(this, node, parent); + }); + + this._printTrailingComments(node); + + if (needsParens) this.token(")"); + + this._printStack.pop(); + + this.format.concise = oldConcise; + this._insideAux = oldInAux; + } + + _maybeAddAuxComment(enteredPositionlessNode) { + if (enteredPositionlessNode) this._printAuxBeforeComment(); + if (!this._insideAux) this._printAuxAfterComment(); + } + + _printAuxBeforeComment() { + if (this._printAuxAfterOnNextUserNode) return; + this._printAuxAfterOnNextUserNode = true; + const comment = this.format.auxiliaryCommentBefore; + + if (comment) { + this._printComment({ + type: "CommentBlock", + value: comment + }); + } + } + + _printAuxAfterComment() { + if (!this._printAuxAfterOnNextUserNode) return; + this._printAuxAfterOnNextUserNode = false; + const comment = this.format.auxiliaryCommentAfter; + + if (comment) { + this._printComment({ + type: "CommentBlock", + value: comment + }); + } + } + + getPossibleRaw(node) { + const extra = node.extra; + + if (extra && extra.raw != null && extra.rawValue != null && node.value === extra.rawValue) { + return extra.raw; + } + } + + printJoin(nodes, parent, opts = {}) { + if (!nodes || !nodes.length) return; + if (opts.indent) this.indent(); + const newlineOpts = { + addNewlines: opts.addNewlines + }; + + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (!node) continue; + if (opts.statement) this._printNewline(true, node, parent, newlineOpts); + this.print(node, parent); + + if (opts.iterator) { + opts.iterator(node, i); + } + + if (opts.separator && i < nodes.length - 1) { + opts.separator.call(this); + } + + if (opts.statement) this._printNewline(false, node, parent, newlineOpts); + } + + if (opts.indent) this.dedent(); + } + + printAndIndentOnComments(node, parent) { + const indent = node.leadingComments && node.leadingComments.length > 0; + if (indent) this.indent(); + this.print(node, parent); + if (indent) this.dedent(); + } + + printBlock(parent) { + const node = parent.body; + + if (!t().isEmptyStatement(node)) { + this.space(); + } + + this.print(node, parent); + } + + _printTrailingComments(node) { + this._printComments(this._getComments(false, node)); + } + + _printLeadingComments(node) { + this._printComments(this._getComments(true, node)); + } + + printInnerComments(node, indent = true) { + if (!node.innerComments || !node.innerComments.length) return; + if (indent) this.indent(); + + this._printComments(node.innerComments); + + if (indent) this.dedent(); + } + + printSequence(nodes, parent, opts = {}) { + opts.statement = true; + return this.printJoin(nodes, parent, opts); + } + + printList(items, parent, opts = {}) { + if (opts.separator == null) { + opts.separator = commaSeparator; + } + + return this.printJoin(items, parent, opts); + } + + _printNewline(leading, node, parent, opts) { + if (this.format.retainLines || this.format.compact) return; + + if (this.format.concise) { + this.space(); + return; + } + + let lines = 0; + + if (this._buf.hasContent()) { + if (!leading) lines++; + if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0; + const needs = leading ? n.needsWhitespaceBefore : n.needsWhitespaceAfter; + if (needs(node, parent)) lines++; + } + + this.newline(lines); + } + + _getComments(leading, node) { + return node && (leading ? node.leadingComments : node.trailingComments) || []; + } + + _printComment(comment) { + if (!this.format.shouldPrintComment(comment.value)) return; + if (comment.ignore) return; + if (this._printedComments.has(comment)) return; + + this._printedComments.add(comment); + + if (comment.start != null) { + if (this._printedCommentStarts[comment.start]) return; + this._printedCommentStarts[comment.start] = true; + } + + const isBlockComment = comment.type === "CommentBlock"; + this.newline(this._buf.hasContent() && !this._noLineTerminator && isBlockComment ? 1 : 0); + if (!this.endsWith("[") && !this.endsWith("{")) this.space(); + let val = !isBlockComment && !this._noLineTerminator ? `//${comment.value}\n` : `/*${comment.value}*/`; + + if (isBlockComment && this.format.indent.adjustMultilineComment) { + const offset = comment.loc && comment.loc.start.column; + + if (offset) { + const newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); + val = val.replace(newlineRegex, "\n"); + } + + const indentSize = Math.max(this._getIndent().length, this._buf.getCurrentColumn()); + val = val.replace(/\n(?!$)/g, `\n${(0, _repeat().default)(" ", indentSize)}`); + } + + if (this.endsWith("/")) this._space(); + this.withSource("start", comment.loc, () => { + this._append(val); + }); + this.newline(isBlockComment && !this._noLineTerminator ? 1 : 0); + } + + _printComments(comments) { + if (!comments || !comments.length) return; + + for (const comment of comments) { + this._printComment(comment); + } + } + +} + +exports.default = Printer; +Object.assign(Printer.prototype, generatorFunctions); + +function commaSeparator() { + this.token(","); + this.space(); +} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/source-map.js b/node_modules/@babel/generator/lib/source-map.js new file mode 100644 index 0000000..12b7030 --- /dev/null +++ b/node_modules/@babel/generator/lib/source-map.js @@ -0,0 +1,81 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +function _sourceMap() { + const data = _interopRequireDefault(require("source-map")); + + _sourceMap = function () { + return data; + }; + + return data; +} + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +class SourceMap { + constructor(opts, code) { + this._cachedMap = null; + this._code = code; + this._opts = opts; + this._rawMappings = []; + } + + get() { + if (!this._cachedMap) { + const map = this._cachedMap = new (_sourceMap().default.SourceMapGenerator)({ + sourceRoot: this._opts.sourceRoot + }); + const code = this._code; + + if (typeof code === "string") { + map.setSourceContent(this._opts.sourceFileName, code); + } else if (typeof code === "object") { + Object.keys(code).forEach(sourceFileName => { + map.setSourceContent(sourceFileName, code[sourceFileName]); + }); + } + + this._rawMappings.forEach(map.addMapping, map); + } + + return this._cachedMap.toJSON(); + } + + getRawMappings() { + return this._rawMappings.slice(); + } + + mark(generatedLine, generatedColumn, line, column, identifierName, filename, force) { + if (this._lastGenLine !== generatedLine && line === null) return; + + if (!force && this._lastGenLine === generatedLine && this._lastSourceLine === line && this._lastSourceColumn === column) { + return; + } + + this._cachedMap = null; + this._lastGenLine = generatedLine; + this._lastSourceLine = line; + this._lastSourceColumn = column; + + this._rawMappings.push({ + name: identifierName || undefined, + generated: { + line: generatedLine, + column: generatedColumn + }, + source: line == null ? undefined : filename || this._opts.sourceFileName, + original: line == null ? undefined : { + line: line, + column: column + } + }); + } + +} + +exports.default = SourceMap; \ No newline at end of file diff --git a/node_modules/@babel/generator/package.json b/node_modules/@babel/generator/package.json new file mode 100644 index 0000000..baeee3c --- /dev/null +++ b/node_modules/@babel/generator/package.json @@ -0,0 +1,60 @@ +{ + "_from": "@babel/generator@^7.4.0", + "_id": "@babel/generator@7.4.0", + "_inBundle": false, + "_integrity": "sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==", + "_location": "/@babel/generator", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@babel/generator@^7.4.0", + "name": "@babel/generator", + "escapedName": "@babel%2fgenerator", + "scope": "@babel", + "rawSpec": "^7.4.0", + "saveSpec": null, + "fetchSpec": "^7.4.0" + }, + "_requiredBy": [ + "/@babel/traverse" + ], + "_resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.0.tgz", + "_shasum": "c230e79589ae7a729fd4631b9ded4dc220418196", + "_spec": "@babel/generator@^7.4.0", + "_where": "P:\\Git\\SitecoreSourceBlog\\node_modules\\@babel\\traverse", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "bundleDependencies": false, + "dependencies": { + "@babel/types": "^7.4.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "deprecated": false, + "description": "Turns an AST into code.", + "devDependencies": { + "@babel/helper-fixtures": "^7.2.0", + "@babel/parser": "^7.4.0" + }, + "files": [ + "lib" + ], + "gitHead": "f1328fb913b5a93d54dfc6e3728b1f56c8f4a804", + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/generator", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-generator" + }, + "version": "7.4.0" +} diff --git a/node_modules/@babel/helper-function-name/LICENSE b/node_modules/@babel/helper-function-name/LICENSE new file mode 100644 index 0000000..a06ec0e --- /dev/null +++ b/node_modules/@babel/helper-function-name/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-2018 Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/helper-function-name/README.md b/node_modules/@babel/helper-function-name/README.md new file mode 100644 index 0000000..a8a6809 --- /dev/null +++ b/node_modules/@babel/helper-function-name/README.md @@ -0,0 +1,19 @@ +# @babel/helper-function-name + +> Helper function to change the property 'name' of every function + +See our website [@babel/helper-function-name](https://babeljs.io/docs/en/next/babel-helper-function-name.html) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/helper-function-name +``` + +or using yarn: + +```sh +yarn add @babel/helper-function-name --dev +``` diff --git a/node_modules/@babel/helper-function-name/lib/index.js b/node_modules/@babel/helper-function-name/lib/index.js new file mode 100644 index 0000000..c6dd4af --- /dev/null +++ b/node_modules/@babel/helper-function-name/lib/index.js @@ -0,0 +1,198 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; + +function _helperGetFunctionArity() { + const data = _interopRequireDefault(require("@babel/helper-get-function-arity")); + + _helperGetFunctionArity = function () { + return data; + }; + + return data; +} + +function _template() { + const data = _interopRequireDefault(require("@babel/template")); + + _template = function () { + return data; + }; + + return data; +} + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const buildPropertyMethodAssignmentWrapper = (0, _template().default)(` + (function (FUNCTION_KEY) { + function FUNCTION_ID() { + return FUNCTION_KEY.apply(this, arguments); + } + + FUNCTION_ID.toString = function () { + return FUNCTION_KEY.toString(); + } + + return FUNCTION_ID; + })(FUNCTION) +`); +const buildGeneratorPropertyMethodAssignmentWrapper = (0, _template().default)(` + (function (FUNCTION_KEY) { + function* FUNCTION_ID() { + return yield* FUNCTION_KEY.apply(this, arguments); + } + + FUNCTION_ID.toString = function () { + return FUNCTION_KEY.toString(); + }; + + return FUNCTION_ID; + })(FUNCTION) +`); +const visitor = { + "ReferencedIdentifier|BindingIdentifier"(path, state) { + if (path.node.name !== state.name) return; + const localDeclar = path.scope.getBindingIdentifier(state.name); + if (localDeclar !== state.outerDeclar) return; + state.selfReference = true; + path.stop(); + } + +}; + +function getNameFromLiteralId(id) { + if (t().isNullLiteral(id)) { + return "null"; + } + + if (t().isRegExpLiteral(id)) { + return `_${id.pattern}_${id.flags}`; + } + + if (t().isTemplateLiteral(id)) { + return id.quasis.map(quasi => quasi.value.raw).join(""); + } + + if (id.value !== undefined) { + return id.value + ""; + } + + return ""; +} + +function wrap(state, method, id, scope) { + if (state.selfReference) { + if (scope.hasBinding(id.name) && !scope.hasGlobal(id.name)) { + scope.rename(id.name); + } else { + if (!t().isFunction(method)) return; + let build = buildPropertyMethodAssignmentWrapper; + + if (method.generator) { + build = buildGeneratorPropertyMethodAssignmentWrapper; + } + + const template = build({ + FUNCTION: method, + FUNCTION_ID: id, + FUNCTION_KEY: scope.generateUidIdentifier(id.name) + }).expression; + const params = template.callee.body.body[0].params; + + for (let i = 0, len = (0, _helperGetFunctionArity().default)(method); i < len; i++) { + params.push(scope.generateUidIdentifier("x")); + } + + return template; + } + } + + method.id = id; + scope.getProgramParent().references[id.name] = true; +} + +function visit(node, name, scope) { + const state = { + selfAssignment: false, + selfReference: false, + outerDeclar: scope.getBindingIdentifier(name), + references: [], + name: name + }; + const binding = scope.getOwnBinding(name); + + if (binding) { + if (binding.kind === "param") { + state.selfReference = true; + } else {} + } else if (state.outerDeclar || scope.hasGlobal(name)) { + scope.traverse(node, visitor, state); + } + + return state; +} + +function _default({ + node, + parent, + scope, + id +}, localBinding = false) { + if (node.id) return; + + if ((t().isObjectProperty(parent) || t().isObjectMethod(parent, { + kind: "method" + })) && (!parent.computed || t().isLiteral(parent.key))) { + id = parent.key; + } else if (t().isVariableDeclarator(parent)) { + id = parent.id; + + if (t().isIdentifier(id) && !localBinding) { + const binding = scope.parent.getBinding(id.name); + + if (binding && binding.constant && scope.getBinding(id.name) === binding) { + node.id = t().cloneNode(id); + node.id[t().NOT_LOCAL_BINDING] = true; + return; + } + } + } else if (t().isAssignmentExpression(parent)) { + id = parent.left; + } else if (!id) { + return; + } + + let name; + + if (id && t().isLiteral(id)) { + name = getNameFromLiteralId(id); + } else if (id && t().isIdentifier(id)) { + name = id.name; + } + + if (name === undefined) { + return; + } + + name = t().toBindingIdentifierName(name); + id = t().identifier(name); + id[t().NOT_LOCAL_BINDING] = true; + const state = visit(node, name, scope); + return wrap(state, node, id, scope) || node; +} \ No newline at end of file diff --git a/node_modules/@babel/helper-function-name/package.json b/node_modules/@babel/helper-function-name/package.json new file mode 100644 index 0000000..c320350 --- /dev/null +++ b/node_modules/@babel/helper-function-name/package.json @@ -0,0 +1,45 @@ +{ + "_from": "@babel/helper-function-name@^7.1.0", + "_id": "@babel/helper-function-name@7.1.0", + "_inBundle": false, + "_integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "_location": "/@babel/helper-function-name", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@babel/helper-function-name@^7.1.0", + "name": "@babel/helper-function-name", + "escapedName": "@babel%2fhelper-function-name", + "scope": "@babel", + "rawSpec": "^7.1.0", + "saveSpec": null, + "fetchSpec": "^7.1.0" + }, + "_requiredBy": [ + "/@babel/traverse" + ], + "_resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "_shasum": "a0ceb01685f73355d4360c1247f582bfafc8ff53", + "_spec": "@babel/helper-function-name@^7.1.0", + "_where": "P:\\Git\\SitecoreSourceBlog\\node_modules\\@babel\\traverse", + "bundleDependencies": false, + "dependencies": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + }, + "deprecated": false, + "description": "Helper function to change the property 'name' of every function", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/helper-function-name", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-function-name" + }, + "version": "7.1.0" +} diff --git a/node_modules/@babel/helper-get-function-arity/LICENSE b/node_modules/@babel/helper-get-function-arity/LICENSE new file mode 100644 index 0000000..620366e --- /dev/null +++ b/node_modules/@babel/helper-get-function-arity/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-2018 Sebastian McKenzie + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/helper-get-function-arity/README.md b/node_modules/@babel/helper-get-function-arity/README.md new file mode 100644 index 0000000..1de8084 --- /dev/null +++ b/node_modules/@babel/helper-get-function-arity/README.md @@ -0,0 +1,19 @@ +# @babel/helper-get-function-arity + +> Helper function to get function arity + +See our website [@babel/helper-get-function-arity](https://babeljs.io/docs/en/next/babel-helper-get-function-arity.html) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/helper-get-function-arity +``` + +or using yarn: + +```sh +yarn add @babel/helper-get-function-arity --dev +``` diff --git a/node_modules/@babel/helper-get-function-arity/lib/index.js b/node_modules/@babel/helper-get-function-arity/lib/index.js new file mode 100644 index 0000000..5723401 --- /dev/null +++ b/node_modules/@babel/helper-get-function-arity/lib/index.js @@ -0,0 +1,32 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function _default(node) { + const params = node.params; + + for (let i = 0; i < params.length; i++) { + const param = params[i]; + + if (t().isAssignmentPattern(param) || t().isRestElement(param)) { + return i; + } + } + + return params.length; +} \ No newline at end of file diff --git a/node_modules/@babel/helper-get-function-arity/package.json b/node_modules/@babel/helper-get-function-arity/package.json new file mode 100644 index 0000000..272c5c5 --- /dev/null +++ b/node_modules/@babel/helper-get-function-arity/package.json @@ -0,0 +1,40 @@ +{ + "_from": "@babel/helper-get-function-arity@^7.0.0", + "_id": "@babel/helper-get-function-arity@7.0.0", + "_inBundle": false, + "_integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "_location": "/@babel/helper-get-function-arity", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@babel/helper-get-function-arity@^7.0.0", + "name": "@babel/helper-get-function-arity", + "escapedName": "@babel%2fhelper-get-function-arity", + "scope": "@babel", + "rawSpec": "^7.0.0", + "saveSpec": null, + "fetchSpec": "^7.0.0" + }, + "_requiredBy": [ + "/@babel/helper-function-name" + ], + "_resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "_shasum": "83572d4320e2a4657263734113c42868b64e49c3", + "_spec": "@babel/helper-get-function-arity@^7.0.0", + "_where": "P:\\Git\\SitecoreSourceBlog\\node_modules\\@babel\\helper-function-name", + "bundleDependencies": false, + "dependencies": { + "@babel/types": "^7.0.0" + }, + "deprecated": false, + "description": "Helper function to get function arity", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/helper-get-function-arity", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-get-function-arity" + }, + "version": "7.0.0" +} diff --git a/node_modules/@babel/helper-split-export-declaration/LICENSE b/node_modules/@babel/helper-split-export-declaration/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/helper-split-export-declaration/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/helper-split-export-declaration/README.md b/node_modules/@babel/helper-split-export-declaration/README.md new file mode 100644 index 0000000..d241fee --- /dev/null +++ b/node_modules/@babel/helper-split-export-declaration/README.md @@ -0,0 +1,19 @@ +# @babel/helper-split-export-declaration + +> + +See our website [@babel/helper-split-export-declaration](https://babeljs.io/docs/en/next/babel-helper-split-export-declaration.html) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/helper-split-export-declaration +``` + +or using yarn: + +```sh +yarn add @babel/helper-split-export-declaration --dev +``` diff --git a/node_modules/@babel/helper-split-export-declaration/lib/index.js b/node_modules/@babel/helper-split-export-declaration/lib/index.js new file mode 100644 index 0000000..ddb34bc --- /dev/null +++ b/node_modules/@babel/helper-split-export-declaration/lib/index.js @@ -0,0 +1,68 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = splitExportDeclaration; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function () { + return data; + }; + + return data; +} + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function splitExportDeclaration(exportDeclaration) { + if (!exportDeclaration.isExportDeclaration()) { + throw new Error("Only export declarations can be splitted."); + } + + const isDefault = exportDeclaration.isExportDefaultDeclaration(); + const declaration = exportDeclaration.get("declaration"); + const isClassDeclaration = declaration.isClassDeclaration(); + + if (isDefault) { + const standaloneDeclaration = declaration.isFunctionDeclaration() || isClassDeclaration; + const scope = declaration.isScope() ? declaration.scope.parent : declaration.scope; + let id = declaration.node.id; + let needBindingRegistration = false; + + if (!id) { + needBindingRegistration = true; + id = scope.generateUidIdentifier("default"); + + if (standaloneDeclaration || declaration.isFunctionExpression() || declaration.isClassExpression()) { + declaration.node.id = t().cloneNode(id); + } + } + + const updatedDeclaration = standaloneDeclaration ? declaration : t().variableDeclaration("var", [t().variableDeclarator(t().cloneNode(id), declaration.node)]); + const updatedExportDeclaration = t().exportNamedDeclaration(null, [t().exportSpecifier(t().cloneNode(id), t().identifier("default"))]); + exportDeclaration.insertAfter(updatedExportDeclaration); + exportDeclaration.replaceWith(updatedDeclaration); + + if (needBindingRegistration) { + scope.registerDeclaration(exportDeclaration); + } + + return exportDeclaration; + } + + if (exportDeclaration.get("specifiers").length > 0) { + throw new Error("It doesn't make sense to split exported specifiers."); + } + + const bindingIdentifiers = declaration.getOuterBindingIdentifiers(); + const specifiers = Object.keys(bindingIdentifiers).map(name => { + return t().exportSpecifier(t().identifier(name), t().identifier(name)); + }); + const aliasDeclar = t().exportNamedDeclaration(null, specifiers); + exportDeclaration.insertAfter(aliasDeclar); + exportDeclaration.replaceWith(declaration.node); + return exportDeclaration; +} \ No newline at end of file diff --git a/node_modules/@babel/helper-split-export-declaration/package.json b/node_modules/@babel/helper-split-export-declaration/package.json new file mode 100644 index 0000000..b505d8e --- /dev/null +++ b/node_modules/@babel/helper-split-export-declaration/package.json @@ -0,0 +1,44 @@ +{ + "_from": "@babel/helper-split-export-declaration@^7.4.0", + "_id": "@babel/helper-split-export-declaration@7.4.0", + "_inBundle": false, + "_integrity": "sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==", + "_location": "/@babel/helper-split-export-declaration", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@babel/helper-split-export-declaration@^7.4.0", + "name": "@babel/helper-split-export-declaration", + "escapedName": "@babel%2fhelper-split-export-declaration", + "scope": "@babel", + "rawSpec": "^7.4.0", + "saveSpec": null, + "fetchSpec": "^7.4.0" + }, + "_requiredBy": [ + "/@babel/traverse" + ], + "_resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz", + "_shasum": "571bfd52701f492920d63b7f735030e9a3e10b55", + "_spec": "@babel/helper-split-export-declaration@^7.4.0", + "_where": "P:\\Git\\SitecoreSourceBlog\\node_modules\\@babel\\traverse", + "bundleDependencies": false, + "dependencies": { + "@babel/types": "^7.4.0" + }, + "deprecated": false, + "description": ">", + "gitHead": "f1328fb913b5a93d54dfc6e3728b1f56c8f4a804", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/helper-split-export-declaration", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-split-export-declaration" + }, + "version": "7.4.0" +} diff --git a/node_modules/@babel/highlight/LICENSE b/node_modules/@babel/highlight/LICENSE new file mode 100644 index 0000000..620366e --- /dev/null +++ b/node_modules/@babel/highlight/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-2018 Sebastian McKenzie + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/highlight/README.md b/node_modules/@babel/highlight/README.md new file mode 100644 index 0000000..72dae60 --- /dev/null +++ b/node_modules/@babel/highlight/README.md @@ -0,0 +1,19 @@ +# @babel/highlight + +> Syntax highlight JavaScript strings for output in terminals. + +See our website [@babel/highlight](https://babeljs.io/docs/en/next/babel-highlight.html) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/highlight +``` + +or using yarn: + +```sh +yarn add @babel/highlight --dev +``` diff --git a/node_modules/@babel/highlight/lib/index.js b/node_modules/@babel/highlight/lib/index.js new file mode 100644 index 0000000..6ac5b4a --- /dev/null +++ b/node_modules/@babel/highlight/lib/index.js @@ -0,0 +1,129 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.shouldHighlight = shouldHighlight; +exports.getChalk = getChalk; +exports.default = highlight; + +function _jsTokens() { + const data = _interopRequireWildcard(require("js-tokens")); + + _jsTokens = function () { + return data; + }; + + return data; +} + +function _esutils() { + const data = _interopRequireDefault(require("esutils")); + + _esutils = function () { + return data; + }; + + return data; +} + +function _chalk() { + const data = _interopRequireDefault(require("chalk")); + + _chalk = function () { + return data; + }; + + return data; +} + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +function getDefs(chalk) { + return { + keyword: chalk.cyan, + capitalized: chalk.yellow, + jsx_tag: chalk.yellow, + punctuator: chalk.yellow, + number: chalk.magenta, + string: chalk.green, + regex: chalk.magenta, + comment: chalk.grey, + invalid: chalk.white.bgRed.bold + }; +} + +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; +const JSX_TAG = /^[a-z][\w-]*$/i; +const BRACKET = /^[()[\]{}]$/; + +function getTokenType(match) { + const [offset, text] = match.slice(-2); + const token = (0, _jsTokens().matchToToken)(match); + + if (token.type === "name") { + if (_esutils().default.keyword.isReservedWordES6(token.value)) { + return "keyword"; + } + + if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == " colorize(str)).join("\n"); + } else { + return args[0]; + } + }); +} + +function shouldHighlight(options) { + return _chalk().default.supportsColor || options.forceColor; +} + +function getChalk(options) { + let chalk = _chalk().default; + + if (options.forceColor) { + chalk = new (_chalk().default.constructor)({ + enabled: true, + level: 1 + }); + } + + return chalk; +} + +function highlight(code, options = {}) { + if (shouldHighlight(options)) { + const chalk = getChalk(options); + const defs = getDefs(chalk); + return highlightTokens(defs, code); + } else { + return code; + } +} \ No newline at end of file diff --git a/node_modules/@babel/highlight/node_modules/ansi-styles/index.js b/node_modules/@babel/highlight/node_modules/ansi-styles/index.js new file mode 100644 index 0000000..90a871c --- /dev/null +++ b/node_modules/@babel/highlight/node_modules/ansi-styles/index.js @@ -0,0 +1,165 @@ +'use strict'; +const colorConvert = require('color-convert'); + +const wrapAnsi16 = (fn, offset) => function () { + const code = fn.apply(colorConvert, arguments); + return `\u001B[${code + offset}m`; +}; + +const wrapAnsi256 = (fn, offset) => function () { + const code = fn.apply(colorConvert, arguments); + return `\u001B[${38 + offset};5;${code}m`; +}; + +const wrapAnsi16m = (fn, offset) => function () { + const rgb = fn.apply(colorConvert, arguments); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; +}; + +function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + gray: [90, 39], + + // Bright color + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + + // Fix humans + styles.color.grey = styles.color.gray; + + for (const groupName of Object.keys(styles)) { + const group = styles[groupName]; + + for (const styleName of Object.keys(group)) { + const style = group[styleName]; + + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; + + group[styleName] = styles[styleName]; + + codes.set(style[0], style[1]); + } + + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); + } + + const ansi2ansi = n => n; + const rgb2rgb = (r, g, b) => [r, g, b]; + + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; + + styles.color.ansi = { + ansi: wrapAnsi16(ansi2ansi, 0) + }; + styles.color.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 0) + }; + styles.color.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 0) + }; + + styles.bgColor.ansi = { + ansi: wrapAnsi16(ansi2ansi, 10) + }; + styles.bgColor.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 10) + }; + styles.bgColor.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 10) + }; + + for (let key of Object.keys(colorConvert)) { + if (typeof colorConvert[key] !== 'object') { + continue; + } + + const suite = colorConvert[key]; + + if (key === 'ansi16') { + key = 'ansi'; + } + + if ('ansi16' in suite) { + styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0); + styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10); + } + + if ('ansi256' in suite) { + styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0); + styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10); + } + + if ('rgb' in suite) { + styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0); + styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10); + } + } + + return styles; +} + +// Make the export immutable +Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles +}); diff --git a/node_modules/@babel/highlight/node_modules/ansi-styles/license b/node_modules/@babel/highlight/node_modules/ansi-styles/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/@babel/highlight/node_modules/ansi-styles/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/highlight/node_modules/ansi-styles/package.json b/node_modules/@babel/highlight/node_modules/ansi-styles/package.json new file mode 100644 index 0000000..6b87b04 --- /dev/null +++ b/node_modules/@babel/highlight/node_modules/ansi-styles/package.json @@ -0,0 +1,88 @@ +{ + "_from": "ansi-styles@^3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "_location": "/@babel/highlight/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "ansi-styles@^3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "^3.2.1", + "saveSpec": null, + "fetchSpec": "^3.2.1" + }, + "_requiredBy": [ + "/@babel/highlight/chalk" + ], + "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "_shasum": "41fbb20243e50b12be0f04b8dedbf07520ce841d", + "_spec": "ansi-styles@^3.2.1", + "_where": "P:\\Git\\SitecoreSourceBlog\\node_modules\\@babel\\highlight\\node_modules\\chalk", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "bundleDependencies": false, + "dependencies": { + "color-convert": "^1.9.0" + }, + "deprecated": false, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" +} diff --git a/node_modules/@babel/highlight/node_modules/ansi-styles/readme.md b/node_modules/@babel/highlight/node_modules/ansi-styles/readme.md new file mode 100644 index 0000000..3158e2d --- /dev/null +++ b/node_modules/@babel/highlight/node_modules/ansi-styles/readme.md @@ -0,0 +1,147 @@ +# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) + +> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal + +You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. + + + + +## Install + +``` +$ npm install ansi-styles +``` + + +## Usage + +```js +const style = require('ansi-styles'); + +console.log(`${style.green.open}Hello world!${style.green.close}`); + + +// Color conversion between 16/256/truecolor +// NOTE: If conversion goes to 16 colors or 256 colors, the original color +// may be degraded to fit that color palette. This means terminals +// that do not support 16 million colors will best-match the +// original color. +console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close); +console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close); +console.log(style.color.ansi16m.hex('#ABCDEF') + 'Hello world!' + style.color.close); +``` + +## API + +Each style has an `open` and `close` property. + + +## Styles + +### Modifiers + +- `reset` +- `bold` +- `dim` +- `italic` *(Not widely supported)* +- `underline` +- `inverse` +- `hidden` +- `strikethrough` *(Not widely supported)* + +### Colors + +- `black` +- `red` +- `green` +- `yellow` +- `blue` +- `magenta` +- `cyan` +- `white` +- `gray` ("bright black") +- `redBright` +- `greenBright` +- `yellowBright` +- `blueBright` +- `magentaBright` +- `cyanBright` +- `whiteBright` + +### Background colors + +- `bgBlack` +- `bgRed` +- `bgGreen` +- `bgYellow` +- `bgBlue` +- `bgMagenta` +- `bgCyan` +- `bgWhite` +- `bgBlackBright` +- `bgRedBright` +- `bgGreenBright` +- `bgYellowBright` +- `bgBlueBright` +- `bgMagentaBright` +- `bgCyanBright` +- `bgWhiteBright` + + +## Advanced usage + +By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. + +- `style.modifier` +- `style.color` +- `style.bgColor` + +###### Example + +```js +console.log(style.color.green.open); +``` + +Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values. + +###### Example + +```js +console.log(style.codes.get(36)); +//=> 39 +``` + + +## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728) + +`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors. + +To use these, call the associated conversion function with the intended output, for example: + +```js +style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code +style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code + +style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code +style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code + +style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code +style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code +``` + + +## Related + +- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +## License + +MIT diff --git a/node_modules/@babel/highlight/node_modules/chalk/index.js b/node_modules/@babel/highlight/node_modules/chalk/index.js new file mode 100644 index 0000000..1cc5fa8 --- /dev/null +++ b/node_modules/@babel/highlight/node_modules/chalk/index.js @@ -0,0 +1,228 @@ +'use strict'; +const escapeStringRegexp = require('escape-string-regexp'); +const ansiStyles = require('ansi-styles'); +const stdoutColor = require('supports-color').stdout; + +const template = require('./templates.js'); + +const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); + +// `supportsColor.level` → `ansiStyles.color[name]` mapping +const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; + +// `color-convert` models to exclude from the Chalk API due to conflicts and such +const skipModels = new Set(['gray']); + +const styles = Object.create(null); + +function applyOptions(obj, options) { + options = options || {}; + + // Detect level if not set manually + const scLevel = stdoutColor ? stdoutColor.level : 0; + obj.level = options.level === undefined ? scLevel : options.level; + obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0; +} + +function Chalk(options) { + // We check for this.template here since calling `chalk.constructor()` + // by itself will have a `this` of a previously constructed chalk object + if (!this || !(this instanceof Chalk) || this.template) { + const chalk = {}; + applyOptions(chalk, options); + + chalk.template = function () { + const args = [].slice.call(arguments); + return chalkTag.apply(null, [chalk.template].concat(args)); + }; + + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); + + chalk.template.constructor = Chalk; + + return chalk.template; + } + + applyOptions(this, options); +} + +// Use bright blue on Windows as the normal blue color is illegible +if (isSimpleWindowsTerm) { + ansiStyles.blue.open = '\u001B[94m'; +} + +for (const key of Object.keys(ansiStyles)) { + ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); + + styles[key] = { + get() { + const codes = ansiStyles[key]; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); + } + }; +} + +styles.visible = { + get() { + return build.call(this, this._styles || [], true, 'visible'); + } +}; + +ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g'); +for (const model of Object.keys(ansiStyles.color.ansi)) { + if (skipModels.has(model)) { + continue; + } + + styles[model] = { + get() { + const level = this.level; + return function () { + const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.color.close, + closeRe: ansiStyles.color.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; +} + +ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g'); +for (const model of Object.keys(ansiStyles.bgColor.ansi)) { + if (skipModels.has(model)) { + continue; + } + + const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); + styles[bgModel] = { + get() { + const level = this.level; + return function () { + const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.bgColor.close, + closeRe: ansiStyles.bgColor.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; +} + +const proto = Object.defineProperties(() => {}, styles); + +function build(_styles, _empty, key) { + const builder = function () { + return applyStyle.apply(builder, arguments); + }; + + builder._styles = _styles; + builder._empty = _empty; + + const self = this; + + Object.defineProperty(builder, 'level', { + enumerable: true, + get() { + return self.level; + }, + set(level) { + self.level = level; + } + }); + + Object.defineProperty(builder, 'enabled', { + enumerable: true, + get() { + return self.enabled; + }, + set(enabled) { + self.enabled = enabled; + } + }); + + // See below for fix regarding invisible grey/dim combination on Windows + builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey'; + + // `__proto__` is used because we must return a function, but there is + // no way to create a function with a different prototype + builder.__proto__ = proto; // eslint-disable-line no-proto + + return builder; +} + +function applyStyle() { + // Support varags, but simply cast to string in case there's only one arg + const args = arguments; + const argsLen = args.length; + let str = String(arguments[0]); + + if (argsLen === 0) { + return ''; + } + + if (argsLen > 1) { + // Don't slice `arguments`, it prevents V8 optimizations + for (let a = 1; a < argsLen; a++) { + str += ' ' + args[a]; + } + } + + if (!this.enabled || this.level <= 0 || !str) { + return this._empty ? '' : str; + } + + // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe, + // see https://github.com/chalk/chalk/issues/58 + // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. + const originalDim = ansiStyles.dim.open; + if (isSimpleWindowsTerm && this.hasGrey) { + ansiStyles.dim.open = ''; + } + + for (const code of this._styles.slice().reverse()) { + // Replace any instances already present with a re-opening code + // otherwise only the part of the string until said closing code + // will be colored, and the rest will simply be 'plain'. + str = code.open + str.replace(code.closeRe, code.open) + code.close; + + // Close the styling before a linebreak and reopen + // after next line to fix a bleed issue on macOS + // https://github.com/chalk/chalk/pull/92 + str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); + } + + // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue + ansiStyles.dim.open = originalDim; + + return str; +} + +function chalkTag(chalk, strings) { + if (!Array.isArray(strings)) { + // If chalk() was called by itself or with a string, + // return the string itself as a string. + return [].slice.call(arguments, 1).join(' '); + } + + const args = [].slice.call(arguments, 2); + const parts = [strings.raw[0]]; + + for (let i = 1; i < strings.length; i++) { + parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&')); + parts.push(String(strings.raw[i])); + } + + return template(chalk, parts.join('')); +} + +Object.defineProperties(Chalk.prototype, styles); + +module.exports = Chalk(); // eslint-disable-line new-cap +module.exports.supportsColor = stdoutColor; +module.exports.default = module.exports; // For TypeScript diff --git a/node_modules/@babel/highlight/node_modules/chalk/index.js.flow b/node_modules/@babel/highlight/node_modules/chalk/index.js.flow new file mode 100644 index 0000000..622caaa --- /dev/null +++ b/node_modules/@babel/highlight/node_modules/chalk/index.js.flow @@ -0,0 +1,93 @@ +// @flow strict + +type TemplateStringsArray = $ReadOnlyArray; + +export type Level = $Values<{ + None: 0, + Basic: 1, + Ansi256: 2, + TrueColor: 3 +}>; + +export type ChalkOptions = {| + enabled?: boolean, + level?: Level +|}; + +export type ColorSupport = {| + level: Level, + hasBasic: boolean, + has256: boolean, + has16m: boolean +|}; + +export interface Chalk { + (...text: string[]): string, + (text: TemplateStringsArray, ...placeholders: string[]): string, + constructor(options?: ChalkOptions): Chalk, + enabled: boolean, + level: Level, + rgb(r: number, g: number, b: number): Chalk, + hsl(h: number, s: number, l: number): Chalk, + hsv(h: number, s: number, v: number): Chalk, + hwb(h: number, w: number, b: number): Chalk, + bgHex(color: string): Chalk, + bgKeyword(color: string): Chalk, + bgRgb(r: number, g: number, b: number): Chalk, + bgHsl(h: number, s: number, l: number): Chalk, + bgHsv(h: number, s: number, v: number): Chalk, + bgHwb(h: number, w: number, b: number): Chalk, + hex(color: string): Chalk, + keyword(color: string): Chalk, + + +reset: Chalk, + +bold: Chalk, + +dim: Chalk, + +italic: Chalk, + +underline: Chalk, + +inverse: Chalk, + +hidden: Chalk, + +strikethrough: Chalk, + + +visible: Chalk, + + +black: Chalk, + +red: Chalk, + +green: Chalk, + +yellow: Chalk, + +blue: Chalk, + +magenta: Chalk, + +cyan: Chalk, + +white: Chalk, + +gray: Chalk, + +grey: Chalk, + +blackBright: Chalk, + +redBright: Chalk, + +greenBright: Chalk, + +yellowBright: Chalk, + +blueBright: Chalk, + +magentaBright: Chalk, + +cyanBright: Chalk, + +whiteBright: Chalk, + + +bgBlack: Chalk, + +bgRed: Chalk, + +bgGreen: Chalk, + +bgYellow: Chalk, + +bgBlue: Chalk, + +bgMagenta: Chalk, + +bgCyan: Chalk, + +bgWhite: Chalk, + +bgBlackBright: Chalk, + +bgRedBright: Chalk, + +bgGreenBright: Chalk, + +bgYellowBright: Chalk, + +bgBlueBright: Chalk, + +bgMagentaBright: Chalk, + +bgCyanBright: Chalk, + +bgWhiteBrigh: Chalk, + + supportsColor: ColorSupport +}; + +declare module.exports: Chalk; diff --git a/node_modules/@babel/highlight/node_modules/chalk/license b/node_modules/@babel/highlight/node_modules/chalk/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/@babel/highlight/node_modules/chalk/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/highlight/node_modules/chalk/package.json b/node_modules/@babel/highlight/node_modules/chalk/package.json new file mode 100644 index 0000000..82741d4 --- /dev/null +++ b/node_modules/@babel/highlight/node_modules/chalk/package.json @@ -0,0 +1,103 @@ +{ + "_from": "chalk@^2.0.0", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "_location": "/@babel/highlight/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "chalk@^2.0.0", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/@babel/highlight" + ], + "_resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "_shasum": "cd42541677a54333cf541a49108c1432b44c9424", + "_spec": "chalk@^2.0.0", + "_where": "P:\\Git\\SitecoreSourceBlog\\node_modules\\@babel\\highlight", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "bundleDependencies": false, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "deprecated": false, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } +} diff --git a/node_modules/@babel/highlight/node_modules/chalk/readme.md b/node_modules/@babel/highlight/node_modules/chalk/readme.md new file mode 100644 index 0000000..d298e2c --- /dev/null +++ b/node_modules/@babel/highlight/node_modules/chalk/readme.md @@ -0,0 +1,314 @@ +

    +
    +
    + Chalk +
    +
    +
    +

    + +> Terminal string styling done right + +[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) [![Mentioned in Awesome Node.js](https://awesome.re/mentioned-badge.svg)](https://github.com/sindresorhus/awesome-nodejs) + +### [See what's new in Chalk 2](https://github.com/chalk/chalk/releases/tag/v2.0.0) + + + + +## Highlights + +- Expressive API +- Highly performant +- Ability to nest styles +- [256/Truecolor color support](#256-and-truecolor-color-support) +- Auto-detects color support +- Doesn't extend `String.prototype` +- Clean and focused +- Actively maintained +- [Used by ~23,000 packages](https://www.npmjs.com/browse/depended/chalk) as of December 31, 2017 + + +## Install + +```console +$ npm install chalk +``` + + + + + + +## Usage + +```js +const chalk = require('chalk'); + +console.log(chalk.blue('Hello world!')); +``` + +Chalk comes with an easy to use composable API where you just chain and nest the styles you want. + +```js +const chalk = require('chalk'); +const log = console.log; + +// Combine styled and normal strings +log(chalk.blue('Hello') + ' World' + chalk.red('!')); + +// Compose multiple styles using the chainable API +log(chalk.blue.bgRed.bold('Hello world!')); + +// Pass in multiple arguments +log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); + +// Nest styles +log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); + +// Nest styles of the same type even (color, underline, background) +log(chalk.green( + 'I am a green line ' + + chalk.blue.underline.bold('with a blue substring') + + ' that becomes green again!' +)); + +// ES2015 template literal +log(` +CPU: ${chalk.red('90%')} +RAM: ${chalk.green('40%')} +DISK: ${chalk.yellow('70%')} +`); + +// ES2015 tagged template literal +log(chalk` +CPU: {red ${cpu.totalPercent}%} +RAM: {green ${ram.used / ram.total * 100}%} +DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} +`); + +// Use RGB colors in terminal emulators that support it. +log(chalk.keyword('orange')('Yay for orange colored text!')); +log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); +log(chalk.hex('#DEADED').bold('Bold gray!')); +``` + +Easily define your own themes: + +```js +const chalk = require('chalk'); + +const error = chalk.bold.red; +const warning = chalk.keyword('orange'); + +console.log(error('Error!')); +console.log(warning('Warning!')); +``` + +Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): + +```js +const name = 'Sindre'; +console.log(chalk.green('Hello %s'), name); +//=> 'Hello Sindre' +``` + + +## API + +### chalk.`", + "expected": [ + { + "type": "style", + "name": "style", + "attribs": { + "type": "text/css" + }, + "children": [ + { + "data": "\n body > p\n\t{ font-weight: bold; }", + "type": "text" + } + ] + } + ] +} \ No newline at end of file diff --git a/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json b/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json new file mode 100644 index 0000000..5c2492e --- /dev/null +++ b/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json @@ -0,0 +1,20 @@ +{ + "name": "Extra spaces in tag", + "options": {}, + "html": "the text", + "expected": [ + { + "type": "tag", + "name": "font", + "attribs": { + "size": "14" + }, + "children": [ + { + "data": "the text", + "type": "text" + } + ] + } + ] +} \ No newline at end of file diff --git a/node_modules/domhandler/test/cases/09-unquoted_attrib.json b/node_modules/domhandler/test/cases/09-unquoted_attrib.json new file mode 100644 index 0000000..543ccee --- /dev/null +++ b/node_modules/domhandler/test/cases/09-unquoted_attrib.json @@ -0,0 +1,20 @@ +{ + "name": "Unquoted attributes", + "options": {}, + "html": "the text", + "expected": [ + { + "type": "tag", + "name": "font", + "attribs": { + "size": "14" + }, + "children": [ + { + "data": "the text", + "type": "text" + } + ] + } + ] +} \ No newline at end of file diff --git a/node_modules/domhandler/test/cases/10-singular_attribute.json b/node_modules/domhandler/test/cases/10-singular_attribute.json new file mode 100644 index 0000000..544636e --- /dev/null +++ b/node_modules/domhandler/test/cases/10-singular_attribute.json @@ -0,0 +1,15 @@ +{ + "name": "Singular attribute", + "options": {}, + "html": "