@internetarchive/collection-browser 1.8.0 → 1.9.0-alpha2

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.
Files changed (269) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +26 -26
  3. package/.github/workflows/gh-pages-main.yml +39 -39
  4. package/.github/workflows/npm-publish.yml +39 -39
  5. package/.github/workflows/pr-preview.yml +38 -38
  6. package/.husky/pre-commit +4 -4
  7. package/LICENSE +661 -661
  8. package/README.md +83 -83
  9. package/dist/index.d.ts +9 -9
  10. package/dist/index.js +9 -9
  11. package/dist/src/app-root.d.ts +54 -54
  12. package/dist/src/app-root.js +293 -293
  13. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  14. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  15. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  16. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  17. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  18. package/dist/src/assets/img/icons/chevron.js +2 -2
  19. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  20. package/dist/src/assets/img/icons/contract.js +2 -2
  21. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  22. package/dist/src/assets/img/icons/empty-query.js +2 -2
  23. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  24. package/dist/src/assets/img/icons/expand.js +2 -2
  25. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  26. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  27. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  28. package/dist/src/assets/img/icons/eye.js +2 -2
  29. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  30. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  31. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  32. package/dist/src/assets/img/icons/login-required.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  59. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  60. package/dist/src/assets/img/icons/null-result.js +2 -2
  61. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  62. package/dist/src/assets/img/icons/restricted.js +2 -2
  63. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  64. package/dist/src/assets/img/icons/reviews.js +2 -2
  65. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  66. package/dist/src/assets/img/icons/upload.js +2 -2
  67. package/dist/src/assets/img/icons/views.d.ts +1 -1
  68. package/dist/src/assets/img/icons/views.js +2 -2
  69. package/dist/src/circular-activity-indicator.d.ts +5 -5
  70. package/dist/src/circular-activity-indicator.js +17 -17
  71. package/dist/src/collection-browser.d.ts +469 -469
  72. package/dist/src/collection-browser.js +1677 -1653
  73. package/dist/src/collection-browser.js.map +1 -1
  74. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  75. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  76. package/dist/src/collection-facets/facets-template.d.ts +20 -20
  77. package/dist/src/collection-facets/facets-template.js +152 -152
  78. package/dist/src/collection-facets/more-facets-content.d.ts +77 -77
  79. package/dist/src/collection-facets/more-facets-content.js +359 -359
  80. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  81. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  82. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  83. package/dist/src/collection-facets/toggle-switch.js +94 -94
  84. package/dist/src/collection-facets.d.ts +99 -99
  85. package/dist/src/collection-facets.js +471 -471
  86. package/dist/src/empty-placeholder.d.ts +21 -21
  87. package/dist/src/empty-placeholder.js +69 -69
  88. package/dist/src/expanded-date-picker.d.ts +43 -43
  89. package/dist/src/expanded-date-picker.js +109 -109
  90. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  91. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  92. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  93. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  94. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  95. package/dist/src/mediatype/mediatype-config.js +85 -85
  96. package/dist/src/models.d.ts +162 -149
  97. package/dist/src/models.js +256 -195
  98. package/dist/src/models.js.map +1 -1
  99. package/dist/src/restoration-state-handler.d.ts +70 -63
  100. package/dist/src/restoration-state-handler.js +355 -326
  101. package/dist/src/restoration-state-handler.js.map +1 -1
  102. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  103. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  104. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  105. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  106. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  107. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  108. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  109. package/dist/src/sort-filter-bar/img/list.js +2 -2
  110. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  111. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  112. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  113. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  114. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  115. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  116. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  117. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  118. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  119. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  120. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +201 -199
  121. package/dist/src/sort-filter-bar/sort-filter-bar.js +622 -617
  122. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  123. package/dist/src/styles/item-image-styles.d.ts +8 -8
  124. package/dist/src/styles/item-image-styles.js +9 -9
  125. package/dist/src/styles/sr-only.d.ts +1 -1
  126. package/dist/src/styles/sr-only.js +2 -2
  127. package/dist/src/tiles/base-tile-component.d.ts +18 -18
  128. package/dist/src/tiles/base-tile-component.js +59 -59
  129. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  130. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  131. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  132. package/dist/src/tiles/grid/account-tile.js +72 -72
  133. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  134. package/dist/src/tiles/grid/collection-tile.js +80 -80
  135. package/dist/src/tiles/grid/item-tile.d.ts +27 -27
  136. package/dist/src/tiles/grid/item-tile.js +134 -134
  137. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  138. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  139. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  140. package/dist/src/tiles/grid/tile-stats.js +48 -48
  141. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  142. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  143. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  144. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  145. package/dist/src/tiles/image-block.d.ts +17 -17
  146. package/dist/src/tiles/image-block.js +72 -72
  147. package/dist/src/tiles/item-image.d.ts +35 -35
  148. package/dist/src/tiles/item-image.js +117 -117
  149. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  150. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  151. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  152. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  153. package/dist/src/tiles/list/tile-list.d.ts +46 -46
  154. package/dist/src/tiles/list/tile-list.js +298 -298
  155. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  156. package/dist/src/tiles/mediatype-icon.js +47 -47
  157. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  158. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  159. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  160. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  161. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  162. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  163. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  164. package/dist/src/tiles/text-snippet-block.js +73 -73
  165. package/dist/src/tiles/tile-dispatcher.d.ts +50 -50
  166. package/dist/src/tiles/tile-dispatcher.js +185 -185
  167. package/dist/src/tiles/tile-display-value-provider.d.ts +43 -43
  168. package/dist/src/tiles/tile-display-value-provider.js +80 -80
  169. package/dist/src/utils/analytics-events.d.ts +24 -24
  170. package/dist/src/utils/analytics-events.js +26 -26
  171. package/dist/src/utils/array-equals.d.ts +4 -4
  172. package/dist/src/utils/array-equals.js +10 -10
  173. package/dist/src/utils/format-count.d.ts +7 -7
  174. package/dist/src/utils/format-count.js +76 -76
  175. package/dist/src/utils/format-date.d.ts +2 -2
  176. package/dist/src/utils/format-date.js +25 -25
  177. package/dist/src/utils/format-unit-size.d.ts +2 -2
  178. package/dist/src/utils/format-unit-size.js +33 -33
  179. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  180. package/dist/src/utils/local-date-from-utc.js +15 -15
  181. package/dist/src/utils/sha1.d.ts +2 -2
  182. package/dist/src/utils/sha1.js +8 -8
  183. package/dist/test/collection-browser.test.d.ts +1 -1
  184. package/dist/test/collection-browser.test.js +808 -808
  185. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  186. package/dist/test/collection-facets/facets-template.test.js +134 -134
  187. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  188. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  189. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  190. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  191. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  192. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  193. package/dist/test/collection-facets.test.d.ts +2 -2
  194. package/dist/test/collection-facets.test.js +645 -645
  195. package/dist/test/empty-placeholder.test.d.ts +1 -1
  196. package/dist/test/empty-placeholder.test.js +56 -56
  197. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  198. package/dist/test/expanded-date-picker.test.js +95 -95
  199. package/dist/test/icon-overlay.test.d.ts +1 -1
  200. package/dist/test/icon-overlay.test.js +24 -24
  201. package/dist/test/image-block.test.d.ts +1 -1
  202. package/dist/test/image-block.test.js +48 -48
  203. package/dist/test/item-image.test.d.ts +1 -1
  204. package/dist/test/item-image.test.js +84 -84
  205. package/dist/test/mediatype-config.test.d.ts +1 -1
  206. package/dist/test/mediatype-config.test.js +16 -16
  207. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  208. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  209. package/dist/test/mocks/mock-collection-name-cache.d.ts +9 -9
  210. package/dist/test/mocks/mock-collection-name-cache.js +17 -17
  211. package/dist/test/mocks/mock-search-responses.d.ts +19 -19
  212. package/dist/test/mocks/mock-search-responses.js +623 -623
  213. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  214. package/dist/test/mocks/mock-search-service.js +48 -48
  215. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  216. package/dist/test/restoration-state-handler.test.js +270 -218
  217. package/dist/test/restoration-state-handler.test.js.map +1 -1
  218. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  219. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  220. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  221. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  222. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  223. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +378 -378
  224. package/dist/test/text-overlay.test.d.ts +1 -1
  225. package/dist/test/text-overlay.test.js +48 -48
  226. package/dist/test/text-snippet-block.test.d.ts +1 -1
  227. package/dist/test/text-snippet-block.test.js +57 -57
  228. package/dist/test/tile-stats.test.d.ts +1 -1
  229. package/dist/test/tile-stats.test.js +33 -33
  230. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  231. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  232. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  233. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  234. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  235. package/dist/test/tiles/grid/item-tile.test.js +254 -254
  236. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  237. package/dist/test/tiles/hover/hover-pane-controller.test.js +257 -257
  238. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  239. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  240. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  241. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  242. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  243. package/dist/test/tiles/list/tile-list.test.js +242 -242
  244. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  245. package/dist/test/tiles/tile-dispatcher.test.js +67 -67
  246. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  247. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  248. package/dist/test/utils/array-equals.test.d.ts +1 -1
  249. package/dist/test/utils/array-equals.test.js +26 -26
  250. package/dist/test/utils/format-count.test.d.ts +1 -1
  251. package/dist/test/utils/format-count.test.js +23 -23
  252. package/dist/test/utils/format-date.test.d.ts +1 -1
  253. package/dist/test/utils/format-date.test.js +17 -17
  254. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  255. package/dist/test/utils/format-unit-size.test.js +17 -17
  256. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  257. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  258. package/local.archive.org.cert +86 -86
  259. package/local.archive.org.key +27 -27
  260. package/package.json +1 -1
  261. package/renovate.json +6 -6
  262. package/src/collection-browser.ts +42 -8
  263. package/src/models.ts +193 -109
  264. package/src/restoration-state-handler.ts +66 -40
  265. package/src/sort-filter-bar/sort-filter-bar.ts +34 -27
  266. package/test/restoration-state-handler.test.ts +68 -1
  267. package/tsconfig.json +21 -21
  268. package/web-dev-server.config.mjs +30 -30
  269. package/web-test-runner.config.mjs +41 -41
