- fix: broken escaping of regex and dirname issue
- fix: switch to serve-static to avoid headers problem
- fix: proper use of node-static fork
- chore: switch to @node-static/node-static
- chore: update babel/core, command-line-args, intl-locale-textinfo-polyfill, jsdom, and devDeps.
- feat: TS support
- fix:
rememberRefusalwas not checking properly - fix: request permissions would have been erring out
- fix: ensure
showEmptyInterlinearandshowTitleOnSingleInterlinearare being passed on
- fix: revert apparent indexeddbshim regression
Versions past 12 have some apparent node-sqlite3 issues (after rollup, can't run server script)
- fix: apparent regression with
nodeActivate
- fix:
exportspath - fix: attempt to improve behavior in service-worker (use
skipWaiting())
- fix: offline files issue
- fix: add to offline files
- refactor: drop unused files
- refactor: use
intl-locale-textinfo-polyfilloverrtl-detect - chore: update deps., devDeps. and lint
- feat: service worker helper
BREAKING CHANGES; see betas for changes
- fix: update
simple-get-json(and devDep.)
- fix: path regression
- BREAKING fix: drop schemas now moved to textbrowser-data-schemas
- fix: adjust paths per new expected locations
- fix: update
intl-dom(affecting fallbacks for non-English locales)
- fix: ensure
fetchis set on server for locale retrieval for/textbrowser
- fix: regression with live data
- BREAKING chore: require Node 14.19.1+
- feat: routine to utilize updated
json-refs - feat:
imf->intl-dom - refactor: linting/TS fixes
- chore: update babel/core, indexeddbshim, jsdom, babel/core deps.
- chore: update devDeps.
- fix: issue with
next
- fix: issue with
next
- fix: proper use of
await - fix: avoid extra problematic static server call
- fix: allow for empty router
- fix: allow fall-through to express if http server fails to match
- fix: pass on
nextto express
- fix: allow passing on if middleware does not match
- feat: if Express route not detected and
httpServerpresent, defer to that
- fix: remove logging
- fix: try fixing cwd for
import
- fix: remove
node-serviceworker
- fix: server import path fix
- fix: server import path fix
- fix: tweak for Node
import()path - fix: rollup issues with
import()
- BREAKING CHANGE: refactor: Native ESM (plugins must be ESM also)
- chore: removes babel/register,
url-search-params-polyfilland dialog-polyfill - chore: bumps @babel/core (patch) and
simple-get-json(minor), pins rtl-detect
- fix: fix dialog polyfill CSS link
- fix: fix dialog polyfill CSS link
- refactor: make array-of-arrays schema more precise
- refactor: make table.jsonschema more precise
- refactor: drop redundant locale file listing in sample service worker
- chore: update
.editorconfig, devDeps. and deps. (babel-related,command-line-args)
- feat: factor out undocumented Bahá'í Writings-specific bookmark generator
to new generic
preferencesPluginoption
- fix: clear out extra query string, e.g., from Facebook when querying for metadata file
- chore: update deps.
- chore: lint and add ncurc.js
- chore: update devDeps.
- Fix: Add ESM
distversions foractivateCallbackandWorkInfo
- npm: Bump
indexeddbshim
- Breaking change: Switch to ESM for service worker; remove CJS dependencies
- npm: Update
@babel/core(patch),@babel/register(minor)
- npm: Update devDeps.
- Breaking change: Require Node 12
- Enhancement: Add
expressServeroption to allow injecting express server on top of static server for fallback - npm: Update dep. babel/core (minor), babel/register (patch), jsdom (minor), rtl-detect (patch)
- Linting: As per latest ash-nazg
- npm: Update devDeps.
- npm: Add
lintscript
- Fix: Avoid race condition with language loading
- Fix: Don't fail if no
accept-languageheader (e.g., withcurl)
- Fix: Switch to
@brettz9/node-staticto fix vulnerabilities and strict error
- npm: Update deps. (
@babel/core,@babel/register,imf,indexeddbshim,jamilih,jsdom,load-stylesheets,url-search-params-polyfill)
- Linting: As per latest ash-nazg (and switch to
overrides) - npm: Switch to updated
rollup-plugin-postprocessfork - npm: Switch from deprecated
babel-eslint - npm: Update devDeps. including changed
eslint-config-ash-nazgpeerDeps.
- Fix:
allowPluginsbehavior
- Fix: Add back
node-staticfor programmatic use
- npm: Update
simple-get-json,imf - Dev securty: Switch to server (
http-server) without reported vulnerabilities
- Fix:
nodeActivateand base path - Change: Drop core-js-bundle and regenerator-runtime
- npm: Update imf, dialog-polyfill, simple-get-json deps. and devDeps
- Fix: Properly encode stylesheets
- Breaking change: Explicitly require Node 10.11.0+
- Build: Update per latest devDeps.
- Linting: As per latest ash-nazg
- npm: Change to non-deprecated
@rollup/plugin-commonjs - npm: Update deps., peerDeps, devDeps., package-lock
- Build: Rename Babelrc to include "json" extension
- Build: Change Babel preset-env targets to Node 10
- Build: Make local server file executable for local testing
- Linting (ESLint): As per latest ash-nazg
- npm: Cleaner property ordering
- npm: Make separate script for test opening and run in parallel
using
npm-run-all - npm: Add
serverscript - npm: Add
jsdomas dep. now that removed from jamilih - npm: Switch to non-deprecated
@rollup/plugin-node-resolve - npm: Update deps (
babel-related,indexeddbshim,url-search-param-polyfill,simple-get-jsonandjamilih) - npm: Updat peerDeps (
core-js-bundle) - npm: Update devDeps.
- Linting: Update per latest config (esp. jsdoc)
- Linting (ESLint): Lint any HTML/Markdown JS
- Linting (ESLint): Switch to 2sp.
- Maintenance: Add
.editorconfig - Testing: Switch from end-of-lifed nodeunit to mocha+chai
- Change @babel/polyfill in sample files
- npm: Update opn-cli -> open-cli
- npm: Update devDeps, deps, peerDeps
- npm: Update deps, devDeps
- npm: peerDeps - Move from deprecated @babel/polyfill to core-js/regenerator-runtime
- Linting (LGTM): Escape backslashes, escape globally useless var and argument
- npm: Update deps, devDeps
- Fix (server): Ensure user
namespacecan override default - Change (server): Switch from "bahaiwritings"->"textbrowser"
as default
namespace - Enhancement: Incorporate resolved stylesheet file names into
service worker path so it may cache them automatically
along with files in
userJSONyet avoid fetching in sample SW/userJSON if not included - Enhancement (server): Add
basePathoption - Refactoring (server): Simplify default setting; properly group settings by type
- Build: Adjust node-resolve per update; apply babel updates
- npm: Update from
form-serializetoform-serialization - npm: Update devDeps
- Fix: Use consistent dialog-polyfill.css path so cached
- Fix (Accessibility): Set
langandtitleearlier; add landmark section - Enhancement: Allow separate languages page title in
site.json - Refactoring: simplify; move some styling to CSS
- Fix (Server): Replace the dialog polyfill with our own noop polyfill for Node
- Update: In sample Service worker, point to new dialog-polyfill path
- Breaking change:
TextBrowsermust now be used withnew(IntlURLSearchParamsalso refactored as class) - Refactoring: Use modular form of dialog-polyfill
- Change: Add dialog stylesheet when
@builtinstylesheet is used - Linting: Add recommended extension to
.eslintrc(.js); apply ash-nazg rules - Docs: In todo comments, refer to
import.meta.url(also apparently supported in Rollup; probably need to wait for service workers behaving as modules) - Docs (README): Document server API, plugins, and
userJSONproperty - Docs (README): Clean-up/clarify; indicate
user.jsonas recommended; document{locale}value, andshortcutandmetaproperties - Testing: Add schema and tests for user-json schema
- npm: Update deps and devDeps
- npm: Update deps, devDeps
- Fix: Avoid need for
!importantwith column color rules - Fix: CSS for column was not working properly when intervening columns were omitted
- Fix: For
colorNameandbgcolorName(color pull-downs) andfontstretchpull-down, use reverse-localized value - Fix: Row ID setting when aliases present (and thus fix anchor setting for such cases)
- Fix: Applicable field set was not being properly detected
- Enhancement: Expose
getLangDirso plugins can set proper directionality
- npm: Restore
@babel/coreas dep
- npm: Make
@babel/registera dep
- Breaking change: Update
babel-polyfillto@babel/polyfill - Breaking change: Update
indexeddbshim - Refactoring: Avoid deprecated
url.parsein favor ofURLconstructor - Testing: Fix script dep. path per new
simple-get-json - Build: Make CommonJS build for server to avoid need for
@babel/polyfill - npm: Upgrade to Babel 7; update other devDeps and deps recursively; fix
rtl-detectas dep. - npm: Update devDeps
- Fix: Allow form submission by hitting return (with updated Chrome?)
- Fix (minor): Avoid adding empty variable to query string
- Fix: Avoid form submission upon copy shortcut click
- Fix: Allow form submission by hitting return
- Fix: Accommodate server differences with plugins
- Enhancement: Bookmarks export
- Enhancement: Button to copy single shortcut URL (e.g., for Chrome)
- npm: Update Jamilih
- Refactoring: Make use of Jamilih's new
bodyexport
- Fix:
startEndsetting issue
- Enhancement: Allow more flexibility within start/end params in
undocumented
startEndfeature--can still have the full text + number in parenthesis or also just number of just text; makesstartEndmore appealing as target for browser keywords
- Fix: Update server code
- Fix: Update server code
- Fix: Get server working again by adding
logfunction - Enhancement: Allow detection of field names in start/end by alias alone (no parentheses with numeric value needed)
- Build: Use terser for Rollup minification
- Linting (ESLint): Overwrite new "standard" rule
- Refactoring: Use new Jamilih exports and format
- npm: Update Jamilih, url-search-params-polyfill and devDeps
- Fix: Update
distfiles (with applying empty field changes)
- yarn: Remove
yarn.lock - Fix: Serialize empty fields (ensuring state preserved to overwrite previous non-empty)
- Security fix: Avoid exposing
.gitdirectory in server
- Fix: Save checkbox enabled state
- Fix: Create server-side namespace
- Fix (work display): Selection of fields (noticeable on using back button to return to page (history state serialization))
- Enhancement: Pass on
fieldInfo(plugins to grab from another column) - Docs: Update user-sample.json
- Refactoring: Wrap table in
table-responsive(not actually needed now, but using in bahaiwritings)
- Fix: font-variant/small-caps
- Fix: Show interlinear even when titles not chosen to be shown
- npm: Update jamilih (fixing security vulnerability), indexeddbshim, load-stylesheets, deps, and devDeps
- Testing: Use node-static server/opn-cli instead of our own
- Build: Update Rollup per new version's API
- Enhancement: Namespace textboxes by work to avoid caching of unused values
- i18n: Populate non-English locales with missing English fields for easier translation
- Fix: Add
dirto results cells (if non-default) - Fix (Service worker): Safer worker (imports info via URL to avoid (unstable) messaging into worker; retries rather than failing)
- Optimization: Add global
langand only override in cells if non-default - Optimization: Avoid adding "td" class to each cell
- Enhancement (Service worker): Show dialog that waiting on an install
- Enhancement (Service worker): Try updating every hour
- Enhancement (Service worker): Log more details to clients
- Enhancement (Service worker): Handle other service worker eventualities (not well tested)
- Enhancement: Use dialog element over built-in alerts
- Refactoring (Dialogs): Allow object for
okargument - npm: Update deps (jamilih, indexeddbshim, url-search-params-polyfill)
- npm: Add rtl-detect
- npm: Update devDeps
- npm: Publishing issue
- Fix: Issue when plugins for work were absent
- Server: Ensure basePath and other user params are passed in
- npm: Move babel-register, babel-preset-env to being peer-dependencies (required for resolution of our dynamic, path-sensitive "import"->require) so user flagged of need to install
- npm: Move babel-plugin-dynamic-import-node to devDeps
- Fix for plug-ins run in Node (avoid running on client if already run on server)
- Update
yarn.lock
- Enhancement: Plugins!
- Enhancement: Add canonical ID and type to rows (usable by plugins, e.g., for consistent storage pertaining to verses)
- Optimization: Avoid adding
rowdataset property to each cell - Schema enhancement: Accept array for plugin applicable-fields-keyed
targetLanguage - Schema enhancement: Support
{locale}in place of a language code fortargetLanguage - Schema enhancement: Allow
metafor passing arguments from plug-ins to localization-strings - Sample worker: Fix offline when
index.htmlomitted - Refactoring: Misc. improvements
- Change (server): Supply just
domain, withbasePathbeing derived
- Change: Make footer off by default
- Change: Stop asking persistence permissions on results page (so users can be directed to specific Writings without needing to themselves confirm); in the future, a navigation bar and/or breadcrumbs may allow going to another page where that is possible
- Change: Avoid slow retrieval for presorts (unless
noDynamic); Node.js can handle - Fix (server): Allow
basePathto be non-localhost - Fix (client): Ensure babel-polyfill is cached by service worker in sample
- Enhancement: Search box parsing (without UI)
- Docs: Remove outdated/invalid to-dos
- Default to absence of
checkedparams meaning present (must set explicitly to "No") - Make
outputmodecheck default totable(and avoid problems if user messes with value) - Avoid Chrome DevTools error
- Fix: Multiple fixes for Node.js server
- Let Node.js server's
basePathdefault tolocalhostand user-supplied or default port - Enhancement: Make Node.js server a binary
- Enhancement: Provide server output options (Jamilih or HTML as well as JSON)
- Node.js server (untested)
- Change: If not persistent (e.g., as user revoked) but worker already set up, try asking again (until they refuse)
- Refactoring: Break out
requestPermissions,prepareForServiceWorker,registerServiceWorker, andgetWorkFiles/getFilePathsinto own functions; splitresultsDisplayinto client and server-or-client versions; break out metadata functions to utility; split offgetIMFFallbackResultsto allow different server/client versions - Refactoring: Minor optimizations, await/async, factor out common
escapeHTML
- Fix: Don't continue past loading screen until service worker is fully activated
- Fix:
thisscoping issue for langData - Fix: Sample service worker
asyncissues - Refactoring: Have
initreturn now promise-baseddisplayLanguagesif we want it to signal everything rendered (incomplete) - Refactoring: Use
async/awaitwithgetJSON
- Fix: Ensure is doing a browser build (now that imf is fixed to do so)
- npm: Ensure ESLint and Rollup are run for Node tests
- Refactoring:
async/await
- Upgrade
loadStylesheets - Docs: Document
stylesheetsin README
- Fix: Ensure paths are relative to this repo
- Fix: Ensure base URL is an absolute URL
- Fix: Replace
__dirnamewith hard-codedmoduleURLfor now
- Enhancement: Use
loadStylesheetsto avoid user needing to hard-code ours (and theirs) non-modularly - Enhancement: Have
initreturn a Promise resolving when stylesheets loaded - Enhancement: Use
__dirnameto be replaced by Rollup (document.currentScript.srcwould not necessarily be relative to this repo is bundled into another project)
- Build: Ensure rollup can complete and update builds
- Breaking change: Expect plugins to use dynamic
import - Linting: Switch to
babel-eslintparser to handleimport
- Update
package-lock.json
- Fixes for user-sample file
- Testing: Fix to use babel-polyfill
- .gitignore: Add files that may be used for locally testing textbrowser within its folder
- Avoid builtins overhead and problems with Rollup by directly requiring json-refs browser file
- Use Rollup (with Babel and uglify), as can state dependencies more succinctly and convert json-refs (and use opportunity for applying Babel)
- Linting: Use
.eslintignore
- Fix: Use JSONP as module
- Testing: Update tests to use babel-polyfill (not run automatically by simple-get-json)
- Testing: Use updated JSON Schema drafts (which apparently fix some bugs as tests now passing)
- npm: Update
package-lock.json,yarn.lock - npm: Add babel-polyfill to devDeps; bump simple-get-json version (no need to include babel-polyfill in repo ourselves)
- npm: Include changes in
package-lock.jsonandyarn.lock
- npm: Bump simple-get-json to 3.2.2 (fix to use babel-polyfill)
- Update deps (and their imports)
- Use ES6 Modules/Rollup
- Refactoring (Breaking): Switch to ES6 Modules (except for some dependencies)
- Refactoring: Remove (mostly) no longer needed
URLSearchParamspolyfill - Linting: ESLint (indents)
- npm: Fix ESLint script per eslint/eslint#1663 (comment)
- npm: Upgrade dev deps
- Fix interlinear and checked interaction issue
- Better caption display
- Enhancement: Add
showEmptyInterlinearandshowTitleOnSingleInterlinearfor further control of interlinear behavior
- Fix: Interlinear content
- Fix:
langand anchor when interlinear are used - Enhancement: Wrap interlinear segments in language-aware span
- Refactoring: Use abbreviated method forms
- Fix
anchorto work with aliases (utilizingprefer_alias)
- Fix issue with aliases
- Optimization: Add service worker code to cache files and use it and
IndexedDB for performance (including
serviceWorkerPath,requestPersistentStorage, andstaticFilesToCacheoptions as well as dialogs, including error dialogs) - Refactoring (Breaking): Remove array
includespolyfill (relying on other modern features) - Fix: Stop hard-coding languages in check
- Fix: Document titles
- Enhancement: Support HTML
langon cells - npm: Update jamilih (
langtreatment) - Docs (README): Better install instructions
- Docs (README): Indicate third-party-facing features
- Docs (README): Correct info on
site.json - Docs (README): Todos
- Proper version in package.json
- First minimally functioning version (all the way to the results page, though with slow performance due to current lack of caching)
- BREAKING: Change i18n in metadata, files, site, etc.
- Initial version