@skillswaveca/nova-shared-libraries 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +1 -0
- package/.eslintrc.yaml +28 -0
- package/.github/dependabot.yml +18 -0
- package/.github/workflows/pull-request.yml +25 -0
- package/.github/workflows/release.yml +72 -0
- package/README.md +69 -0
- package/docs/accelerator-7PKwHj6p.js +7 -0
- package/docs/accelerator-CTGFUnJj.js +7 -0
- package/docs/access-special-BRCQ6BOA.js +7 -0
- package/docs/accessibility-check-DDEnCM3T.js +7 -0
- package/docs/add-CC95oWZj.js +7 -0
- package/docs/add-Dok7V7iV.js +7 -0
- package/docs/add-file-CDcwFmxE.js +9 -0
- package/docs/add-file-DSIehH-a.js +8 -0
- package/docs/add-message-C2J88NtD.js +8 -0
- package/docs/add-message-C74U_c_a.js +8 -0
- package/docs/add-to-lor-Cx3ALzs6.js +10 -0
- package/docs/add-to-lor-mWdPFUuq.js +10 -0
- package/docs/add-user-7oZmllZp.js +8 -0
- package/docs/add-user-Ct61dWhf.js +8 -0
- package/docs/ai-CXRsBcvO.js +7 -0
- package/docs/ai-D1Iq7PBt.js +9 -0
- package/docs/ai-DvFNdjTJ.js +7 -0
- package/docs/alarmbell-BptBR2Jr.js +7 -0
- package/docs/alarmbell-CB5dhFiR.js +7 -0
- package/docs/alert-DlHwdVP6.js +7 -0
- package/docs/alert-V7mrtHbK.js +9 -0
- package/docs/alert-p0Ge30rc.js +8 -0
- package/docs/align-center--wiBdBfZ.js +7 -0
- package/docs/align-full-BfwFgwgv.js +7 -0
- package/docs/align-left-DaZbAxVg.js +7 -0
- package/docs/align-right-DJm8Hnyk.js +7 -0
- package/docs/angry-CLkqqzeH.js +7 -0
- package/docs/arrow-collapse-CKVijIdk.js +7 -0
- package/docs/arrow-collapse-DgaM5Q7K.js +7 -0
- package/docs/arrow-collapse-small-BfTzkoWL.js +7 -0
- package/docs/arrow-expand-Bk1J3lIZ.js +7 -0
- package/docs/arrow-expand-small-B7KVZXkf.js +7 -0
- package/docs/arrow-thin-down-ClfvHk99.js +7 -0
- package/docs/arrow-thin-left-D0lmhbm9.js +7 -0
- package/docs/arrow-thin-right-CZH1S-Ev.js +7 -0
- package/docs/arrow-thin-up-kbf0Hayy.js +7 -0
- package/docs/arrow-toggle-down-CWSCkUi8.js +7 -0
- package/docs/arrow-toggle-up-sUgzJAuI.js +7 -0
- package/docs/assignments-BpNN8uRi.js +9 -0
- package/docs/assignments-BwrFNhJf.js +14 -0
- package/docs/assignments-DJuzE5TS.js +8 -0
- package/docs/attach-CxYJqjr7.js +8 -0
- package/docs/attach-DoURgNqH.js +7 -0
- package/docs/attendance-Bh8NDNxG.js +7 -0
- package/docs/attendance-CKrWYCoi.js +8 -0
- package/docs/awards-08R3caDo.js +7 -0
- package/docs/awards-CGFZ1AmF.js +7 -0
- package/docs/binder-DqjAKrO6.js +7 -0
- package/docs/binder-sPoCLPbv.js +9 -0
- package/docs/blocked-BqqEqoxS.js +7 -0
- package/docs/blocked-CdL2qnqB.js +7 -0
- package/docs/blog-EWWLpv3J.js +11 -0
- package/docs/blog-mImHk1UE.js +11 -0
- package/docs/bold-DvEMGUJQ.js +7 -0
- package/docs/book-management-BycZ58Mx.js +8 -0
- package/docs/book-management-C5EVLmWE.js +7 -0
- package/docs/bookmark-ZSLGVyMZ.js +8 -0
- package/docs/bookmark-filled-By-e1Vik.js +7 -0
- package/docs/bookmark-filled-C5_hpJmC.js +7 -0
- package/docs/bookmark-hollow-BERVrtPe.js +7 -0
- package/docs/bookmark-hollow-DmYIKVj-.js +7 -0
- package/docs/broken-link-0mE-24kB.js +7 -0
- package/docs/broken-link-B0FAWC4d.js +7 -0
- package/docs/browser-Bkf2Pqxa.js +11 -0
- package/docs/browser-DDKpAnFL.js +7 -0
- package/docs/bullet-WEelL-Oz.js +7 -0
- package/docs/bullseye-BGaOsg34.js +9 -0
- package/docs/bullseye-BI26Yr2r.js +11 -0
- package/docs/bullseye-D8leZHHy.js +10 -0
- package/docs/calculate-7BO4aJsc.js +7 -0
- package/docs/calculate-C1k19iEm.js +17 -0
- package/docs/calendar-10jvL2iw.js +7 -0
- package/docs/calendar-CAOKFxG8.js +7 -0
- package/docs/calendar-N5k43N09.js +7 -0
- package/docs/capture-BXEbu8tr.js +7 -0
- package/docs/change-file-3zLEwSjU.js +10 -0
- package/docs/change-file-CVDVitRF.js +10 -0
- package/docs/chat-BLpVloRi.js +7 -0
- package/docs/chat-CJvurd17.js +7 -0
- package/docs/chat-DkYoPSJD.js +7 -0
- package/docs/check-6yKqAXn0.js +7 -0
- package/docs/check-BDGGpjpw.js +7 -0
- package/docs/check-box-COb-iQnp.js +8 -0
- package/docs/check-box-unchecked-CihNEcBY.js +7 -0
- package/docs/check-circle-BHCbtC9e.js +8 -0
- package/docs/check-circle-CcqlS16f.js +7 -0
- package/docs/check-circle-D-88S9HE.js +8 -0
- package/docs/check-manual-D118hJse.js +10 -0
- package/docs/check-user-CzXE-sqy.js +9 -0
- package/docs/checklist-D3dcWqlj.js +12 -0
- package/docs/checklist-VRzqF3Cn.js +7 -0
- package/docs/chevron-down-CmgQXzCG.js +7 -0
- package/docs/chevron-down-NDFaTQA4.js +7 -0
- package/docs/chevron-down-eOc83-I6.js +7 -0
- package/docs/chevron-down-medium-ZHL8V0yD.js +7 -0
- package/docs/chevron-down-small-Cxu3u8oN.js +7 -0
- package/docs/chevron-left-CTXSr5gY.js +7 -0
- package/docs/chevron-left-DGHEARqj.js +7 -0
- package/docs/chevron-left-Dv2XEN1W.js +7 -0
- package/docs/chevron-left-circle-DC2ldsYl.js +8 -0
- package/docs/chevron-right-DyJ0vK9x.js +7 -0
- package/docs/chevron-right-X9aw5FQZ.js +7 -0
- package/docs/chevron-right-circle-CfufyneZ.js +8 -0
- package/docs/chevron-right-dtXLd_t_.js +7 -0
- package/docs/chevron-up-BLvFJkrs.js +7 -0
- package/docs/chevron-up-CBgDUU-S.js +7 -0
- package/docs/chevron-up-Cz4arn0k.js +7 -0
- package/docs/class-MfNPJCE3.js +7 -0
- package/docs/classes-BrimJoaQ.js +7 -0
- package/docs/classes-DNZeYwP9.js +7 -0
- package/docs/classlist-CT7aR3Qp.js +9 -0
- package/docs/classlist-lNAGMMK9.js +7 -0
- package/docs/close-DZhoaKqc.js +7 -0
- package/docs/close-circle-BUNfgKRi.js +8 -0
- package/docs/close-default-dnnWtHBx.js +7 -0
- package/docs/close-large-bMM1w3Qq.js +7 -0
- package/docs/close-large-thick-CIk4u_x5.js +7 -0
- package/docs/close-small-BM6jWA00.js +7 -0
- package/docs/close-thick-CSMgayuW.js +7 -0
- package/docs/comment-filled-BIwNhQOh.js +7 -0
- package/docs/comment-hollow-BuEIRoVu.js +7 -0
- package/docs/contacts-0c5Ejeie.js +8 -0
- package/docs/contacts-0p7GRork.js +9 -0
- package/docs/content-BkmZJI2k.js +10 -0
- package/docs/copy-ByxRV0Fv.js +9 -0
- package/docs/copy-C0jJBW8t.js +8 -0
- package/docs/copy-CrrPol58.js +9 -0
- package/docs/course-B7-GuqH0.js +9 -0
- package/docs/course-progress-complete-D-88S9HE.js +8 -0
- package/docs/course-progress-in-progress-CMNxGcwl.js +7 -0
- package/docs/course-progress-not-started-CZkienJ8.js +7 -0
- package/docs/course-tile-sort-DBH3sD6Y.js +7 -0
- package/docs/course-tile-sort-LVnGtfEg.js +7 -0
- package/docs/coursebuilder-CksHR_dY.js +7 -0
- package/docs/coursebuilder-mK3UOKAz.js +7 -0
- package/docs/cut-BSxIDiPd.js +7 -0
- package/docs/delete-XUr3hb61.js +8 -0
- package/docs/delete-n_0tMiML.js +7 -0
- package/docs/direction-ltr-DOOIOEMV.js +7 -0
- package/docs/direction-rtl-Zq209crM.js +7 -0
- package/docs/disable-CfhAdhZ4.js +8 -0
- package/docs/discussions-BV-rVYTJ.js +8 -0
- package/docs/discussions-DcjKXpsJ.js +8 -0
- package/docs/discussions-FfXuJJ0A.js +8 -0
- package/docs/divider-DYcReEjI.js +12 -0
- package/docs/divider-big-CNFI3Pvd.js +11 -0
- package/docs/divider-solid-BwFmdIq7.js +7 -0
- package/docs/dot-GOmm6Bys.js +7 -0
- package/docs/dot-THJbh2QW.js +7 -0
- package/docs/download-B8F8Cdcb.js +8 -0
- package/docs/download-D0w9z3Z3.js +8 -0
- package/docs/download-SHKxw6bp.js +8 -0
- package/docs/draft-mP5du8rd.js +9 -0
- package/docs/draft-vZl_0H-L.js +8 -0
- package/docs/dragger-aZ6zsEfR.js +7 -0
- package/docs/drivers/assets/anchor.js +350 -0
- package/docs/drivers/assets/bass-addons.css +12 -0
- package/docs/drivers/assets/bass.css +544 -0
- package/docs/drivers/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
- package/docs/drivers/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
- package/docs/drivers/assets/fonts/LICENSE.txt +93 -0
- package/docs/drivers/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
- package/docs/drivers/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
- package/docs/drivers/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
- package/docs/drivers/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
- package/docs/drivers/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
- package/docs/drivers/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
- package/docs/drivers/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
- package/docs/drivers/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
- package/docs/drivers/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
- package/docs/drivers/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
- package/docs/drivers/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
- package/docs/drivers/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
- package/docs/drivers/assets/fonts/source-code-pro.css +23 -0
- package/docs/drivers/assets/github.css +123 -0
- package/docs/drivers/assets/site.js +168 -0
- package/docs/drivers/assets/split.css +15 -0
- package/docs/drivers/assets/split.js +782 -0
- package/docs/drivers/assets/style.css +147 -0
- package/docs/drivers/index.html +6180 -0
- package/docs/edit-XTluWOyY.js +7 -0
- package/docs/edit-bulk-CbUTb41B.js +7 -0
- package/docs/edit-not-editable-BtNDjkNt.js +9 -0
- package/docs/edit-rtSBrFnZ.js +7 -0
- package/docs/email-B77IV5dc.js +8 -0
- package/docs/email-DShyqmyr.js +7 -0
- package/docs/email-Dr_fUQo7.js +7 -0
- package/docs/email-open-CNPI-nbt.js +9 -0
- package/docs/email-open-sMmv4goK.js +8 -0
- package/docs/email-read-D4PMZMhZ.js +8 -0
- package/docs/enable-BXJKKu9V.js +8 -0
- package/docs/enrollment-D_f33z-t.js +7 -0
- package/docs/eportfolio-CmIoQSs-.js +7 -0
- package/docs/eportfolio-DiR128Ch.js +8 -0
- package/docs/equation-graphical-DEK4DR0o.js +7 -0
- package/docs/equation-graphical-chemistry-deGj_Wo1.js +7 -0
- package/docs/equation-latex-OwF3WKZs.js +7 -0
- package/docs/equation-mathml-BVFy7F04.js +8 -0
- package/docs/evaluate-all-D8Ed6wUQ.js +15 -0
- package/docs/evaluate-all-DRA08hvM.js +13 -0
- package/docs/event-log-BBnLruqh.js +7 -0
- package/docs/exemption-add-CuNjn-gE.js +8 -0
- package/docs/exemption-remove-C6gurfls.js +10 -0
- package/docs/export-B00I40zU.js +8 -0
- package/docs/export-C_qczGjD.js +8 -0
- package/docs/external-CGUtobc0.js +6 -0
- package/docs/external-D14KafxI.js +9 -0
- package/docs/external-XLH4ZIpG.js +9 -0
- package/docs/feed-CpSir1Op.js +7 -0
- package/docs/feed-Dp9gnfxV.js +12 -0
- package/docs/feedback-CYkdDNHj.js +7 -0
- package/docs/feedback-zuS0X61K.js +7 -0
- package/docs/file-archive-BqyAeRx6.js +14 -0
- package/docs/file-archive-aUsV28fR.js +14 -0
- package/docs/file-audio-C0gLVZ1J.js +7 -0
- package/docs/file-audio-DlPChJJD.js +7 -0
- package/docs/file-audio-Ez8GKNqD.js +8 -0
- package/docs/file-document-OV_yiZc9.js +7 -0
- package/docs/file-document-PtERBBjG.js +9 -0
- package/docs/file-document-RAyDjBV0.js +9 -0
- package/docs/file-image-2kUlJRfa.js +7 -0
- package/docs/file-image-DEvp4loc.js +8 -0
- package/docs/file-presentation-DnSQf6dJ.js +10 -0
- package/docs/file-presentation-Dvm4dJkX.js +11 -0
- package/docs/file-presentation-DynwRY3d.js +7 -0
- package/docs/file-video-Baynsug6.js +8 -0
- package/docs/file-video-DubiL6Pa.js +7 -0
- package/docs/file-video-Dz0Xv-nt.js +8 -0
- package/docs/filter-BXmy_W6Z.js +7 -0
- package/docs/filter-CjP2TU9o.js +11 -0
- package/docs/flag-fill-Bon2nRGs.js +7 -0
- package/docs/flag-filled-B0f2EsXm.js +7 -0
- package/docs/flag-hollow-CaU1iNOl.js +7 -0
- package/docs/flag-hollow-DfEoHVNP.js +7 -0
- package/docs/folder-D4EQiKEf.js +7 -0
- package/docs/folder-DjGOP9kC.js +7 -0
- package/docs/folder-up-level-CmUITqEa.js +8 -0
- package/docs/forms-BzBisiyk.js +8 -0
- package/docs/forms-QmRSltZO.js +7 -0
- package/docs/forward-B7OsyI-4.js +8 -0
- package/docs/fullscreen-DW5UhnuF.js +8 -0
- package/docs/fullscreen-Dos-vYUL.js +7 -0
- package/docs/game-BPXtsa4R.js +12 -0
- package/docs/game-CAeZpf2P.js +12 -0
- package/docs/game-CJBm4W_4.js +6 -0
- package/docs/gear-BXgew4r5.js +8 -0
- package/docs/gear-BefUgJUH.js +8 -0
- package/docs/gear-Dozogx0s.js +7 -0
- package/docs/glossary-BYZOnXFD.js +10 -0
- package/docs/glossary-pJwGMnFw.js +7 -0
- package/docs/google-drive-BY7aNeo4.js +7 -0
- package/docs/google-drive-C2K-Q1Sz.js +7 -0
- package/docs/google-drive-UaaDdmWX.js +7 -0
- package/docs/grabber-DDfgK4q3.js +7 -0
- package/docs/grabber-small--2Gc1-LB.js +7 -0
- package/docs/grade-BG_E-8NT.js +8 -0
- package/docs/grade-D2MISbK9.js +7 -0
- package/docs/grade-NOWaSTNa.js +8 -0
- package/docs/grade-remove-Ph1Izm-7.js +8 -0
- package/docs/grade-visible-CDb-9-br.js +7 -0
- package/docs/group-DtqVtMH3.js +8 -0
- package/docs/group-locker-ftiR0a03.js +7 -0
- package/docs/happy-LeP0nGOv.js +7 -0
- package/docs/help-CkV4Dp7d.js +9 -0
- package/docs/help-Dxodc931.js +9 -0
- package/docs/help-FOiT3jKO.js +7 -0
- package/docs/history-DARTknKW.js +8 -0
- package/docs/history-rho7wY5T.js +8 -0
- package/docs/home-BE2SQvvs.js +7 -0
- package/docs/home-D_tSkasl.js +8 -0
- package/docs/home-DbQqnxwO.js +7 -0
- package/docs/image-BCnN94lf.js +9 -0
- package/docs/image-Dmy_y4Fd.js +8 -0
- package/docs/import-D_Njyhb9.js +8 -0
- package/docs/import-YfiMqwWh.js +8 -0
- package/docs/important-2qm6frSZ.js +9 -0
- package/docs/indent-decrease-CQm4KxII.js +7 -0
- package/docs/indent-increase-BO1QVrc8.js +7 -0
- package/docs/index.html +1 -0
- package/docs/inline-module-index-0.js +9556 -0
- package/docs/insert-attributes-B4iHYS-t.js +8 -0
- package/docs/insert-emoticon-BC9tKUjH.js +11 -0
- package/docs/insights-portal-Cm3Wea4M.js +10 -0
- package/docs/insights-portal-Depbhlwj.js +8 -0
- package/docs/italic-AhBNAWI0.js +7 -0
- package/docs/link-BgD3fOWi.js +8 -0
- package/docs/link-CPDrunkx.js +7 -0
- package/docs/link-CmNVOd0t.js +7 -0
- package/docs/list-bullet-CyrIsY33.js +11 -0
- package/docs/list-ordered-BnmtMuSC.js +7 -0
- package/docs/list-view-EI9pvwuC.js +11 -0
- package/docs/location-CzWLCAQ8.js +7 -0
- package/docs/location-DcnFhfnk.js +10 -0
- package/docs/locations-B9k1Fx7T.js +13 -0
- package/docs/locations-CSxT0wIK.js +7 -0
- package/docs/lock-BWzWh9B7.js +8 -0
- package/docs/lock-E8wu8HD6.js +8 -0
- package/docs/lock-locked-D5lyHWqQ.js +7 -0
- package/docs/lock-unlock-WCjSz1i-.js +7 -0
- package/docs/lock-unlocked-CAJCLSet.js +8 -0
- package/docs/lock-unlocked-DExBKORh.js +8 -0
- package/docs/locker-B10MJtSA.js +7 -0
- package/docs/locker-Cqcf7p8D.js +10 -0
- package/docs/lol-D_JxRmpk.js +7 -0
- package/docs/lor-LgltaGp1.js +7 -0
- package/docs/lor-NF8M-dTl.js +7 -0
- package/docs/low-priority-CYw20_i6.js +9 -0
- package/docs/manage-dates-7pdHHIpP.js +8 -0
- package/docs/manage-dates-BvldV3qd.js +10 -0
- package/docs/manage-dates-edit-BL7TE5Ca.js +7 -0
- package/docs/manage-dates-offset-C36mTMRI.js +8 -0
- package/docs/manage-files-CztcMg2T.js +8 -0
- package/docs/manage-files-DjhMboB5.js +8 -0
- package/docs/manual-run-mkeXX4ZT.js +8 -0
- package/docs/media-BIt0cvtO.js +8 -0
- package/docs/media-BP3ScDqX.js +7 -0
- package/docs/meh-VZVAbZG3.js +7 -0
- package/docs/menu-Bax-k1Yb.js +9 -0
- package/docs/menu-hamburger-C2vj4eRY.js +7 -0
- package/docs/menu-hamburger-DjawJZYW.js +7 -0
- package/docs/menu-hamburger-JIneUuO7.js +7 -0
- package/docs/merge-9psevQT-.js +11 -0
- package/docs/message-new-C2a9sicZ.js +8 -0
- package/docs/messages-BfrTLnON.js +12 -0
- package/docs/messages-BlNvFjBH.js +7 -0
- package/docs/mic-B_QU0QmO.js +8 -0
- package/docs/mic-Dq5WbNIP.js +8 -0
- package/docs/mobile-DqC65aN6.js +6 -0
- package/docs/more-CfLcaduh.js +7 -0
- package/docs/move-down-D9PWLWhn.js +7 -0
- package/docs/move-down-DNE-3gT2.js +8 -0
- package/docs/move-to-Bt5a4Jcj.js +8 -0
- package/docs/move-to-CmhSXqJ1.js +8 -0
- package/docs/move-up-BaS-oCU5.js +7 -0
- package/docs/move-up-ByeMSeVd.js +8 -0
- package/docs/my-computer-DTsn7C9t.js +8 -0
- package/docs/navigate-BUpXfdU3.js +8 -0
- package/docs/navigate-D1BhWZtz.js +11 -0
- package/docs/new-line-8f0I71Mh.js +7 -0
- package/docs/new-window-B5Ln_cc3.js +8 -0
- package/docs/news-C1mrMSqE.js +7 -0
- package/docs/news-DlE9A-vs.js +9 -0
- package/docs/news-NiNcL5vl.js +8 -0
- package/docs/no-entry-C3dnCBCI.js +8 -0
- package/docs/notification-bell-D_RdfZKS.js +9 -0
- package/docs/nova-middleware/assets/anchor.js +350 -0
- package/docs/nova-middleware/assets/bass-addons.css +12 -0
- package/docs/nova-middleware/assets/bass.css +544 -0
- package/docs/nova-middleware/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
- package/docs/nova-middleware/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
- package/docs/nova-middleware/assets/fonts/LICENSE.txt +93 -0
- package/docs/nova-middleware/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
- package/docs/nova-middleware/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
- package/docs/nova-middleware/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
- package/docs/nova-middleware/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
- package/docs/nova-middleware/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
- package/docs/nova-middleware/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
- package/docs/nova-middleware/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
- package/docs/nova-middleware/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
- package/docs/nova-middleware/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
- package/docs/nova-middleware/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
- package/docs/nova-middleware/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
- package/docs/nova-middleware/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
- package/docs/nova-middleware/assets/fonts/source-code-pro.css +23 -0
- package/docs/nova-middleware/assets/github.css +123 -0
- package/docs/nova-middleware/assets/site.js +168 -0
- package/docs/nova-middleware/assets/split.css +15 -0
- package/docs/nova-middleware/assets/split.js +782 -0
- package/docs/nova-middleware/assets/style.css +147 -0
- package/docs/nova-middleware/index.html +406 -0
- package/docs/nova-model/assets/anchor.js +350 -0
- package/docs/nova-model/assets/bass-addons.css +12 -0
- package/docs/nova-model/assets/bass.css +544 -0
- package/docs/nova-model/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
- package/docs/nova-model/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
- package/docs/nova-model/assets/fonts/LICENSE.txt +93 -0
- package/docs/nova-model/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
- package/docs/nova-model/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
- package/docs/nova-model/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
- package/docs/nova-model/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
- package/docs/nova-model/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
- package/docs/nova-model/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
- package/docs/nova-model/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
- package/docs/nova-model/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
- package/docs/nova-model/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
- package/docs/nova-model/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
- package/docs/nova-model/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
- package/docs/nova-model/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
- package/docs/nova-model/assets/fonts/source-code-pro.css +23 -0
- package/docs/nova-model/assets/github.css +123 -0
- package/docs/nova-model/assets/site.js +168 -0
- package/docs/nova-model/assets/split.css +15 -0
- package/docs/nova-model/assets/split.js +782 -0
- package/docs/nova-model/assets/style.css +147 -0
- package/docs/nova-model/index.html +3244 -0
- package/docs/nova-utils/assets/anchor.js +350 -0
- package/docs/nova-utils/assets/bass-addons.css +12 -0
- package/docs/nova-utils/assets/bass.css +544 -0
- package/docs/nova-utils/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
- package/docs/nova-utils/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
- package/docs/nova-utils/assets/fonts/LICENSE.txt +93 -0
- package/docs/nova-utils/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
- package/docs/nova-utils/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
- package/docs/nova-utils/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
- package/docs/nova-utils/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
- package/docs/nova-utils/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
- package/docs/nova-utils/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
- package/docs/nova-utils/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
- package/docs/nova-utils/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
- package/docs/nova-utils/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
- package/docs/nova-utils/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
- package/docs/nova-utils/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
- package/docs/nova-utils/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
- package/docs/nova-utils/assets/fonts/source-code-pro.css +23 -0
- package/docs/nova-utils/assets/github.css +123 -0
- package/docs/nova-utils/assets/site.js +168 -0
- package/docs/nova-utils/assets/split.css +15 -0
- package/docs/nova-utils/assets/split.js +782 -0
- package/docs/nova-utils/assets/style.css +147 -0
- package/docs/nova-utils/index.html +986 -0
- package/docs/one-drive-B17qEGg3.js +10 -0
- package/docs/one-drive-DJkLjiFC.js +6 -0
- package/docs/online-C94s_rb_.js +10 -0
- package/docs/online-D-ZCoHHm.js +9 -0
- package/docs/online-rooms-1mVK1aGi.js +7 -0
- package/docs/online-rooms-CDdAm2UO.js +9 -0
- package/docs/outcomes-BBf-Ha_8.js +7 -0
- package/docs/outcomes-C0izuLnk.js +7 -0
- package/docs/password-DLPNSwzE.js +7 -0
- package/docs/password-Dh7gVC6R.js +7 -0
- package/docs/paste-B-PIibRN.js +7 -0
- package/docs/pause-ClttiH9R.js +9 -0
- package/docs/pause-CytomPFa.js +7 -0
- package/docs/pause-borderless-BI_BVCJy.js +8 -0
- package/docs/pic-C5FMoERH.js +7 -0
- package/docs/pic-CfSFIefC.js +8 -0
- package/docs/pic-Dmy_y4Fd.js +8 -0
- package/docs/pin-filled-CXkRNZ5O.js +7 -0
- package/docs/pin-filled-w3eah_ZK.js +7 -0
- package/docs/pin-hollow-DEWfTASy.js +7 -0
- package/docs/pin-hollow-DVbwzH1M.js +7 -0
- package/docs/play-DMAGMc2B.js +8 -0
- package/docs/play-DbZdG7Gq.js +7 -0
- package/docs/play-borderless-DqQ17-YW.js +7 -0
- package/docs/plus-default-DHk06f01.js +7 -0
- package/docs/plus-large-DfxPCCrT.js +7 -0
- package/docs/plus-large-thick-gmHCMimx.js +7 -0
- package/docs/preview-BgaRQpP1.js +9 -0
- package/docs/preview-DiNoAoRq.js +9 -0
- package/docs/preview-DucwBKG_.js +8 -0
- package/docs/print-YZ-X09iP.js +7 -0
- package/docs/print-p1KbTvQ3.js +8 -0
- package/docs/profile-default-CR9VzwIc.js +7 -0
- package/docs/profile-default-CrRCaKe0.js +7 -0
- package/docs/profile-default-DjZMHiLd.js +7 -0
- package/docs/profile-pic-B1r87rnD.js +8 -0
- package/docs/profile-pic-FXAOU2-x.js +7 -0
- package/docs/profile-pic-WGNyfyzw.js +7 -0
- package/docs/project-BmdrPymq.js +9 -0
- package/docs/publish-all-C91CIIOg.js +9 -0
- package/docs/publish-all-CgPj17Qp.js +9 -0
- package/docs/publish-to-lor-BzzkuSPc.js +8 -0
- package/docs/publish-to-lor-NqvGf8fs.js +10 -0
- package/docs/quicklink-C5CDhyK0.js +6 -0
- package/docs/quicklink-DpoklXCh.js +7 -0
- package/docs/quiz-submissions-BAMFpmlt.js +12 -0
- package/docs/quizzing-B5p4bkL1.js +7 -0
- package/docs/quizzing-Bn5KKwty.js +17 -0
- package/docs/quizzing-ZT1VsQDi.js +10 -0
- package/docs/read-DhyDmmkk.js +7 -0
- package/docs/read-DzsAK1Gp.js +7 -0
- package/docs/read-unread-BaKkzPgA.js +7 -0
- package/docs/read-unread-ayEnU2WS.js +7 -0
- package/docs/reading-V8BekXyi.js +9 -0
- package/docs/reading-Z7La5_yK.js +7 -0
- package/docs/redo-DqrjRBg2.js +7 -0
- package/docs/reflection-Bx089gqz.js +10 -0
- package/docs/reflection-CWFEnLpT.js +10 -0
- package/docs/refresh-CLDK3svm.js +7 -0
- package/docs/refresh-DAtZSM_N.js +7 -0
- package/docs/release-conditions-BXxl9Dlf.js +7 -0
- package/docs/release-conditions-OLqc9pTg.js +7 -0
- package/docs/remove-user-B26LnqCu.js +10 -0
- package/docs/remove-user-DNXiNHBs.js +10 -0
- package/docs/reorder-BIFjdLxG.js +7 -0
- package/docs/reorder-Y4_r1Ayt.js +7 -0
- package/docs/repeat-JHaa8nfm.js +7 -0
- package/docs/replied-D2ix7Rk6.js +8 -0
- package/docs/reply-BqzsKC85.js +7 -0
- package/docs/reply-CKQu6lmN.js +8 -0
- package/docs/reply-all-g5VAmAX4.js +8 -0
- package/docs/reporting-ChEapxxJ.js +9 -0
- package/docs/reporting-D3LvXPru.js +7 -0
- package/docs/reports-Beth_W4X.js +12 -0
- package/docs/resize-left-GFaUaulC.js +7 -0
- package/docs/resize-right-DT6LaX2w.js +7 -0
- package/docs/reverse-order-aSt4RUV4.js +7 -0
- package/docs/role-switch-DLSQpVpI.js +7 -0
- package/docs/rss-4WhjKoVd.js +7 -0
- package/docs/rss-Bkw2Vu26.js +9 -0
- package/docs/rubric-C7Bvkdy8.js +7 -0
- package/docs/rubric-DCEXGTtW.js +7 -0
- package/docs/rubric-graded-DRJ7bKvJ.js +13 -0
- package/docs/rubric-graded-UxgPY7mA.js +8 -0
- package/docs/rubrics-CbER8LnL.js +7 -0
- package/docs/sad-BoDjvLIi.js +7 -0
- package/docs/save-C6Wm6dlX.js +7 -0
- package/docs/save-jMj_12iN.js +8 -0
- package/docs/scorm-BEMJkg_y.js +6 -0
- package/docs/scorm-DSQ_wzsf.js +7 -0
- package/docs/scorm-DwyYD2cQ.js +7 -0
- package/docs/search-Ba4VfUac.js +8 -0
- package/docs/search-CcFHrjV6.js +7 -0
- package/docs/search-Cg93dHlN.js +7 -0
- package/docs/seating-CenUmq00.js +7 -0
- package/docs/seating-Diwp3OZ0.js +7 -0
- package/docs/self-assessment-DtdsDcKC.js +7 -0
- package/docs/self-assessment-YnMgOzTH.js +10 -0
- package/docs/send-WLvWpVV4.js +7 -0
- package/docs/send-kamyQxgU.js +7 -0
- package/docs/share-DGresL3N.js +7 -0
- package/docs/share-MaE8kOCt.js +8 -0
- package/docs/share-hollow-CfuLT6Gb.js +7 -0
- package/docs/share-parent-filled-CvoEBnpc.js +10 -0
- package/docs/share-parent-hollow-DyLlXxk9.js +10 -0
- package/docs/shout-B8aYlnCU.js +7 -0
- package/docs/smallscreen-CAmSoX_a.js +7 -0
- package/docs/smallscreen-CJyGrrRY.js +7 -0
- package/docs/sort-type-Ccq_znjS.js +10 -0
- package/docs/source-editor-Bp_3QBP_.js +7 -0
- package/docs/spellcheck-Besf5dkX.js +8 -0
- package/docs/spellcheck-DOYSjTvo.js +8 -0
- package/docs/stop-DWabYiNA.js +8 -0
- package/docs/stop-borderless-CxP7Xjd-.js +7 -0
- package/docs/strikethrough-DBZqp7V2.js +7 -0
- package/docs/style-BbyPYYVo.js +7 -0
- package/docs/style-CDgs5AnH.js +7 -0
- package/docs/subscribe-filled-BQyc3NsS.js +7 -0
- package/docs/subscribe-filled-DnVzUac6.js +7 -0
- package/docs/subscribe-hollow-45odrrmr.js +7 -0
- package/docs/subscribe-hollow-C6hluycF.js +7 -0
- package/docs/subscript-BjAIARSd.js +7 -0
- package/docs/superscript-Bhxn6gvd.js +7 -0
- package/docs/support-DUKjOc66.js +7 -0
- package/docs/surveys-BE8aGBrC.js +7 -0
- package/docs/surveys-DoAUhIgW.js +11 -0
- package/docs/syllabus-CkqNQZI-.js +7 -0
- package/docs/syllabus-Dp2bL_st.js +8 -0
- package/docs/syllabus-QUazS8jY.js +8 -0
- package/docs/symbol-Bc-zvfel.js +7 -0
- package/docs/table-cell-merge-BE8joEWx.js +8 -0
- package/docs/table-cell-properties-CMFT10BB.js +8 -0
- package/docs/table-cell-split-DDUBTvcc.js +7 -0
- package/docs/table-column-insert-after-DzN38SQI.js +7 -0
- package/docs/table-column-insert-before-DeAvcikX.js +7 -0
- package/docs/table-column-remove-DYiXM8Jb.js +8 -0
- package/docs/table-delete-40sq_iUx.js +8 -0
- package/docs/table-of-contents-CpoMBmA3.js +7 -0
- package/docs/table-of-contents-DmVLblsk.js +11 -0
- package/docs/table-properties-C1ZRZ4ga.js +8 -0
- package/docs/table-row-copy-C0NVkTuO.js +8 -0
- package/docs/table-row-cut-D8ApKTxR.js +7 -0
- package/docs/table-row-insert-after-ZiQdbITr.js +7 -0
- package/docs/table-row-insert-before-DOqBNAv2.js +7 -0
- package/docs/table-row-paste-above-svu4TZL-.js +7 -0
- package/docs/table-row-paste-below-DnVjYP_H.js +7 -0
- package/docs/table-row-properties-DKKmT8xi.js +8 -0
- package/docs/table-row-remove-BpX_iTdC.js +8 -0
- package/docs/tag-CLCrd3YD.js +9 -0
- package/docs/tag-Dvlrl1rN.js +7 -0
- package/docs/tag-hollow-C4R57T76.js +8 -0
- package/docs/thumbs-down-_y6J-GBx.js +7 -0
- package/docs/thumbs-up-DmpTufP-.js +14 -0
- package/docs/tile-view-DAEgJlr5.js +12 -0
- package/docs/time-j7PVTeX4.js +7 -0
- package/docs/time-y--dvj05.js +8 -0
- package/docs/tools-ApXN5SG4.js +8 -0
- package/docs/tools-CI_7JQXe.js +7 -0
- package/docs/topic-last-CBI3iGxL.js +8 -0
- package/docs/topic-last-Db8wiEGR.js +8 -0
- package/docs/turnitin-HVqx-UXy.js +8 -0
- package/docs/unapproved-DWiZCrwv.js +10 -0
- package/docs/unapproved-Dhu_8xZD.js +10 -0
- package/docs/underline-DxnwXTaI.js +7 -0
- package/docs/undo-Di_HG7p_.js +7 -0
- package/docs/undo-KeM-So3F.js +7 -0
- package/docs/unsaved-Cc_mMbdm.js +10 -0
- package/docs/unsaved-DeP04L83.js +8 -0
- package/docs/upload-AImNeKVm.js +8 -0
- package/docs/upload-BIQxUfMy.js +8 -0
- package/docs/upload-nuZBVJjg.js +8 -0
- package/docs/user-competencies-8dMwEPL6.js +7 -0
- package/docs/user-competencies-Y57bDKtV.js +19 -0
- package/docs/user-progress-CUzNTpLo.js +10 -0
- package/docs/user-progress-DQUFGV7M.js +10 -0
- package/docs/validate-TiDv-LdA.js +16 -0
- package/docs/video-assignment-C-Eh-N2b.js +10 -0
- package/docs/video-assignment-DJhOt4CY.js +11 -0
- package/docs/view-submission-list-D56QhpGG.js +13 -0
- package/docs/view-submission-list-KS3OLMnE.js +15 -0
- package/docs/viewed-notviewed-CSNppbac.js +7 -0
- package/docs/virtual-classroom-Cxhu5Mw0.js +10 -0
- package/docs/virtual-classroom-De9_fVB7.js +6 -0
- package/docs/visibility-conditional-BbN-53aD.js +9 -0
- package/docs/visibility-hide-B2KKT0mx.js +7 -0
- package/docs/visibility-hide-Bctc7bkg.js +7 -0
- package/docs/visibility-show-BD2PP0kM.js +8 -0
- package/docs/visibility-show-BwU9PNHL.js +7 -0
- package/docs/volume-CYc0W77d.js +8 -0
- package/docs/volume-DrPpJaf1.js +7 -0
- package/docs/volume-muted-CK8EQ9dK.js +12 -0
- package/docs/volume-muted-D2mJNGq6.js +7 -0
- package/docs/widgets-BEcQiVkC.js +12 -0
- package/docs/wizard-D-phsxRW.js +11 -0
- package/docs/wizard-cZqtBjee.js +11 -0
- package/docs/zoom-in-Dpu97xmF.js +7 -0
- package/docs/zoom-out-Cu3SsLeV.js +7 -0
- package/docs-base/index.html +22 -0
- package/docs-base/nova-shared-repository.js +54 -0
- package/docs-base/package-info.js +26 -0
- package/index.js +21 -0
- package/package.json +59 -0
- package/packages/drivers/README.md +5 -0
- package/packages/drivers/docs/assets/anchor.js +350 -0
- package/packages/drivers/docs/assets/bass-addons.css +12 -0
- package/packages/drivers/docs/assets/bass.css +544 -0
- package/packages/drivers/docs/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
- package/packages/drivers/docs/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
- package/packages/drivers/docs/assets/fonts/LICENSE.txt +93 -0
- package/packages/drivers/docs/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
- package/packages/drivers/docs/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
- package/packages/drivers/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
- package/packages/drivers/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
- package/packages/drivers/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
- package/packages/drivers/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
- package/packages/drivers/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
- package/packages/drivers/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
- package/packages/drivers/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
- package/packages/drivers/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
- package/packages/drivers/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
- package/packages/drivers/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
- package/packages/drivers/docs/assets/fonts/source-code-pro.css +23 -0
- package/packages/drivers/docs/assets/github.css +123 -0
- package/packages/drivers/docs/assets/site.js +168 -0
- package/packages/drivers/docs/assets/split.css +15 -0
- package/packages/drivers/docs/assets/split.js +782 -0
- package/packages/drivers/docs/assets/style.css +147 -0
- package/packages/drivers/docs/index.html +6180 -0
- package/packages/drivers/index.js +10 -0
- package/packages/drivers/package.json +31 -0
- package/packages/drivers/src/aws/aws-base-driver.js +34 -0
- package/packages/drivers/src/aws/dynamodb.js +230 -0
- package/packages/drivers/src/aws/secrets-manager.js +52 -0
- package/packages/drivers/src/aws/sqs.js +140 -0
- package/packages/drivers/src/config.js +13 -0
- package/packages/drivers/src/http.js +162 -0
- package/packages/drivers/src/kraken-driver.js +28 -0
- package/packages/drivers/src/nova-driver.js +32 -0
- package/packages/drivers/src/oauth.js +145 -0
- package/packages/drivers/src/wave.js +83 -0
- package/packages/drivers/test/.eslintrc.yaml +27 -0
- package/packages/drivers/test/aws/dynamodb.test.js +119 -0
- package/packages/drivers/test/aws/secrets-manager.js +146 -0
- package/packages/drivers/test/http.test.js +118 -0
- package/packages/drivers/test/oauth.test.js +211 -0
- package/packages/drivers/test/wave.test.js +109 -0
- package/packages/nova-middleware/README.md +5 -0
- package/packages/nova-middleware/docs/assets/anchor.js +350 -0
- package/packages/nova-middleware/docs/assets/bass-addons.css +12 -0
- package/packages/nova-middleware/docs/assets/bass.css +544 -0
- package/packages/nova-middleware/docs/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
- package/packages/nova-middleware/docs/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
- package/packages/nova-middleware/docs/assets/fonts/LICENSE.txt +93 -0
- package/packages/nova-middleware/docs/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
- package/packages/nova-middleware/docs/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
- package/packages/nova-middleware/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
- package/packages/nova-middleware/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
- package/packages/nova-middleware/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
- package/packages/nova-middleware/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
- package/packages/nova-middleware/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
- package/packages/nova-middleware/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
- package/packages/nova-middleware/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
- package/packages/nova-middleware/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
- package/packages/nova-middleware/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
- package/packages/nova-middleware/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
- package/packages/nova-middleware/docs/assets/fonts/source-code-pro.css +23 -0
- package/packages/nova-middleware/docs/assets/github.css +123 -0
- package/packages/nova-middleware/docs/assets/site.js +168 -0
- package/packages/nova-middleware/docs/assets/split.css +15 -0
- package/packages/nova-middleware/docs/assets/split.js +782 -0
- package/packages/nova-middleware/docs/assets/style.css +147 -0
- package/packages/nova-middleware/docs/index.html +406 -0
- package/packages/nova-middleware/index.js +2 -0
- package/packages/nova-middleware/package.json +21 -0
- package/packages/nova-middleware/src/distributed-logging-middleware.js +36 -0
- package/packages/nova-middleware/src/oauth-middleware.js +63 -0
- package/packages/nova-middleware/test/.eslintrc.yaml +27 -0
- package/packages/nova-middleware/test/oauth-middleware.test.js +14 -0
- package/packages/nova-model/README.md +5 -0
- package/packages/nova-model/docs/assets/anchor.js +350 -0
- package/packages/nova-model/docs/assets/bass-addons.css +12 -0
- package/packages/nova-model/docs/assets/bass.css +544 -0
- package/packages/nova-model/docs/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
- package/packages/nova-model/docs/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
- package/packages/nova-model/docs/assets/fonts/LICENSE.txt +93 -0
- package/packages/nova-model/docs/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
- package/packages/nova-model/docs/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
- package/packages/nova-model/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
- package/packages/nova-model/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
- package/packages/nova-model/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
- package/packages/nova-model/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
- package/packages/nova-model/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
- package/packages/nova-model/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
- package/packages/nova-model/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
- package/packages/nova-model/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
- package/packages/nova-model/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
- package/packages/nova-model/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
- package/packages/nova-model/docs/assets/fonts/source-code-pro.css +23 -0
- package/packages/nova-model/docs/assets/github.css +123 -0
- package/packages/nova-model/docs/assets/site.js +168 -0
- package/packages/nova-model/docs/assets/split.css +15 -0
- package/packages/nova-model/docs/assets/split.js +782 -0
- package/packages/nova-model/docs/assets/style.css +147 -0
- package/packages/nova-model/docs/index.html +3244 -0
- package/packages/nova-model/index.js +6 -0
- package/packages/nova-model/package.json +19 -0
- package/packages/nova-model/src/model/api-token.js +27 -0
- package/packages/nova-model/src/model/models/nova-user.js +55 -0
- package/packages/nova-model/src/model/nova-model.js +184 -0
- package/packages/nova-model/src/model/nova-schema.js +154 -0
- package/packages/nova-model/src/repo/api-token.js +12 -0
- package/packages/nova-model/src/repo/nova-model-repo.js +203 -0
- package/packages/nova-model/test/.eslintrc.yaml +27 -0
- package/packages/nova-model/test/nova-model.test.js +123 -0
- package/packages/nova-utils/README.md +5 -0
- package/packages/nova-utils/docs/assets/anchor.js +350 -0
- package/packages/nova-utils/docs/assets/bass-addons.css +12 -0
- package/packages/nova-utils/docs/assets/bass.css +544 -0
- package/packages/nova-utils/docs/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
- package/packages/nova-utils/docs/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
- package/packages/nova-utils/docs/assets/fonts/LICENSE.txt +93 -0
- package/packages/nova-utils/docs/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
- package/packages/nova-utils/docs/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
- package/packages/nova-utils/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
- package/packages/nova-utils/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
- package/packages/nova-utils/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
- package/packages/nova-utils/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
- package/packages/nova-utils/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
- package/packages/nova-utils/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
- package/packages/nova-utils/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
- package/packages/nova-utils/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
- package/packages/nova-utils/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
- package/packages/nova-utils/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
- package/packages/nova-utils/docs/assets/fonts/source-code-pro.css +23 -0
- package/packages/nova-utils/docs/assets/github.css +123 -0
- package/packages/nova-utils/docs/assets/site.js +168 -0
- package/packages/nova-utils/docs/assets/split.css +15 -0
- package/packages/nova-utils/docs/assets/split.js +782 -0
- package/packages/nova-utils/docs/assets/style.css +147 -0
- package/packages/nova-utils/docs/index.html +986 -0
- package/packages/nova-utils/index.js +3 -0
- package/packages/nova-utils/package.json +19 -0
- package/packages/nova-utils/src/config.js +228 -0
- package/packages/nova-utils/src/logger.js +26 -0
- package/packages/nova-utils/src/tenant-utils.js +27 -0
- package/packages/nova-utils/test/config.test.js +250 -0
- package/packages/nova-utils/test/tenant-utiils.test.js +50 -0
- package/pnpm-workspace.yaml +2 -0
- package/rollup.config.js +13 -0
- package/scripts/.eslintrc.yaml +25 -0
- package/scripts/aggregate-docs.js +81 -0
- package/scripts/bump-version.js +26 -0
- package/scripts/create-index.js +30 -0
- package/scripts/create-library-template/README.md +5 -0
- package/scripts/create-library-template/package.json +19 -0
- package/scripts/create-library.js +62 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
.documentation {
|
|
2
|
+
font-family: Helvetica, sans-serif;
|
|
3
|
+
color: #666;
|
|
4
|
+
line-height: 1.5;
|
|
5
|
+
background: #f5f5f5;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.black {
|
|
9
|
+
color: #666;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.bg-white {
|
|
13
|
+
background-color: #fff;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
h4 {
|
|
17
|
+
margin: 20px 0 10px 0;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.documentation h3 {
|
|
21
|
+
color: #000;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.border-bottom {
|
|
25
|
+
border-color: #ddd;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
a {
|
|
29
|
+
color: #1184ce;
|
|
30
|
+
text-decoration: none;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.documentation a[href]:hover {
|
|
34
|
+
text-decoration: underline;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
a:hover {
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.py1-ul li {
|
|
42
|
+
padding: 5px 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.max-height-100 {
|
|
46
|
+
max-height: 100%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.height-viewport-100 {
|
|
50
|
+
height: 100vh;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
section:target h3 {
|
|
54
|
+
font-weight: 700;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.documentation td,
|
|
58
|
+
.documentation th {
|
|
59
|
+
padding: 0.25rem 0.25rem;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
h1:hover .anchorjs-link,
|
|
63
|
+
h2:hover .anchorjs-link,
|
|
64
|
+
h3:hover .anchorjs-link,
|
|
65
|
+
h4:hover .anchorjs-link {
|
|
66
|
+
opacity: 1;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.fix-3 {
|
|
70
|
+
width: 25%;
|
|
71
|
+
max-width: 244px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.fix-3 {
|
|
75
|
+
width: 25%;
|
|
76
|
+
max-width: 244px;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@media (min-width: 52em) {
|
|
80
|
+
.fix-margin-3 {
|
|
81
|
+
margin-left: 25%;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.pre,
|
|
86
|
+
pre,
|
|
87
|
+
code,
|
|
88
|
+
.code {
|
|
89
|
+
font-family: Source Code Pro, Menlo, Consolas, Liberation Mono, monospace;
|
|
90
|
+
font-size: 14px;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.fill-light {
|
|
94
|
+
background: #f9f9f9;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.width2 {
|
|
98
|
+
width: 1rem;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.input {
|
|
102
|
+
font-family: inherit;
|
|
103
|
+
display: block;
|
|
104
|
+
width: 100%;
|
|
105
|
+
height: 2rem;
|
|
106
|
+
padding: 0.5rem;
|
|
107
|
+
margin-bottom: 1rem;
|
|
108
|
+
border: 1px solid #ccc;
|
|
109
|
+
font-size: 0.875rem;
|
|
110
|
+
border-radius: 3px;
|
|
111
|
+
box-sizing: border-box;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
table {
|
|
115
|
+
border-collapse: collapse;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.prose table th,
|
|
119
|
+
.prose table td {
|
|
120
|
+
text-align: left;
|
|
121
|
+
padding: 8px;
|
|
122
|
+
border: 1px solid #ddd;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.prose table th:nth-child(1) {
|
|
126
|
+
border-right: none;
|
|
127
|
+
}
|
|
128
|
+
.prose table th:nth-child(2) {
|
|
129
|
+
border-left: none;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.prose table {
|
|
133
|
+
border: 1px solid #ddd;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.prose-big {
|
|
137
|
+
font-size: 18px;
|
|
138
|
+
line-height: 30px;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.quiet {
|
|
142
|
+
opacity: 0.7;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.minishadow {
|
|
146
|
+
box-shadow: 2px 2px 10px #f3f3f3;
|
|
147
|
+
}
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset='utf-8'>
|
|
5
|
+
<title>@skillswaveca/nova-middleware 1.0.0 | Documentation</title>
|
|
6
|
+
<meta name='description' content='A collection of middleware used by nova projects'>
|
|
7
|
+
<meta name='viewport' content='width=device-width,initial-scale=1'>
|
|
8
|
+
<link href='assets/bass.css' rel='stylesheet'>
|
|
9
|
+
<link href='assets/style.css' rel='stylesheet'>
|
|
10
|
+
<link href='assets/github.css' rel='stylesheet'>
|
|
11
|
+
<link href='assets/split.css' rel='stylesheet'>
|
|
12
|
+
</head>
|
|
13
|
+
<body class='documentation m0'>
|
|
14
|
+
<div class='flex'>
|
|
15
|
+
<div id='split-left' class='overflow-auto fs0 height-viewport-100'>
|
|
16
|
+
<div class='py1 px2'>
|
|
17
|
+
<h3 class='mb0 no-anchor'>@skillswaveca/nova-middleware</h3>
|
|
18
|
+
<div class='mb1'><code>1.0.0</code></div>
|
|
19
|
+
<input
|
|
20
|
+
placeholder='Filter'
|
|
21
|
+
id='filter-input'
|
|
22
|
+
class='col12 block input'
|
|
23
|
+
spellcheck='false'
|
|
24
|
+
autocapitalize='off'
|
|
25
|
+
autocorrect='off'
|
|
26
|
+
type='text' />
|
|
27
|
+
<div id='toc'>
|
|
28
|
+
<ul class='list-reset h5 py1-ul'>
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
<li><a
|
|
32
|
+
href='#distributedloggingmiddleware'
|
|
33
|
+
class="">
|
|
34
|
+
distributedLoggingMiddleware
|
|
35
|
+
|
|
36
|
+
</a>
|
|
37
|
+
|
|
38
|
+
</li>
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
<li><a
|
|
42
|
+
href='#oauthmiddleware'
|
|
43
|
+
class="">
|
|
44
|
+
oauthMiddleware
|
|
45
|
+
|
|
46
|
+
</a>
|
|
47
|
+
|
|
48
|
+
</li>
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
<li><a
|
|
52
|
+
href='#expressoauthmiddleware'
|
|
53
|
+
class="">
|
|
54
|
+
expressOauthMiddleware
|
|
55
|
+
|
|
56
|
+
</a>
|
|
57
|
+
|
|
58
|
+
</li>
|
|
59
|
+
|
|
60
|
+
</ul>
|
|
61
|
+
</div>
|
|
62
|
+
<div class='mt1 h6 quiet'>
|
|
63
|
+
<a href='https://documentation.js.org/reading-documentation.html'>Need help reading this?</a>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
<div id='split-right' class='relative overflow-auto height-viewport-100'>
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
<section class='p2 mb2 clearfix bg-white minishadow'>
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<div class='clearfix'>
|
|
74
|
+
|
|
75
|
+
<h3 class='fl m0' id='distributedloggingmiddleware'>
|
|
76
|
+
distributedLoggingMiddleware
|
|
77
|
+
</h3>
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
<p>Koa middleware for log synchronization across multiple services.
|
|
84
|
+
Provides a log context with <code>x-nova-request-id</code> as a default log value
|
|
85
|
+
that can be used to sync logs across services. Also provides the property
|
|
86
|
+
<code>context.novaRequestId</code> that can be used to get the current request id when
|
|
87
|
+
trigger external services.</p>
|
|
88
|
+
<p>If a request does not contain a header <code>x-nova-request-id</code> then a new
|
|
89
|
+
uuid will be provided.</p>
|
|
90
|
+
|
|
91
|
+
<div class='pre p1 fill-light mt0'>distributedLoggingMiddleware</div>
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
<div class='py1 quiet mt1 prose-big'>Returns</div>
|
|
109
|
+
<code>((function (any, any): <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><void>) | any)</code>:
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
</section>
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
<section class='p2 mb2 clearfix bg-white minishadow'>
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
<div class='clearfix'>
|
|
137
|
+
|
|
138
|
+
<h3 class='fl m0' id='oauthmiddleware'>
|
|
139
|
+
oauthMiddleware
|
|
140
|
+
</h3>
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
<p>Koa middleware for OAuth token verification</p>
|
|
147
|
+
|
|
148
|
+
<div class='pre p1 fill-light mt0'>oauthMiddleware</div>
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
<div class='py1 quiet mt1 prose-big'>Parameters</div>
|
|
161
|
+
<div class='prose'>
|
|
162
|
+
|
|
163
|
+
<div class='space-bottom0'>
|
|
164
|
+
<div>
|
|
165
|
+
<span class='code bold'>$0</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a>)</code>
|
|
166
|
+
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
<table class='mt1 mb2 fixed-table h5 col-12'>
|
|
170
|
+
<colgroup>
|
|
171
|
+
<col width='30%' />
|
|
172
|
+
<col width='70%' />
|
|
173
|
+
</colgroup>
|
|
174
|
+
<thead>
|
|
175
|
+
<tr class='bold fill-light'>
|
|
176
|
+
<th>Name</th>
|
|
177
|
+
<th>Description</th>
|
|
178
|
+
</tr>
|
|
179
|
+
</thead>
|
|
180
|
+
<tbody class='mt1'>
|
|
181
|
+
|
|
182
|
+
<tr>
|
|
183
|
+
<td class='break-word'><span class='code bold'>$0.audience</span> <code class='quiet'>any</code>
|
|
184
|
+
</td>
|
|
185
|
+
<td class='break-word'><span></span></td>
|
|
186
|
+
</tr>
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
<tr>
|
|
191
|
+
<td class='break-word'><span class='code bold'>$0.issuer</span> <code class='quiet'>any</code>
|
|
192
|
+
</td>
|
|
193
|
+
<td class='break-word'><span></span></td>
|
|
194
|
+
</tr>
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
<tr>
|
|
199
|
+
<td class='break-word'><span class='code bold'>$0.jwksUrl</span> <code class='quiet'>any</code>
|
|
200
|
+
</td>
|
|
201
|
+
<td class='break-word'><span></span></td>
|
|
202
|
+
</tr>
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
</tbody>
|
|
207
|
+
</table>
|
|
208
|
+
|
|
209
|
+
</div>
|
|
210
|
+
|
|
211
|
+
<div class='space-bottom0'>
|
|
212
|
+
<div>
|
|
213
|
+
<span class='code bold'>audience</span> <code class='quiet'>(any)</code>
|
|
214
|
+
|
|
215
|
+
</div>
|
|
216
|
+
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
<div class='space-bottom0'>
|
|
220
|
+
<div>
|
|
221
|
+
<span class='code bold'>issuer</span> <code class='quiet'>(any)</code>
|
|
222
|
+
|
|
223
|
+
</div>
|
|
224
|
+
|
|
225
|
+
</div>
|
|
226
|
+
|
|
227
|
+
<div class='space-bottom0'>
|
|
228
|
+
<div>
|
|
229
|
+
<span class='code bold'>jwksUrl</span> <code class='quiet'>(any)</code>
|
|
230
|
+
|
|
231
|
+
</div>
|
|
232
|
+
|
|
233
|
+
</div>
|
|
234
|
+
|
|
235
|
+
</div>
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
<div class='py1 quiet mt1 prose-big'>Returns</div>
|
|
243
|
+
<code>((function (any, any): <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><void>) | any)</code>:
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
</section>
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
<section class='p2 mb2 clearfix bg-white minishadow'>
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
<div class='clearfix'>
|
|
271
|
+
|
|
272
|
+
<h3 class='fl m0' id='expressoauthmiddleware'>
|
|
273
|
+
expressOauthMiddleware
|
|
274
|
+
</h3>
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
</div>
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
<p>Express middleware for OAuth token verification</p>
|
|
281
|
+
|
|
282
|
+
<div class='pre p1 fill-light mt0'>expressOauthMiddleware</div>
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
<div class='py1 quiet mt1 prose-big'>Parameters</div>
|
|
295
|
+
<div class='prose'>
|
|
296
|
+
|
|
297
|
+
<div class='space-bottom0'>
|
|
298
|
+
<div>
|
|
299
|
+
<span class='code bold'>$0</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a>)</code>
|
|
300
|
+
|
|
301
|
+
</div>
|
|
302
|
+
|
|
303
|
+
<table class='mt1 mb2 fixed-table h5 col-12'>
|
|
304
|
+
<colgroup>
|
|
305
|
+
<col width='30%' />
|
|
306
|
+
<col width='70%' />
|
|
307
|
+
</colgroup>
|
|
308
|
+
<thead>
|
|
309
|
+
<tr class='bold fill-light'>
|
|
310
|
+
<th>Name</th>
|
|
311
|
+
<th>Description</th>
|
|
312
|
+
</tr>
|
|
313
|
+
</thead>
|
|
314
|
+
<tbody class='mt1'>
|
|
315
|
+
|
|
316
|
+
<tr>
|
|
317
|
+
<td class='break-word'><span class='code bold'>$0.audience</span> <code class='quiet'>any</code>
|
|
318
|
+
</td>
|
|
319
|
+
<td class='break-word'><span></span></td>
|
|
320
|
+
</tr>
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
<tr>
|
|
325
|
+
<td class='break-word'><span class='code bold'>$0.issuer</span> <code class='quiet'>any</code>
|
|
326
|
+
</td>
|
|
327
|
+
<td class='break-word'><span></span></td>
|
|
328
|
+
</tr>
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
<tr>
|
|
333
|
+
<td class='break-word'><span class='code bold'>$0.jwksUrl</span> <code class='quiet'>any</code>
|
|
334
|
+
</td>
|
|
335
|
+
<td class='break-word'><span></span></td>
|
|
336
|
+
</tr>
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
</tbody>
|
|
341
|
+
</table>
|
|
342
|
+
|
|
343
|
+
</div>
|
|
344
|
+
|
|
345
|
+
<div class='space-bottom0'>
|
|
346
|
+
<div>
|
|
347
|
+
<span class='code bold'>audience</span> <code class='quiet'>(any)</code>
|
|
348
|
+
|
|
349
|
+
</div>
|
|
350
|
+
|
|
351
|
+
</div>
|
|
352
|
+
|
|
353
|
+
<div class='space-bottom0'>
|
|
354
|
+
<div>
|
|
355
|
+
<span class='code bold'>issuer</span> <code class='quiet'>(any)</code>
|
|
356
|
+
|
|
357
|
+
</div>
|
|
358
|
+
|
|
359
|
+
</div>
|
|
360
|
+
|
|
361
|
+
<div class='space-bottom0'>
|
|
362
|
+
<div>
|
|
363
|
+
<span class='code bold'>jwksUrl</span> <code class='quiet'>(any)</code>
|
|
364
|
+
|
|
365
|
+
</div>
|
|
366
|
+
|
|
367
|
+
</div>
|
|
368
|
+
|
|
369
|
+
</div>
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
<div class='py1 quiet mt1 prose-big'>Returns</div>
|
|
377
|
+
<code>((function (any, any, any): <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><void>) | any)</code>:
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
</section>
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
</div>
|
|
401
|
+
</div>
|
|
402
|
+
<script src='assets/anchor.js'></script>
|
|
403
|
+
<script src='assets/split.js'></script>
|
|
404
|
+
<script src='assets/site.js'></script>
|
|
405
|
+
</body>
|
|
406
|
+
</html>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "module",
|
|
3
|
+
"name": "@skillswaveca/nova-middleware",
|
|
4
|
+
"description": "A collection of middleware used by nova projects",
|
|
5
|
+
"repository": "https://github.com/SkillsWave/nova-shared-libraries",
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"main": "index.js",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"create-index": "node ../../scripts/create-index.js",
|
|
10
|
+
"generate-docs": "documentation build src/** -f html -o docs",
|
|
11
|
+
"test": "mocha --parallel 'test/**/*.test.js'"
|
|
12
|
+
},
|
|
13
|
+
"author": "SkillsWave",
|
|
14
|
+
"license": "UNLICENSED",
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"jsonwebtoken": "^9.0.2",
|
|
19
|
+
"jwk-to-pem": "^2.0.5"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
|
|
3
|
+
import logger from '../../nova-utils/src/logger.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Koa middleware for log synchronization across multiple services.
|
|
7
|
+
* Provides a log context with `x-nova-request-id` as a default log value
|
|
8
|
+
* that can be used to sync logs across services. Also provides the property
|
|
9
|
+
* `context.novaRequestId` that can be used to get the current request id when
|
|
10
|
+
* trigger external services.
|
|
11
|
+
*
|
|
12
|
+
* If a request does not contain a header `x-nova-request-id` then a new
|
|
13
|
+
* uuid will be provided.
|
|
14
|
+
*
|
|
15
|
+
* @returns {(function(*, *): Promise<void>)|*}
|
|
16
|
+
*/
|
|
17
|
+
export const distributedLoggingMiddleware = () => {
|
|
18
|
+
return async(context, next) => {
|
|
19
|
+
if (!context.log) {
|
|
20
|
+
context.log = logger;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const defaultLogger = context.log;
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
const novaRequestId = context.request.headers['x-nova-request-id'] || uuidv4();
|
|
27
|
+
context.log = context.log.child({ 'x-nova-request-id': novaRequestId });
|
|
28
|
+
context.novaRequestId = novaRequestId;
|
|
29
|
+
} catch (error) {
|
|
30
|
+
context.log.error({ error: error.message }, 'Distributed Logging Middleware: Error');
|
|
31
|
+
context.log = defaultLogger;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
await next();
|
|
35
|
+
};
|
|
36
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import jwkToPem from 'jwk-to-pem';
|
|
2
|
+
import jwt from 'jsonwebtoken';
|
|
3
|
+
|
|
4
|
+
const _verifyToken = async(authHeader, jwksUrl, audience, issuer) => {
|
|
5
|
+
const token = authHeader.replace('Bearer ', '');
|
|
6
|
+
const response = await fetch(jwksUrl);
|
|
7
|
+
const { keys } = await response.json();
|
|
8
|
+
|
|
9
|
+
// Extract the key used for RS256
|
|
10
|
+
const signingKey = keys.find(key => key.use === 'sig' && key.alg === 'RS256' && jwt.decode(token, { complete: true })?.header?.kid);
|
|
11
|
+
|
|
12
|
+
if (!signingKey) {
|
|
13
|
+
throw new Error('Signing key not found');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Convert JWK to PEM for verification
|
|
17
|
+
const pem = jwkToPem(signingKey);
|
|
18
|
+
|
|
19
|
+
// Verify the token
|
|
20
|
+
jwt.verify(token, pem, { algorithms: ['RS256'], audience, issuer });
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Koa middleware for OAuth token verification
|
|
25
|
+
* @param audience
|
|
26
|
+
* @param issuer
|
|
27
|
+
* @param jwksUrl
|
|
28
|
+
* @returns {(function(*, *): Promise<void>)|*}
|
|
29
|
+
*/
|
|
30
|
+
export const oauthMiddleware = ({ audience, issuer, jwksUrl }) => {
|
|
31
|
+
return async(ctx, next) => {
|
|
32
|
+
const authHeader = ctx.headers.authorization || '';
|
|
33
|
+
|
|
34
|
+
try {
|
|
35
|
+
await _verifyToken(authHeader, jwksUrl, audience, issuer);
|
|
36
|
+
} catch (error) {
|
|
37
|
+
ctx.status = 401;
|
|
38
|
+
ctx.body = { message: 'Invalid or expired token', error: error.message };
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
await next();
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Express middleware for OAuth token verification
|
|
47
|
+
* @param audience
|
|
48
|
+
* @param issuer
|
|
49
|
+
* @param jwksUrl
|
|
50
|
+
* @returns {(function(*, *, *): Promise<void>)|*}
|
|
51
|
+
*/
|
|
52
|
+
export const expressOauthMiddleware = ({ audience, issuer, jwksUrl }) => {
|
|
53
|
+
return async(req, res, next) => {
|
|
54
|
+
const authHeader = req.headers.authorization || '';
|
|
55
|
+
try {
|
|
56
|
+
await _verifyToken(authHeader, jwksUrl, audience, issuer);
|
|
57
|
+
} catch (error) {
|
|
58
|
+
res.status(401).json({ message: 'Invalid or expired token', error: error.message });
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
next();
|
|
62
|
+
};
|
|
63
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
extends:
|
|
2
|
+
- brightspace/testing-config
|
|
3
|
+
|
|
4
|
+
rules:
|
|
5
|
+
indent:
|
|
6
|
+
- error
|
|
7
|
+
- 2
|
|
8
|
+
- SwitchCase: 1
|
|
9
|
+
no-console:
|
|
10
|
+
- off
|
|
11
|
+
sort-imports:
|
|
12
|
+
- error
|
|
13
|
+
- ignoreCase: true
|
|
14
|
+
ignoreDeclarationSort: false
|
|
15
|
+
ignoreMemberSort: false
|
|
16
|
+
memberSyntaxSortOrder:
|
|
17
|
+
- none
|
|
18
|
+
- all
|
|
19
|
+
- multiple
|
|
20
|
+
- single
|
|
21
|
+
allowSeparatedGroups: true
|
|
22
|
+
import/no-extraneous-dependencies:
|
|
23
|
+
- error
|
|
24
|
+
- devDependencies:
|
|
25
|
+
- "**/test/**/*.js"
|
|
26
|
+
- "**/*.spec.js"
|
|
27
|
+
- "**/*.test.js"
|