gitextract_2g5j4x9v/ ├── .gitignore ├── .jshintrc ├── 01-introduction/ │ ├── README.md │ ├── dysfunctional-family.md │ ├── how.md │ └── why.md ├── 02-new-apis/ │ ├── README.md │ ├── fetch.md │ └── solutions.md ├── 03-offline-todo/ │ ├── 01-scaffolding/ │ │ ├── README.md │ │ ├── application.js │ │ ├── index.html │ │ ├── offline.appcache │ │ ├── promise.js │ │ └── styles.css │ ├── 02-opening-a-database/ │ │ ├── README.md │ │ ├── application.js │ │ ├── index.html │ │ ├── promise.js │ │ └── styles.css │ ├── 03-using-dev-tools/ │ │ └── README.md │ ├── 04-creating-object-stores/ │ │ ├── README.md │ │ ├── application.js │ │ ├── index.html │ │ ├── promise.js │ │ └── styles.css │ ├── 05-review-window-indexeddb/ │ │ └── README.md │ ├── 06-adding-data/ │ │ ├── README.md │ │ ├── application.js │ │ ├── index.html │ │ ├── promise.js │ │ └── styles.css │ ├── 07-getting-data/ │ │ ├── README.md │ │ ├── application.js │ │ ├── index.html │ │ ├── promise.js │ │ └── styles.css │ ├── 08-rendering-todos/ │ │ ├── README.md │ │ ├── application.js │ │ ├── index.html │ │ ├── promise.js │ │ └── styles.css │ ├── 09-deleting-data/ │ │ ├── README.md │ │ ├── application.js │ │ ├── index.html │ │ ├── promise.js │ │ └── styles.css │ ├── 10-review-requests-transactions/ │ │ └── README.md │ ├── 11-appcache/ │ │ ├── README.md │ │ ├── application.js │ │ ├── index.html │ │ ├── offline.appcache │ │ ├── promise.js │ │ └── styles.css │ ├── 12-appcache-gotcha-1/ │ │ └── README.md │ ├── 13-success/ │ │ └── README.md │ └── README.md ├── 04-offline-todo-with-sync/ │ ├── 01-architecture/ │ │ └── README.md │ ├── 02-mark-for-deletion/ │ │ ├── README.md │ │ ├── application.js │ │ ├── index.html │ │ ├── offline.appcache │ │ ├── promise.js │ │ └── styles.css │ ├── 03-adding-ajax/ │ │ ├── README.md │ │ ├── application.js │ │ ├── fetch.js │ │ ├── index.html │ │ ├── offline.appcache │ │ ├── promise.js │ │ └── styles.css │ ├── 04-synchronize/ │ │ ├── README.md │ │ ├── application.js │ │ ├── fetch.js │ │ ├── index.html │ │ ├── offline.appcache │ │ ├── promise.js │ │ └── styles.css │ ├── 05-success/ │ │ └── README.md │ └── README.md ├── 05-offline-news/ │ ├── 01-scaffolding/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── public/ │ │ ├── styles.css │ │ └── templates.js │ ├── 02-single-multi-page/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── public/ │ │ ├── application.js │ │ ├── fetch.js │ │ ├── promise.js │ │ ├── styles.css │ │ └── templates.js │ ├── 03-hacking-appcache/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── public/ │ │ ├── application.js │ │ ├── fetch.js │ │ ├── iframe.html │ │ ├── promise.js │ │ ├── styles.css │ │ └── templates.js │ ├── 04-more-hacking-appcache/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── public/ │ │ ├── appcache.js │ │ ├── application.js │ │ ├── fetch.js │ │ ├── iframe.html │ │ ├── iframe.js │ │ ├── promise.js │ │ ├── styles.css │ │ └── templates.js │ ├── 05-success/ │ │ └── README.md │ └── README.md ├── 06-offline-news-with-service-worker/ │ ├── 01-scaffolding/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── public/ │ │ ├── styles.css │ │ └── templates.js │ ├── 02-registering-a-service-worker/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ ├── public/ │ │ │ ├── application.js │ │ │ ├── service-worker.js │ │ │ ├── styles.css │ │ │ └── templates.js │ │ ├── styles.css │ │ └── templates.js │ ├── 03-service-worker-caches/ │ │ └── README.md │ ├── 04-success/ │ │ └── README.md │ └── README.md ├── 07-dexie/ │ └── README.md ├── 08-success/ │ └── README.md ├── README.md └── package.json