@ibgib/web-gib 0.0.62 → 0.0.64
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/README.md +4 -0
- package/dist/AUTO-GENERATED-version.d.mts +1 -1
- package/dist/AUTO-GENERATED-version.mjs +1 -1
- package/dist/helpers.web.d.mts +17 -2
- package/dist/helpers.web.d.mts.map +1 -1
- package/dist/helpers.web.mjs +67 -2
- package/dist/helpers.web.mjs.map +1 -1
- package/dist/helpers.web.respec.mjs +37 -10
- package/dist/helpers.web.respec.mjs.map +1 -1
- package/dist/identity/passkey-helper.d.mts +7 -2
- package/dist/identity/passkey-helper.d.mts.map +1 -1
- package/dist/identity/passkey-helper.mjs +33 -12
- package/dist/identity/passkey-helper.mjs.map +1 -1
- package/dist/index.d.mts +3 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +4 -0
- package/dist/index.mjs.map +1 -1
- package/dist/ui/component/identity/keystone-creator/keystone-creator.css +26 -0
- package/dist/ui/component/identity/keystone-creator/keystone-creator.d.mts.map +1 -1
- package/dist/ui/component/identity/keystone-creator/keystone-creator.html +18 -1
- package/dist/ui/component/identity/keystone-creator/keystone-creator.mjs +10 -2
- package/dist/ui/component/identity/keystone-creator/keystone-creator.mjs.map +1 -1
- package/dist/ui/component/identity/keystone-details/keystone-details.d.mts +12 -0
- package/dist/ui/component/identity/keystone-details/keystone-details.d.mts.map +1 -1
- package/dist/ui/component/identity/keystone-details/keystone-details.html +8 -0
- package/dist/ui/component/identity/keystone-details/keystone-details.mjs +419 -305
- package/dist/ui/component/identity/keystone-details/keystone-details.mjs.map +1 -1
- package/dist/ui/ui-helpers.d.mts.map +1 -1
- package/dist/ui/ui-helpers.mjs +7 -2
- package/dist/ui/ui-helpers.mjs.map +1 -1
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-constants.d.mts +7 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-constants.d.mts.map +1 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-constants.mjs +7 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-constants.mjs.map +1 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-types.d.mts +24 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-types.d.mts.map +1 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-types.mjs +23 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-types.mjs.map +1 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.d.mts +85 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.d.mts.map +1 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.mjs +343 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.mjs.map +1 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.respec.d.mts +8 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.respec.d.mts.map +1 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.respec.mjs +249 -0
- package/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.respec.mjs.map +1 -0
- package/package.json +2 -2
- package/src/AUTO-GENERATED-version.mts +1 -1
- package/src/helpers.mts +1 -1
- package/src/helpers.web.mts +95 -5
- package/src/helpers.web.respec.mts +41 -10
- package/src/identity/passkey-helper.mts +43 -10
- package/src/index.mts +5 -0
- package/src/ui/component/identity/keystone-creator/keystone-creator.css +26 -0
- package/src/ui/component/identity/keystone-creator/keystone-creator.html +18 -1
- package/src/ui/component/identity/keystone-creator/keystone-creator.mts +12 -2
- package/src/ui/component/identity/keystone-details/keystone-details.html +8 -0
- package/src/ui/component/identity/keystone-details/keystone-details.mts +474 -339
- package/src/ui/ui-helpers.mts +6 -2
- package/src/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-constants.mts +8 -0
- package/src/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-types.mts +53 -0
- package/src/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.mts +424 -0
- package/src/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.respec.mts +304 -0
- package/tools/auto-generated-agent-skills/skills/ibgib-create-app/SKILL.md +65 -39
- package/tools/auto-generated-agent-skills/skills/ibgib-create-client-app/SKILL.md +51 -0
- package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/SKILL.md +26 -22
- package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-witness → ibgib-create-client-app-witness}/SKILL.md +11 -7
- package/tools/auto-generated-agent-skills/skills/ibgib-create-client-identity/SKILL.md +78 -0
- package/tools/auto-generated-agent-skills/skills/ibgib-create-client-shell/SKILL.md +42 -0
- package/tools/auto-generated-agent-skills/skills/ibgib-create-server-app/SKILL.md +50 -0
- package/tools/auto-generated-agent-skills/skills/ibgib-create-server-app/templates/Dockerfile.template +14 -0
- package/tools/auto-generated-agent-skills/skills/ibgib-create-server-app/templates/docker-compose.yml.template +33 -0
- package/tools/auto-generated-agent-skills/skills/ibgib-create-server-app/templates/server.mts.template +97 -0
- package/tools/auto-generated-agent-skills/skills/ibgib-create-server-app/templates/tsconfig.server.json.template +29 -0
- package/tools/auto-generated-agent-skills/skills/ibgib-implementation-plan/SKILL.md +4 -1
- package/src/identity/custodian-delegate-helper.mts.bak +0 -7
- package/src/identity/sso/sso-config-helper.mts.bak +0 -52
- package/src/identity/sso/sso-custodian-service.mts.bak +0 -566
- package/src/identity/sso/sso-custodian-service.respec.mts.bak +0 -298
- package/tools/auto-generated-agent-skills/skills/ibgib-create-shell/SKILL.md +0 -40
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/generate-id.js +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/generate-version-file.js +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/templates/bootstrap.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/templates/constants.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/templates/declarations.d.ts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/templates/helpers.web.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/templates/index.html.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/templates/index.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/templates/script.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-core → ibgib-create-client-app-core}/templates/types.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-witness → ibgib-create-client-app-witness}/templates/api/function-infos.web.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-witness → ibgib-create-client-app-witness}/templates/witness/app/app-v1.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-witness → ibgib-create-client-app-witness}/templates/witness/app/constants.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-witness → ibgib-create-client-app-witness}/templates/witness/app/helper.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-app-witness → ibgib-create-client-app-witness}/templates/witness/app/types.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-shell → ibgib-create-client-shell}/templates/ui/shell/shell-constants.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-shell → ibgib-create-client-shell}/templates/ui/shell/shell-service.mts.template +0 -0
- /package/tools/auto-generated-agent-skills/skills/{ibgib-create-shell → ibgib-create-client-shell}/templates/ui/shell/shell-types.mts.template +0 -0
|
@@ -199,4 +199,30 @@ h2 {
|
|
|
199
199
|
input::placeholder {
|
|
200
200
|
color: rgba(255, 255, 255, 0.35);
|
|
201
201
|
opacity: 1;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.public-directory-notice {
|
|
205
|
+
padding: 0.75rem 1rem;
|
|
206
|
+
border-radius: 8px;
|
|
207
|
+
background: rgba(137, 180, 250, 0.08);
|
|
208
|
+
border: 1px solid rgba(137, 180, 250, 0.25);
|
|
209
|
+
display: flex;
|
|
210
|
+
gap: 0.6rem;
|
|
211
|
+
align-items: flex-start;
|
|
212
|
+
text-align: left;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.notice-icon {
|
|
216
|
+
font-size: 1.1rem;
|
|
217
|
+
line-height: 1.2;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.notice-body {
|
|
221
|
+
font-size: 0.82rem;
|
|
222
|
+
color: var(--clr-text, #cdd6f4);
|
|
223
|
+
line-height: 1.45;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.notice-body strong {
|
|
227
|
+
color: #89b4fa;
|
|
202
228
|
}
|
|
@@ -80,6 +80,15 @@
|
|
|
80
80
|
<input type="text" id="input-passkey-name" placeholder="e.g. MacBook Touch ID, YubiKey 5Ci, Android Phone..." class="text-input">
|
|
81
81
|
</div>
|
|
82
82
|
|
|
83
|
+
<div class="input-group">
|
|
84
|
+
<label for="select-passkey-attachment">Authenticator Device Target</label>
|
|
85
|
+
<select id="select-passkey-attachment" class="text-input" style="cursor: pointer;">
|
|
86
|
+
<option value="any" selected>Any / Smart Chooser (All Options, No Forced Windows PIN)</option>
|
|
87
|
+
<option value="cross-platform">Hardware Security Key (USB / NFC YubiKey Directly)</option>
|
|
88
|
+
<option value="platform">Built-in Biometrics (Windows Hello, Touch ID, Fingerprint)</option>
|
|
89
|
+
</select>
|
|
90
|
+
</div>
|
|
91
|
+
|
|
83
92
|
<div class="checkbox-group" style="margin-top: 0.5rem; margin-bottom: 1rem; display: flex; align-items: center; gap: 0.5rem;">
|
|
84
93
|
<input type="checkbox" id="checkbox-passkey-make-active" checked style="cursor: pointer; width: 1rem; height: 1rem;">
|
|
85
94
|
<label for="checkbox-passkey-make-active" style="cursor: pointer; font-size: 0.9rem; user-select: none;">Make this the active identity</label>
|
|
@@ -150,13 +159,21 @@
|
|
|
150
159
|
<p class="warning">⚠️ Store this address safely. It is your root identity for this space.</p>
|
|
151
160
|
</div>
|
|
152
161
|
|
|
162
|
+
<!-- Public Directory Notice Callout -->
|
|
163
|
+
<div class="public-directory-notice">
|
|
164
|
+
<span class="notice-icon">ℹ️</span>
|
|
165
|
+
<div class="notice-body">
|
|
166
|
+
<strong>Public Directory Notice:</strong> Your username and registered email address are associated with your public identity keystone and can be queried on the network (similar to a public PGP key or public DNS record).
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
169
|
+
|
|
153
170
|
<div class="switch-workflow" style="margin-top: 1.2rem; text-align: center; font-size: 0.9rem; color: #a6adc8;">
|
|
154
171
|
Already have a device paired? <button id="btn-switch-sign-in" class="link-btn" style="background: none; border: none; color: #89b4fa; font-weight: 600; cursor: pointer; text-decoration: underline; padding: 0; font-size: 0.9rem;">Pair New Device</button>
|
|
155
172
|
</div>
|
|
156
173
|
|
|
157
174
|
<!-- Privacy Footer Note -->
|
|
158
175
|
<div class="privacy-footer" style="margin-top: 1rem; text-align: center; font-size: 0.78rem; color: #a6adc8; line-height: 1.4;">
|
|
159
|
-
|
|
176
|
+
Identity keystones form part of the public graph for account discovery. Learn more in our <a id="link-privacy-policy" href="/privacy" target="_blank" rel="noopener" style="color: #89b4fa; text-decoration: underline;">Privacy Policy</a>.
|
|
160
177
|
</div>
|
|
161
178
|
</div>
|
|
162
179
|
</div>
|
|
@@ -696,12 +696,21 @@ export class KeystoneCreatorComponentInstance
|
|
|
696
696
|
animationEmoji: '🛡️'
|
|
697
697
|
});
|
|
698
698
|
|
|
699
|
+
const selectAttachment = this.shadowRoot?.querySelector('#select-passkey-attachment') as HTMLSelectElement | null;
|
|
700
|
+
const attachmentVal = selectAttachment?.value;
|
|
701
|
+
const authenticatorAttachment: AuthenticatorAttachment | undefined =
|
|
702
|
+
(attachmentVal === 'cross-platform' || attachmentVal === 'platform')
|
|
703
|
+
? attachmentVal
|
|
704
|
+
: undefined;
|
|
705
|
+
|
|
699
706
|
const rawSalt = crypto.getRandomValues(new Uint8Array(32));
|
|
700
707
|
const saltHex = bufferToHex(rawSalt.buffer as ArrayBuffer);
|
|
701
708
|
const regResult = await registerPasskeyCredential({
|
|
702
709
|
username,
|
|
703
710
|
displayName: username,
|
|
704
|
-
salt: saltHex
|
|
711
|
+
salt: saltHex,
|
|
712
|
+
authenticatorAttachment,
|
|
713
|
+
userVerification: 'preferred'
|
|
705
714
|
});
|
|
706
715
|
const { credentialId, transports } = regResult;
|
|
707
716
|
|
|
@@ -710,7 +719,8 @@ export class KeystoneCreatorComponentInstance
|
|
|
710
719
|
const prfResult = await evaluatePasskeyPrf({
|
|
711
720
|
credentialId,
|
|
712
721
|
salt: saltHex,
|
|
713
|
-
transports
|
|
722
|
+
transports,
|
|
723
|
+
userVerification: 'preferred'
|
|
714
724
|
});
|
|
715
725
|
passkeySecret = prfResult.passkeySecret;
|
|
716
726
|
}
|
|
@@ -97,6 +97,14 @@
|
|
|
97
97
|
</tbody>
|
|
98
98
|
</table>
|
|
99
99
|
</div>
|
|
100
|
+
<div class="form-group" style="margin-top: 1rem; max-width: 360px;">
|
|
101
|
+
<label for="select-passkey-attachment" style="font-size: 0.85rem; color: var(--clr-text-secondary, #b3b3b3);">Authenticator Device Target</label>
|
|
102
|
+
<select id="select-passkey-attachment" class="form-control" style="width: 100%; padding: 0.4rem 0.6rem; margin-top: 0.25rem; border-radius: 4px; background: rgba(0,0,0,0.3); color: inherit; border: 1px solid rgba(255,255,255,0.2);">
|
|
103
|
+
<option value="">Any (Default / Auto-Detect)</option>
|
|
104
|
+
<option value="cross-platform">🔑 Hardware Security Key (USB / NFC)</option>
|
|
105
|
+
<option value="platform">💻 Built-in Biometrics (Fingerprint / Touch ID)</option>
|
|
106
|
+
</select>
|
|
107
|
+
</div>
|
|
100
108
|
<div class="action-row" style="margin-top: 0.5rem;">
|
|
101
109
|
<button id="btn-add-passkey" class="action-btn">
|
|
102
110
|
🛡️ Register New Passkey / Security Key
|