@@ -1,18 +1,18 @@
1
- import { expect } from '@open-wc/testing';
2
- import { nothing } from 'lit';
3
- import { formatUnitSize } from '../../src/utils/format-unit-size';
4
- describe('formatUnitSize', () => {
5
- it('returns blank when undefined number', () => {
6
- expect(formatUnitSize(undefined, 1)).to.equal(nothing);
7
- });
8
- it('returns collection data is in singular form', () => {
9
- expect(formatUnitSize(1025, 1)).to.equal('1 kilobyte');
10
- });
11
- it('return collection size data in kilobytes and plural form', () => {
12
- expect(formatUnitSize(15000, 1)).to.equal('14.6 kilobytes');
13
- });
14
- it('return huge collection size data', () => {
15
- expect(formatUnitSize(454154654134, 1)).to.equal('423 gigabytes');
16
- });
17
- });
1
+ import { expect } from '@open-wc/testing';
2
+ import { nothing } from 'lit';
3
+ import { formatUnitSize } from '../../src/utils/format-unit-size';
4
+ describe('formatUnitSize', () => {
5
+ it('returns blank when undefined number', () => {
6
+ expect(formatUnitSize(undefined, 1)).to.equal(nothing);
7
+ });
8
+ it('returns collection data is in singular form', () => {
9
+ expect(formatUnitSize(1025, 1)).to.equal('1 kilobyte');
10
+ });
11
+ it('return collection size data in kilobytes and plural form', () => {
12
+ expect(formatUnitSize(15000, 1)).to.equal('14.6 kilobytes');
13
+ });
14
+ it('return huge collection size data', () => {
15
+ expect(formatUnitSize(454154654134, 1)).to.equal('423 gigabytes');
16
+ });
17
+ });
18
18
  //# sourceMappingURL=format-unit-size.test.js.map
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,27 +1,27 @@
1
- import { expect } from '@open-wc/testing';
2
- import { localDateFromUTC, isFirstMillisecondOfUTCYear, } from '../../src/utils/local-date-from-utc';
3
- describe('localDateFromUTC', () => {
4
- it('converts dates from UTC to local timezone', async () => {
5
- const date = new Date(1990, 1, 2, 3, 4, 5, 6);
6
- const dateFromUTC = new Date(Date.UTC(1990, 1, 2, 3, 4, 5, 6));
7
- expect(localDateFromUTC(date).toISOString()).to.equal(dateFromUTC.toISOString());
8
- });
9
- });
10
- describe('isFirstMillisecondOfUTCYear', () => {
11
- it('returns true when date is exactly Jan 1 at midnight in UTC', async () => {
12
- const midnightOnNewYearsDay = new Date(2010, 0, 1, 0, 0, 0, 0);
13
- expect(isFirstMillisecondOfUTCYear(midnightOnNewYearsDay)).to.be.true;
14
- });
15
- it('returns false when date is not exactly Jan 1 at midnight in UTC', async () => {
16
- const oneMillisecondTooEarly = new Date(2009, 11, 31, 23, 59, 59, 999);
17
- expect(isFirstMillisecondOfUTCYear(oneMillisecondTooEarly)).to.be.false;
18
- const oneMillisecondTooLate = new Date(2010, 0, 1, 0, 0, 0, 1);
19
- expect(isFirstMillisecondOfUTCYear(oneMillisecondTooLate)).to.be.false;
20
- const middleOfTheYear = new Date(2010, 6, 1, 0, 0, 0, 0);
21
- expect(isFirstMillisecondOfUTCYear(middleOfTheYear)).to.be.false;
22
- });
23
- it('returns false when no date provided', async () => {
24
- expect(isFirstMillisecondOfUTCYear(undefined)).to.be.false;
25
- });
26
- });
1
+ import { expect } from '@open-wc/testing';
2
+ import { localDateFromUTC, isFirstMillisecondOfUTCYear, } from '../../src/utils/local-date-from-utc';
3
+ describe('localDateFromUTC', () => {
4
+ it('converts dates from UTC to local timezone', async () => {
5
+ const date = new Date(1990, 1, 2, 3, 4, 5, 6);
6
+ const dateFromUTC = new Date(Date.UTC(1990, 1, 2, 3, 4, 5, 6));
7
+ expect(localDateFromUTC(date).toISOString()).to.equal(dateFromUTC.toISOString());
8
+ });
9
+ });
10
+ describe('isFirstMillisecondOfUTCYear', () => {
11
+ it('returns true when date is exactly Jan 1 at midnight in UTC', async () => {
12
+ const midnightOnNewYearsDay = new Date(2010, 0, 1, 0, 0, 0, 0);
13
+ expect(isFirstMillisecondOfUTCYear(midnightOnNewYearsDay)).to.be.true;
14
+ });
15
+ it('returns false when date is not exactly Jan 1 at midnight in UTC', async () => {
16
+ const oneMillisecondTooEarly = new Date(2009, 11, 31, 23, 59, 59, 999);
17
+ expect(isFirstMillisecondOfUTCYear(oneMillisecondTooEarly)).to.be.false;
18
+ const oneMillisecondTooLate = new Date(2010, 0, 1, 0, 0, 0, 1);
19
+ expect(isFirstMillisecondOfUTCYear(oneMillisecondTooLate)).to.be.false;
20
+ const middleOfTheYear = new Date(2010, 6, 1, 0, 0, 0, 0);
21
+ expect(isFirstMillisecondOfUTCYear(middleOfTheYear)).to.be.false;
22
+ });
23
+ it('returns false when no date provided', async () => {
24
+ expect(isFirstMillisecondOfUTCYear(undefined)).to.be.false;
25
+ });
26
+ });
27
27
  //# sourceMappingURL=local-date-from-utc.test.js.map
