@bongos/core 1.24.42 → 1.24.43
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/.bongos-core.json +93 -83
- package/docs/copy-inventory.md +86 -104
- package/docs/copy-registry.json +159 -351
- package/docs/module-api-changelog.md +2 -0
- package/docs/onboarding/primer.md +1 -1
- package/docs/page-inventory.json +3 -3
- package/docs/page-readings.json +386 -428
- package/modules/hall-ui/public/ai-studio.html +4 -4
- package/modules/hall-ui/public/atlas.html +4 -4
- package/modules/hall-ui/public/blockers.html +4 -4
- package/modules/hall-ui/public/board-room.html +4 -4
- package/modules/hall-ui/public/builders.js +22 -505
- package/modules/hall-ui/public/city.html +4 -4
- package/modules/hall-ui/public/collab.html +4 -4
- package/modules/hall-ui/public/commands.html +4 -4
- package/modules/hall-ui/public/copy-desk.html +4 -4
- package/modules/hall-ui/public/craft-mode.js +1 -1
- package/modules/hall-ui/public/deploy.html +4 -4
- package/modules/hall-ui/public/dom-utils.js +2 -1
- package/modules/hall-ui/public/goal-map.html +4 -4
- package/modules/hall-ui/public/goals.html +4 -4
- package/modules/hall-ui/public/government.html +4 -4
- package/modules/hall-ui/public/hall-render.js +23 -524
- package/modules/hall-ui/public/hall-widgets.js +11 -109
- package/modules/hall-ui/public/idea.html +4 -4
- package/modules/hall-ui/public/ideas.html +4 -4
- package/modules/hall-ui/public/index.html +6 -19
- package/modules/hall-ui/public/index.states.json +0 -33
- package/modules/hall-ui/public/market-watch-item.html +4 -4
- package/modules/hall-ui/public/market-watch-rules.html +4 -4
- package/modules/hall-ui/public/market-watch.html +4 -4
- package/modules/hall-ui/public/modules.html +4 -4
- package/modules/hall-ui/public/money.html +4 -4
- package/modules/hall-ui/public/my-agents.html +4 -4
- package/modules/hall-ui/public/palette.js +7 -6
- package/modules/hall-ui/public/primer.html +4 -4
- package/modules/hall-ui/public/profile-own.js +639 -0
- package/modules/hall-ui/public/profile.css +2 -1
- package/modules/hall-ui/public/profile.html +48 -5
- package/modules/hall-ui/public/profile.js +27 -2
- package/modules/hall-ui/public/profile.states.json +18 -0
- package/modules/hall-ui/public/project-settings.html +4 -4
- package/modules/hall-ui/public/roadmap.html +4 -4
- package/modules/hall-ui/public/roster.html +4 -4
- package/modules/hall-ui/public/settings.html +4 -4
- package/modules/hall-ui/public/shell-trail.js +2 -1
- package/modules/hall-ui/public/shell.js +28 -25
- package/modules/hall-ui/public/street.html +4 -4
- package/modules/hall-ui/public/studio.html +4 -4
- package/modules/hall-ui/public/task.html +4 -4
- package/modules/hall-ui/public/thinking.html +4 -4
- package/modules/hall-ui/public/tweak-editor.html +4 -4
- package/modules/hall-ui/public/watch.html +4 -4
- package/modules/hall-ui/public/work.html +4 -4
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +6 -0
- package/src/module-api.js +1 -1
- package/tests/curve_controls_delegation.mjs +9 -8
- package/tests/curve_kind_overlay.mjs +5 -5
- package/tests/hall_acclaim_vote_control.mjs +5 -3
- package/tests/hall_audit.mjs +10 -6
- package/tests/hall_board_world.mjs +40 -26
- package/tests/hall_builders_page_pass.mjs +14 -5
- package/tests/hall_home_ships_bounded.mjs +10 -21
- package/tests/hall_kit_charts.mjs +3 -2
- package/tests/hall_loading.mjs +2 -1
- package/tests/hall_nav.mjs +36 -37
- package/tests/hall_numbers_page.mjs +100 -0
- package/tests/hall_palette.mjs +19 -24
- package/tests/hall_profile_world.mjs +7 -2
- package/tests/hall_reading_room.mjs +3 -2
- package/tests/helpers.mjs +8 -2
- package/tests/leaderboard_roles.mjs +1 -1
- package/tests/module_contributions.mjs +6 -4
- package/tests/nav_permission_atoms.mjs +3 -2
- package/tests/page_tweak_artist.mjs +2 -1
- package/tests/rank_tier_single_source.mjs +3 -0
- package/tests/task_visuals.mjs +3 -1
package/tests/helpers.mjs
CHANGED
|
@@ -542,7 +542,9 @@ const PROFILE_CRAFTS_JS = fs.readFileSync(path.join(ROOT, 'modules/hall-ui/publi
|
|
|
542
542
|
// tab each. The default leads with the ideator, so the trail is the first tab
|
|
543
543
|
// and a suite that reads it needs no switch; switchCraft('engineer') opens the
|
|
544
544
|
// works and goals, switchCraft('artist') the approved pages.
|
|
545
|
-
|
|
545
|
+
// `search` is the page's ?query (task 1005050: ?id= decides whose profile it is), and
|
|
546
|
+
// `withOwn` also loads profile-own.js, the "Just you" screen drawn on your own profile.
|
|
547
|
+
export function bootProfilePage({ signedIn = true, trail = [], roles = ['ideator', 'engineer'], artistPages = [], search = '', withOwn = false } = {}) {
|
|
546
548
|
const els = new Map();
|
|
547
549
|
const makeEl = () => ({
|
|
548
550
|
dataset: {}, style: {}, textContent: '', hidden: false, _html: '',
|
|
@@ -617,6 +619,8 @@ export function bootProfilePage({ signedIn = true, trail = [], roles = ['ideator
|
|
|
617
619
|
return { active: () => current, activate(id) { current = id; onChange(id); }, setCount() {} };
|
|
618
620
|
},
|
|
619
621
|
shipVisualThumbHtml: () => '',
|
|
622
|
+
// profile-own.js's peer-recognition pager (task 1005050).
|
|
623
|
+
paginate: (rows) => rows, wirePager() {}, pagerBarHtml: () => '',
|
|
620
624
|
};
|
|
621
625
|
|
|
622
626
|
const windowObj = {
|
|
@@ -638,7 +642,7 @@ export function bootProfilePage({ signedIn = true, trail = [], roles = ['ideator
|
|
|
638
642
|
rankLabel: (r) => r,
|
|
639
643
|
toast() {},
|
|
640
644
|
},
|
|
641
|
-
location: { hostname: 'builders.cloudbongos.com', search
|
|
645
|
+
location: { hostname: 'builders.cloudbongos.com', search, pathname: '/profile' },
|
|
642
646
|
localStorage: { getItem: () => null, setItem() {} },
|
|
643
647
|
addEventListener() {},
|
|
644
648
|
matchMedia: () => ({ matches: false }),
|
|
@@ -655,6 +659,7 @@ export function bootProfilePage({ signedIn = true, trail = [], roles = ['ideator
|
|
|
655
659
|
vm.runInContext(PROFILE_ROLES_JS, sandbox, { filename: 'profile-roles.js' });
|
|
656
660
|
vm.runInContext(IDEA_OBJECTS_JS, sandbox, { filename: 'idea-objects.js' });
|
|
657
661
|
vm.runInContext(PROFILE_CRAFTS_JS, sandbox, { filename: 'profile-crafts.js' });
|
|
662
|
+
if (withOwn) vm.runInContext(fs.readFileSync(path.join(ROOT, 'modules/hall-ui/public/profile-own.js'), 'utf8'), sandbox, { filename: 'profile-own.js' });
|
|
658
663
|
vm.runInContext(PROFILE_JS, sandbox, { filename: 'profile.js' });
|
|
659
664
|
|
|
660
665
|
const htmlFor = (mountId) => {
|
|
@@ -666,6 +671,7 @@ export function bootProfilePage({ signedIn = true, trail = [], roles = ['ideator
|
|
|
666
671
|
htmlFor,
|
|
667
672
|
switchCraft: (id) => { if (tabsOnChange) tabsOnChange(id); },
|
|
668
673
|
el: (id) => documentObj.getElementById(id),
|
|
674
|
+
window: windowObj,
|
|
669
675
|
};
|
|
670
676
|
}
|
|
671
677
|
|
|
@@ -236,7 +236,7 @@ function extract(src, start, end) {
|
|
|
236
236
|
|
|
237
237
|
await test('the standing card adds the place inside the builder\'s main role, only when it says something new', () => {
|
|
238
238
|
const src = read('modules/hall-ui/public/hall-render.js');
|
|
239
|
-
const code = extract(src, 'const lbState = { rows: [] };', ' return {
|
|
239
|
+
const code = extract(src, 'const lbState = { rows: [] };', ' return { lbState');
|
|
240
240
|
const sandbox = { rows: FIX.leaderboard };
|
|
241
241
|
vm.createContext(sandbox);
|
|
242
242
|
vm.runInContext(`${code}; lbState.rows = rows; this.place = leaderboardPlace; this.text = rolePlaceText;`, sandbox);
|
|
@@ -314,11 +314,13 @@ test('hall-widget registry: placement rules reject bad registrations, accept goo
|
|
|
314
314
|
assert.ok(reg({ id: 'e', view: 'home', zone: 'home-main', summary: true }));
|
|
315
315
|
assert.ok(reg({ id: 'f', view: 'home', zone: 'home-main', collapsedByDefault: true }));
|
|
316
316
|
assert.ok(reg({ id: 'g', view: 'home', zone: 'home-main', core: true }));
|
|
317
|
-
//
|
|
318
|
-
|
|
317
|
+
// task 1005050: 'standing' (Accomplishments) left the views with the view
|
|
318
|
+
// itself — it folded into the Profile page — so a widget naming it is refused.
|
|
319
|
+
assert.equal(reg({ id: 'h', view: 'standing', group: 'work' }), null);
|
|
320
|
+
assert.match(errors.at(-1), /unknown view "standing"/);
|
|
319
321
|
|
|
320
|
-
// only the accepted
|
|
321
|
-
assert.deepEqual(OTB.hallWidgetIds(), ['e', 'f', 'g'
|
|
322
|
+
// only the accepted three reached the registry
|
|
323
|
+
assert.deepEqual(OTB.hallWidgetIds(), ['e', 'f', 'g']);
|
|
322
324
|
} finally {
|
|
323
325
|
console.error = realError;
|
|
324
326
|
delete global.window;
|
|
@@ -97,8 +97,9 @@ test('the hall-preview fixture carries every atom /me resolves', () => {
|
|
|
97
97
|
// core-update banner; task 1005045: the Market Watch settings item left (one sidebar item);
|
|
98
98
|
// task 1005046: Ranks, Economy and Diagrams left Docs (one reading room, the Primer);
|
|
99
99
|
// task 1005049: Sessions and Autobongos left the sidebar (tabs on Watch);
|
|
100
|
-
// task 1005076: the setup flow's holdForSetup
|
|
101
|
-
|
|
100
|
+
// task 1005076: the setup flow's holdForSetup;
|
|
101
|
+
// task 1005050: Accomplishments left it (folded into Profile; its hashes redirect).
|
|
102
|
+
const SHELL_SHA = '050dbf4ceac560dc';
|
|
102
103
|
|
|
103
104
|
test('shell.js has not changed without its cache-bust being bumped', () => {
|
|
104
105
|
const actual = crypto.createHash('sha256').update(SHELL).digest('hex').slice(0, 16);
|
|
@@ -195,7 +195,8 @@ await test('the status page and the acclaim feed render the helper', () => {
|
|
|
195
195
|
const status = readFileSync(new URL('../modules/status-ui/public/status.js', import.meta.url), 'utf8');
|
|
196
196
|
assert.match(status, /t\.helper_display_name \|\| t\.helper_login/);
|
|
197
197
|
assert.match(status, /with help from \$\{helper\}/);
|
|
198
|
-
|
|
198
|
+
// task 1005050: the acclaim feed moved with Accomplishments to the profile's "Just you" screen.
|
|
199
|
+
const hall = readFileSync(new URL('../modules/hall-ui/public/profile-own.js', import.meta.url), 'utf8');
|
|
199
200
|
assert.match(hall, /with help from \$\{escapeHtml\(helperName\)\}/, 'escaped before it reaches innerHTML');
|
|
200
201
|
const feed = readFileSync(new URL('../modules/lifecycle/routes/tasks.js', import.meta.url), 'utf8');
|
|
201
202
|
assert.match(feed, /helper\.helper_login, helper\.helper_display_name/, 'the acclaim feed carries the helper');
|
|
@@ -93,6 +93,9 @@ const STATIC_LADDER_FILES = [
|
|
|
93
93
|
'modules/discord/discord-channels.js',
|
|
94
94
|
'modules/memory/search.js',
|
|
95
95
|
'modules/hall-ui/public/profile.js',
|
|
96
|
+
// task 1005050: Where you stand moved with Accomplishments to the profile's "Just
|
|
97
|
+
// you" screen and reads the rung above yours off this ladder.
|
|
98
|
+
'modules/hall-ui/public/profile-own.js',
|
|
96
99
|
// task 1005048: the rank <select> on each roster row moved from watch.js to the
|
|
97
100
|
// Builders page with the roster itself; the copy moved with it.
|
|
98
101
|
'modules/hall-ui/public/roster.js',
|
package/tests/task_visuals.mjs
CHANGED
|
@@ -280,7 +280,9 @@ await t('the callers reach for OTBVisual, and no longer for the kit', () => {
|
|
|
280
280
|
assert.ok(!/OTBKit(\.|\[')?\s*(shipVisualThumbHtml|taskVisualFigureHtml|isTaskVisualUrl)/.test(src),
|
|
281
281
|
`${f} still reads a visual renderer off OTBKit`);
|
|
282
282
|
}
|
|
283
|
-
|
|
283
|
+
// task 1005050: Home's ship ledger (the one hall-render.js thumbnail) left with
|
|
284
|
+
// Accomplishments; the Profile's Works ledger is the ship-thumbnail caller now.
|
|
285
|
+
assert.ok(HALL('profile.js').includes('window.OTBVisual.shipVisualThumbHtml'));
|
|
284
286
|
assert.ok(HALL('studio.js').includes('vis.taskVisualFigureHtml('));
|
|
285
287
|
});
|
|
286
288
|
|