@@ -1,86 +1,86 @@
1
- Certificate:
2
- Data:
3
- Version: 3 (0x2)
4
- Serial Number: 1 (0x1)
5
- Signature Algorithm: sha256WithRSAEncryption
6
- Issuer: CN=devcert
7
- Validity
8
- Not Before: Apr 27 16:27:46 2022 GMT
9
- Not After : Jul 30 16:27:46 2024 GMT
10
- Subject: CN=local.archive.org
11
- Subject Public Key Info:
12
- Public Key Algorithm: rsaEncryption
13
- Public-Key: (2048 bit)
14
- Modulus:
15
- 00:a9:54:ca:34:ff:8b:32:02:39:97:61:bd:f5:12:
16
- 5c:4a:d0:87:2e:d6:42:63:72:ea:b4:90:95:cc:4a:
17
- ef:5a:66:09:9f:1d:08:0d:b2:f4:2e:b3:55:59:9c:
18
- 0f:77:37:1e:d7:a3:5c:b7:3d:81:84:fc:55:af:20:
19
- e7:3c:bd:9e:2b:2b:9e:d1:95:9d:14:90:70:7c:99:
20
- 78:f1:dd:42:2b:fd:87:b9:09:f0:f6:50:c7:90:41:
21
- de:e2:ee:dd:a0:4a:4d:de:20:6a:e8:1b:81:7f:d9:
22
- 17:0d:f5:f2:a1:dc:89:d8:e9:89:9c:ff:40:b7:0e:
23
- bb:16:db:d1:e0:67:5f:24:de:3b:b8:18:b8:a6:dd:
24
- d5:26:8a:2a:a4:f2:03:b1:a8:15:23:31:c9:65:de:
25
- 9b:5a:b0:f0:4f:ef:77:f1:8b:7b:91:95:a0:61:be:
26
- 1f:64:29:c6:2e:2c:03:1b:f0:91:96:b6:ab:fb:11:
27
- b7:1c:41:bc:43:6e:1b:6f:28:88:40:bd:a8:47:28:
28
- 9e:a4:64:31:e0:a5:72:db:09:cb:b0:9e:7a:d5:d0:
29
- 7f:15:15:75:d4:d6:78:41:c9:a1:54:73:48:19:4f:
30
- 72:95:a1:31:b3:4c:81:41:13:43:d9:9b:8c:d0:2e:
31
- 29:09:a2:59:6b:15:6d:5c:93:22:03:f5:72:f0:46:
32
- be:65
33
- Exponent: 65537 (0x10001)
34
- X509v3 extensions:
35
- X509v3 Basic Constraints: critical
36
- CA:FALSE
37
- X509v3 Subject Key Identifier:
38
- E1:20:A8:89:51:79:0C:23:66:20:B7:A5:A4:42:8F:40:7F:7E:C0:CE
39
- X509v3 Authority Key Identifier:
40
- keyid:A8:C7:C5:69:35:49:1B:B6:77:E7:2E:16:5B:B0:75:8C:B7:03:5C:04
41
- DirName:/CN=devcert
42
- serial:DB:1E:4C:08:75:57:8D:4E
43
-
44
- X509v3 Key Usage: critical
45
- Digital Signature, Key Encipherment
46
- X509v3 Extended Key Usage:
47
- TLS Web Server Authentication
48
- X509v3 Subject Alternative Name:
49
- DNS:local.archive.org, DNS:*.local.archive.org
50
- Signature Algorithm: sha256WithRSAEncryption
51
- 5a:20:54:0b:6f:c3:35:e6:70:c1:bd:5c:58:e8:cf:7b:73:33:
52
- 38:80:70:c1:1c:60:2a:ea:5c:0c:eb:63:6a:15:48:fe:4d:f6:
53
- 18:89:e1:89:73:40:45:52:7d:bc:3a:d6:0e:d3:65:2c:e7:b9:
54
- ab:3b:c6:ea:6e:74:74:39:4f:53:3f:bb:59:d9:91:83:db:92:
55
- 96:32:97:25:5f:c2:8d:85:ce:b3:c7:b1:4d:37:b7:bd:81:de:
56
- f7:9f:34:5b:12:70:21:a8:03:8d:94:ed:d7:41:7f:2a:87:30:
57
- bd:4f:07:22:b2:9a:06:ab:bc:41:2c:2f:7c:be:e0:a2:90:60:
58
- 21:79:d4:a1:08:26:c1:f4:83:b2:0a:ff:7d:0a:15:dc:ed:d0:
59
- 49:f9:37:ad:fe:68:d7:59:9d:f8:25:4e:10:01:bf:a5:be:ec:
60
- 21:a8:bf:77:6c:ff:d4:b7:d4:11:9c:43:4a:64:e8:31:76:9a:
61
- 01:3a:54:d9:c0:8a:a6:2c:7a:df:0a:c4:26:6e:19:52:26:9d:
62
- 25:b5:b1:db:6f:12:91:92:83:ab:6c:28:52:e1:e4:63:c2:cf:
63
- 45:f7:b4:da:7d:13:66:47:62:90:e6:8d:2c:b8:aa:d4:2b:8c:
64
- d6:c0:5c:fc:83:e7:1f:71:5f:cb:38:b6:c3:a5:77:7d:97:04:
65
- 87:14:44:83
66
- -----BEGIN CERTIFICATE-----
67
- MIIDdjCCAl6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdkZXZj
68
- ZXJ0MB4XDTIyMDQyNzE2Mjc0NloXDTI0MDczMDE2Mjc0NlowHDEaMBgGA1UEAwwR
69
- bG9jYWwuYXJjaGl2ZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
70
- AQCpVMo0/4syAjmXYb31ElxK0Icu1kJjcuq0kJXMSu9aZgmfHQgNsvQus1VZnA93
71
- Nx7Xo1y3PYGE/FWvIOc8vZ4rK57RlZ0UkHB8mXjx3UIr/Ye5CfD2UMeQQd7i7t2g
72
- Sk3eIGroG4F/2RcN9fKh3InY6Ymc/0C3DrsW29HgZ18k3ju4GLim3dUmiiqk8gOx
73
- qBUjMcll3ptasPBP73fxi3uRlaBhvh9kKcYuLAMb8JGWtqv7EbccQbxDbhtvKIhA
74
- vahHKJ6kZDHgpXLbCcuwnnrV0H8VFXXU1nhByaFUc0gZT3KVoTGzTIFBE0PZm4zQ
75
- LikJollrFW1ckyID9XLwRr5lAgMBAAGjgcwwgckwDAYDVR0TAQH/BAIwADAdBgNV
76
- HQ4EFgQU4SCoiVF5DCNmILelpEKPQH9+wM4wQgYDVR0jBDswOYAUqMfFaTVJG7Z3
77
- 5y4WW7B1jLcDXAShFqQUMBIxEDAOBgNVBAMMB2RldmNlcnSCCQDbHkwIdVeNTjAO
78
- BgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwMQYDVR0RBCowKIIR
79
- bG9jYWwuYXJjaGl2ZS5vcmeCEyoubG9jYWwuYXJjaGl2ZS5vcmcwDQYJKoZIhvcN
80
- AQELBQADggEBAFogVAtvwzXmcMG9XFjoz3tzMziAcMEcYCrqXAzrY2oVSP5N9hiJ
81
- 4YlzQEVSfbw61g7TZSznuas7xupudHQ5T1M/u1nZkYPbkpYylyVfwo2FzrPHsU03
82
- t72B3vefNFsScCGoA42U7ddBfyqHML1PByKymgarvEEsL3y+4KKQYCF51KEIJsH0
83
- g7IK/30KFdzt0En5N63+aNdZnfglThABv6W+7CGov3ds/9S31BGcQ0pk6DF2mgE6
84
- VNnAiqYset8KxCZuGVImnSW1sdtvEpGSg6tsKFLh5GPCz0X3tNp9E2ZHYpDmjSy4
85
- qtQrjNbAXPyD5x9xX8s4tsOld32XBIcURIM=
86
- -----END CERTIFICATE-----
1
+ Certificate:
2
+ Data:
3
+ Version: 3 (0x2)
4
+ Serial Number: 1 (0x1)
5
+ Signature Algorithm: sha256WithRSAEncryption
6
+ Issuer: CN=devcert
7
+ Validity
8
+ Not Before: Apr 27 16:27:46 2022 GMT
9
+ Not After : Jul 30 16:27:46 2024 GMT
10
+ Subject: CN=local.archive.org
11
+ Subject Public Key Info:
12
+ Public Key Algorithm: rsaEncryption
13
+ Public-Key: (2048 bit)
14
+ Modulus:
15
+ 00:a9:54:ca:34:ff:8b:32:02:39:97:61:bd:f5:12:
16
+ 5c:4a:d0:87:2e:d6:42:63:72:ea:b4:90:95:cc:4a:
17
+ ef:5a:66:09:9f:1d:08:0d:b2:f4:2e:b3:55:59:9c:
18
+ 0f:77:37:1e:d7:a3:5c:b7:3d:81:84:fc:55:af:20:
19
+ e7:3c:bd:9e:2b:2b:9e:d1:95:9d:14:90:70:7c:99:
20
+ 78:f1:dd:42:2b:fd:87:b9:09:f0:f6:50:c7:90:41:
21
+ de:e2:ee:dd:a0:4a:4d:de:20:6a:e8:1b:81:7f:d9:
22
+ 17:0d:f5:f2:a1:dc:89:d8:e9:89:9c:ff:40:b7:0e:
23
+ bb:16:db:d1:e0:67:5f:24:de:3b:b8:18:b8:a6:dd:
24
+ d5:26:8a:2a:a4:f2:03:b1:a8:15:23:31:c9:65:de:
25
+ 9b:5a:b0:f0:4f:ef:77:f1:8b:7b:91:95:a0:61:be:
26
+ 1f:64:29:c6:2e:2c:03:1b:f0:91:96:b6:ab:fb:11:
27
+ b7:1c:41:bc:43:6e:1b:6f:28:88:40:bd:a8:47:28:
28
+ 9e:a4:64:31:e0:a5:72:db:09:cb:b0:9e:7a:d5:d0:
29
+ 7f:15:15:75:d4:d6:78:41:c9:a1:54:73:48:19:4f:
30
+ 72:95:a1:31:b3:4c:81:41:13:43:d9:9b:8c:d0:2e:
31
+ 29:09:a2:59:6b:15:6d:5c:93:22:03:f5:72:f0:46:
32
+ be:65
33
+ Exponent: 65537 (0x10001)
34
+ X509v3 extensions:
35
+ X509v3 Basic Constraints: critical
36
+ CA:FALSE
37
+ X509v3 Subject Key Identifier:
38
+ E1:20:A8:89:51:79:0C:23:66:20:B7:A5:A4:42:8F:40:7F:7E:C0:CE
39
+ X509v3 Authority Key Identifier:
40
+ keyid:A8:C7:C5:69:35:49:1B:B6:77:E7:2E:16:5B:B0:75:8C:B7:03:5C:04
41
+ DirName:/CN=devcert
42
+ serial:DB:1E:4C:08:75:57:8D:4E
43
+
44
+ X509v3 Key Usage: critical
45
+ Digital Signature, Key Encipherment
46
+ X509v3 Extended Key Usage:
47
+ TLS Web Server Authentication
48
+ X509v3 Subject Alternative Name:
49
+ DNS:local.archive.org, DNS:*.local.archive.org
50
+ Signature Algorithm: sha256WithRSAEncryption
51
+ 5a:20:54:0b:6f:c3:35:e6:70:c1:bd:5c:58:e8:cf:7b:73:33:
52
+ 38:80:70:c1:1c:60:2a:ea:5c:0c:eb:63:6a:15:48:fe:4d:f6:
53
+ 18:89:e1:89:73:40:45:52:7d:bc:3a:d6:0e:d3:65:2c:e7:b9:
54
+ ab:3b:c6:ea:6e:74:74:39:4f:53:3f:bb:59:d9:91:83:db:92:
55
+ 96:32:97:25:5f:c2:8d:85:ce:b3:c7:b1:4d:37:b7:bd:81:de:
56
+ f7:9f:34:5b:12:70:21:a8:03:8d:94:ed:d7:41:7f:2a:87:30:
57
+ bd:4f:07:22:b2:9a:06:ab:bc:41:2c:2f:7c:be:e0:a2:90:60:
58
+ 21:79:d4:a1:08:26:c1:f4:83:b2:0a:ff:7d:0a:15:dc:ed:d0:
59
+ 49:f9:37:ad:fe:68:d7:59:9d:f8:25:4e:10:01:bf:a5:be:ec:
60
+ 21:a8:bf:77:6c:ff:d4:b7:d4:11:9c:43:4a:64:e8:31:76:9a:
61
+ 01:3a:54:d9:c0:8a:a6:2c:7a:df:0a:c4:26:6e:19:52:26:9d:
62
+ 25:b5:b1:db:6f:12:91:92:83:ab:6c:28:52:e1:e4:63:c2:cf:
63
+ 45:f7:b4:da:7d:13:66:47:62:90:e6:8d:2c:b8:aa:d4:2b:8c:
64
+ d6:c0:5c:fc:83:e7:1f:71:5f:cb:38:b6:c3:a5:77:7d:97:04:
65
+ 87:14:44:83
66
+ -----BEGIN CERTIFICATE-----
67
+ MIIDdjCCAl6gAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdkZXZj
68
+ ZXJ0MB4XDTIyMDQyNzE2Mjc0NloXDTI0MDczMDE2Mjc0NlowHDEaMBgGA1UEAwwR
69
+ bG9jYWwuYXJjaGl2ZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
70
+ AQCpVMo0/4syAjmXYb31ElxK0Icu1kJjcuq0kJXMSu9aZgmfHQgNsvQus1VZnA93
71
+ Nx7Xo1y3PYGE/FWvIOc8vZ4rK57RlZ0UkHB8mXjx3UIr/Ye5CfD2UMeQQd7i7t2g
72
+ Sk3eIGroG4F/2RcN9fKh3InY6Ymc/0C3DrsW29HgZ18k3ju4GLim3dUmiiqk8gOx
73
+ qBUjMcll3ptasPBP73fxi3uRlaBhvh9kKcYuLAMb8JGWtqv7EbccQbxDbhtvKIhA
74
+ vahHKJ6kZDHgpXLbCcuwnnrV0H8VFXXU1nhByaFUc0gZT3KVoTGzTIFBE0PZm4zQ
75
+ LikJollrFW1ckyID9XLwRr5lAgMBAAGjgcwwgckwDAYDVR0TAQH/BAIwADAdBgNV
76
+ HQ4EFgQU4SCoiVF5DCNmILelpEKPQH9+wM4wQgYDVR0jBDswOYAUqMfFaTVJG7Z3
77
+ 5y4WW7B1jLcDXAShFqQUMBIxEDAOBgNVBAMMB2RldmNlcnSCCQDbHkwIdVeNTjAO
78
+ BgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwMQYDVR0RBCowKIIR
79
+ bG9jYWwuYXJjaGl2ZS5vcmeCEyoubG9jYWwuYXJjaGl2ZS5vcmcwDQYJKoZIhvcN
80
+ AQELBQADggEBAFogVAtvwzXmcMG9XFjoz3tzMziAcMEcYCrqXAzrY2oVSP5N9hiJ
81
+ 4YlzQEVSfbw61g7TZSznuas7xupudHQ5T1M/u1nZkYPbkpYylyVfwo2FzrPHsU03
82
+ t72B3vefNFsScCGoA42U7ddBfyqHML1PByKymgarvEEsL3y+4KKQYCF51KEIJsH0
83
+ g7IK/30KFdzt0En5N63+aNdZnfglThABv6W+7CGov3ds/9S31BGcQ0pk6DF2mgE6
84
+ VNnAiqYset8KxCZuGVImnSW1sdtvEpGSg6tsKFLh5GPCz0X3tNp9E2ZHYpDmjSy4
85
+ qtQrjNbAXPyD5x9xX8s4tsOld32XBIcURIM=
86
+ -----END CERTIFICATE-----
@@ -1,27 +1,27 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEowIBAAKCAQEAqVTKNP+LMgI5l2G99RJcStCHLtZCY3LqtJCVzErvWmYJnx0I
3
- DbL0LrNVWZwPdzce16Nctz2BhPxVryDnPL2eKyue0ZWdFJBwfJl48d1CK/2HuQnw
4
- 9lDHkEHe4u7doEpN3iBq6BuBf9kXDfXyodyJ2OmJnP9Atw67FtvR4GdfJN47uBi4
5
- pt3VJooqpPIDsagVIzHJZd6bWrDwT+938Yt7kZWgYb4fZCnGLiwDG/CRlrar+xG3
6
- HEG8Q24bbyiIQL2oRyiepGQx4KVy2wnLsJ561dB/FRV11NZ4QcmhVHNIGU9ylaEx
7
- s0yBQRND2ZuM0C4pCaJZaxVtXJMiA/Vy8Ea+ZQIDAQABAoIBAAQgUdEazQyJ61da
8
- BWP8b41PKYwlonaD7V47C7tvtAdy5xcegPy8eKDOs+y8FdBk4naEv5Sjhg10jK34
9
- 0kmzoTASHwuiZrKClosivkS+jIc/5VfH+zw1WbeVM1Y6VeI7DUy1Y4WGbhBsfNhV
10
- PvVcx2smvbi6q5wKWtrCvomGW1YtngNBXJBPDWXysaVZdpF+6iWtw0RjWxbKEeMb
11
- fjZ2sxl7h1EkTXxQR9pfl9WVgl6vRRXp1o+N71M14jp5t95xCyf49YzeEuZmc1Fc
12
- dD77LNGcxr3kpkcQH5FdDP/spla+lR+JKb78FVqhEdPP3WcJ1qcrAstG2npAfKpj
13
- MD9AhsECgYEA3BddOjeK9epaGbTZRKgmIOSgGEHo8WbVHqBHhyQKAb8kFVEPn+Hl
14
- sq2EEQZf0ZJ/HhlVBc0Gj4/2PI8vj1Lzh+QWJnFu+XN/doOm5X62Ctz13qC5oWJp
15
- foQ9HXcg4GAXhm/o3KUIntLrUwoi/UW8YOSRFXS8RSJtuh1rI5P2jjECgYEAxPVP
16
- o/9+12Fc2ujdm8cQ1tB1Ab9Z73/vloG/xit0uMp89OqXUHEmtud/WzaIQvNxdaWi
17
- 9/BqAG9Oml51T3cuYPxNDkSmtd2fieq9Nh17dw8zYGMk0cSYeecgvCJOrRIJnebW
18
- Glyt8vzBb3eD6FzhZoVNOVYareainSP1cwl5YnUCgYAsr2m0OjayeyRT983tDJ7B
19
- Kun+QtOCv7ghgbVEEOMfO6md0llzwq+aOXSI6Fxn9nBssgP7K4dbeoUqAoBLfzIG
20
- sx50K6+2YebNLymhirp3NimNS+CkjZCRqVOnOdqo85mTKAGFWtSHOpegwnwcJB59
21
- Jar3Sj43YygYE4T/Mjlq4QKBgQC8zUcdt2J4xl1Df6xHkuiic0tmdG6a9jHOPex+
22
- 49NM/NYR1Ptd4kmxVXKxFjJCs6jUlQYG1NBYQFrCAcBEf8PWtqSLA+YnOh6gD4R3
23
- ZoWfGNQwFnoKF4HugU/Q6LYwk7TiR5B/zs30urQWzSOGT9rF8wyW5OJIR2kkZ373
24
- WmKgrQKBgGaw32CMejz3wBpzOAXsYJcMsVfNCMD4bJ2EbXhYuY8HB8IEEv6wqMsp
25
- wtXIgHJubfIiA3MlVsfaUkRdtHMHbN+Us1oynu6nByLhYlAMKpOsJFzPVHHwGB/1
26
- g3WtzfFk5eOoZltJBm5K41zjS7lyr1t05648pT6niy9snu6LaF94
27
- -----END RSA PRIVATE KEY-----
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEowIBAAKCAQEAqVTKNP+LMgI5l2G99RJcStCHLtZCY3LqtJCVzErvWmYJnx0I
3
+ DbL0LrNVWZwPdzce16Nctz2BhPxVryDnPL2eKyue0ZWdFJBwfJl48d1CK/2HuQnw
4
+ 9lDHkEHe4u7doEpN3iBq6BuBf9kXDfXyodyJ2OmJnP9Atw67FtvR4GdfJN47uBi4
5
+ pt3VJooqpPIDsagVIzHJZd6bWrDwT+938Yt7kZWgYb4fZCnGLiwDG/CRlrar+xG3
6
+ HEG8Q24bbyiIQL2oRyiepGQx4KVy2wnLsJ561dB/FRV11NZ4QcmhVHNIGU9ylaEx
7
+ s0yBQRND2ZuM0C4pCaJZaxVtXJMiA/Vy8Ea+ZQIDAQABAoIBAAQgUdEazQyJ61da
8
+ BWP8b41PKYwlonaD7V47C7tvtAdy5xcegPy8eKDOs+y8FdBk4naEv5Sjhg10jK34
9
+ 0kmzoTASHwuiZrKClosivkS+jIc/5VfH+zw1WbeVM1Y6VeI7DUy1Y4WGbhBsfNhV
10
+ PvVcx2smvbi6q5wKWtrCvomGW1YtngNBXJBPDWXysaVZdpF+6iWtw0RjWxbKEeMb
11
+ fjZ2sxl7h1EkTXxQR9pfl9WVgl6vRRXp1o+N71M14jp5t95xCyf49YzeEuZmc1Fc
12
+ dD77LNGcxr3kpkcQH5FdDP/spla+lR+JKb78FVqhEdPP3WcJ1qcrAstG2npAfKpj
13
+ MD9AhsECgYEA3BddOjeK9epaGbTZRKgmIOSgGEHo8WbVHqBHhyQKAb8kFVEPn+Hl
14
+ sq2EEQZf0ZJ/HhlVBc0Gj4/2PI8vj1Lzh+QWJnFu+XN/doOm5X62Ctz13qC5oWJp
15
+ foQ9HXcg4GAXhm/o3KUIntLrUwoi/UW8YOSRFXS8RSJtuh1rI5P2jjECgYEAxPVP
16
+ o/9+12Fc2ujdm8cQ1tB1Ab9Z73/vloG/xit0uMp89OqXUHEmtud/WzaIQvNxdaWi
17
+ 9/BqAG9Oml51T3cuYPxNDkSmtd2fieq9Nh17dw8zYGMk0cSYeecgvCJOrRIJnebW
18
+ Glyt8vzBb3eD6FzhZoVNOVYareainSP1cwl5YnUCgYAsr2m0OjayeyRT983tDJ7B
19
+ Kun+QtOCv7ghgbVEEOMfO6md0llzwq+aOXSI6Fxn9nBssgP7K4dbeoUqAoBLfzIG
20
+ sx50K6+2YebNLymhirp3NimNS+CkjZCRqVOnOdqo85mTKAGFWtSHOpegwnwcJB59
21
+ Jar3Sj43YygYE4T/Mjlq4QKBgQC8zUcdt2J4xl1Df6xHkuiic0tmdG6a9jHOPex+
22
+ 49NM/NYR1Ptd4kmxVXKxFjJCs6jUlQYG1NBYQFrCAcBEf8PWtqSLA+YnOh6gD4R3
23
+ ZoWfGNQwFnoKF4HugU/Q6LYwk7TiR5B/zs30urQWzSOGT9rF8wyW5OJIR2kkZ373
24
+ WmKgrQKBgGaw32CMejz3wBpzOAXsYJcMsVfNCMD4bJ2EbXhYuY8HB8IEEv6wqMsp
25
+ wtXIgHJubfIiA3MlVsfaUkRdtHMHbN+Us1oynu6nByLhYlAMKpOsJFzPVHHwGB/1
26
+ g3WtzfFk5eOoZltJBm5K41zjS7lyr1t05648pT6niy9snu6LaF94
27
+ -----END RSA PRIVATE KEY-----
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "The Internet Archive Collection Browser.",
4
4
  "license": "AGPL-3.0-only",
5
5
  "author": "Internet Archive",
6
- "version": "1.8.0",
6
+ "version": "1.9.0-alpha2",
7
7
  "main": "dist/index.js",
8
8
  "module": "dist/index.js",
9
9
  "scripts": {
package/renovate.json CHANGED
@@ -1,6 +1,6 @@
1
- {
2
- "extends": [
3
- "config:base",
4
- ":preserveSemverRanges"
5
- ]
6
- }
1
+ {
2
+ "extends": [
3
+ "config:base",
4
+ ":preserveSemverRanges"
5
+ ]
6
+ }
@@ -47,7 +47,6 @@ import './sort-filter-bar/sort-filter-bar';
47
47
  import {
48
48
  SelectedFacets,
49
49
  SortField,
50
- SortFieldToMetadataField,
51
50
  CollectionBrowserContext,
52
51
  getDefaultSelectedFacets,
53
52
  TileModel,
@@ -57,8 +56,8 @@ import {
57
56
  PrefixFilterCounts,
58
57
  prefixFilterAggregationKeys,
59
58
  FacetEventDetails,
60
- MetadataFieldToSortField,
61
- MetadataSortField,
59
+ sortOptionFromAPIString,
60
+ SORT_OPTIONS,
62
61
  } from './models';
63
62
  import {
64
63
  RestorationStateHandlerInterface,
@@ -608,12 +607,20 @@ export class CollectionBrowser
608
607
  }
609
608
 
610
609
  private selectedSortChanged(): void {
611
- if ([SortField.default, SortField.relevance].includes(this.selectedSort)) {
610
+ const sortOption = SORT_OPTIONS[this.selectedSort];
611
+ if (!sortOption.handledBySearchService) {
612
612
  this.sortParam = null;
613
613
  return;
614
614
  }
615
- const sortField = SortFieldToMetadataField[this.selectedSort];
616
- if (!this.sortDirection) this.sortDirection = 'desc';
615
+
616
+ // If the sort option specified in the URL is unrecognized, we just use it as-is
617
+ const urlSortParam = new URL(window.location.href).searchParams.get('sort');
618
+ const sortField =
619
+ sortOption.searchServiceKey ?? urlSortParam?.replace(/^-/, '');
620
+
621
+ // If the sort direction is still null at this point, then we assume ascending
622
+ // (i.e., it was unrecognized and had no directional flag)
623
+ if (!this.sortDirection) this.sortDirection = 'asc';
617
624
 
618
625
  if (!sortField) return;
619
626
  this.sortParam = { field: sortField, direction: this.sortDirection };
@@ -1272,7 +1279,6 @@ export class CollectionBrowser
1272
1279
  const restorationState: RestorationState = {
1273
1280
  displayMode: this.displayMode,
1274
1281
  searchType: this.searchType,
1275
- sortParam: this.sortParam ?? undefined,
1276
1282
  selectedSort: this.selectedSort,
1277
1283
  sortDirection: this.sortDirection ?? undefined,
1278
1284
  selectedFacets: this.selectedFacets ?? getDefaultSelectedFacets(),
@@ -1779,6 +1785,33 @@ export class CollectionBrowser
1779
1785
 
1780
1786
  this.totalResults = success.response.totalResults;
1781
1787
 
1788
+ if (!this.totalResults || this.totalResults === 0) {
1789
+ console.log(this.totalResults)
1790
+ this.dispatchEvent(
1791
+ new CustomEvent<string>('tabChanged', {
1792
+ bubbles: true,
1793
+ composed: true,
1794
+ detail: 'about',
1795
+ }),
1796
+ );
1797
+
1798
+ document.dispatchEvent(
1799
+ new CustomEvent<string>('tabChanged', {
1800
+ bubbles: true,
1801
+ composed: true,
1802
+ detail: 'about1',
1803
+ }),
1804
+ );
1805
+
1806
+ window.dispatchEvent(
1807
+ new CustomEvent<string>('tabChanged', {
1808
+ bubbles: true,
1809
+ composed: true,
1810
+ detail: 'about2',
1811
+ }),
1812
+ );
1813
+ }
1814
+
1782
1815
  if (this.withinCollection) {
1783
1816
  this.collectionInfo = success.response.collectionExtraInfo;
1784
1817
 
@@ -1858,7 +1891,8 @@ export class CollectionBrowser
1858
1891
  dir = 'asc';
1859
1892
  }
1860
1893
 
1861
- const sortField = MetadataFieldToSortField[field as MetadataSortField];
1894
+ const sortOption = sortOptionFromAPIString(field);
1895
+ const sortField = sortOption.field;
1862
1896
  if (sortField && sortField !== SortField.default) {
1863
1897
  this.defaultSortField = sortField;
1864
1898
  this.defaultSortDirection = dir as SortDirection;