@dxos/credentials 0.3.11-next.0fb359e → 0.3.11-next.ee2b64c
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.
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/invitations.ts", "../../../src/passcode.ts", "../../../src/credentials/signing.ts", "../../../src/presentations/signing.ts", "../../../src/credentials/assertions.ts", "../../../src/credentials/credential-factory.ts", "../../../src/credentials/verifier.ts", "../../../src/credentials/credential-generator.ts", "../../../src/presentations/presentation.ts", "../../../src/presentations/verifier.ts", "../../../src/state-machine/space-state-machine.ts", "../../../src/state-machine/feed-state-machine.ts", "../../../src/state-machine/member-state-machine.ts", "../../../src/processor/device-state-machine.ts", "../../../src/processor/profile-state-machine.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2019 DXOS.org\n//\n\n/**\n * Info required for offline invitations.\n */\n// TODO(burdon): Define types.\nexport interface SecretInfo {\n id: any;\n authNonce: any;\n}\n\n/**\n * Provides a shared secret during an invitation process.\n */\nexport type SecretProvider = (info?: SecretInfo) => Promise<Buffer>;\n\n/**\n * Validates the shared secret during an invitation process.\n */\nexport type SecretValidator = (invitation: never, secret: Buffer) => Promise<boolean>;\n\nexport const defaultSecretProvider: SecretProvider = async () => Buffer.from('0000');\n\nexport const defaultSecretValidator: SecretValidator = async (invitation, secret) => true;\n", "//\n// Copyright 2019 DXOS.org\n//\n\n/**\n * Generates a numeric passcode.\n * @param {number} length\n * @returns {string}\n */\nexport const generatePasscode = (length = 4) => {\n let passcode = '';\n for (let i = 0; i < length; i++) {\n passcode += `${Math.floor(Math.random() * 10)}`;\n }\n\n return passcode;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport stableStringify from 'json-stable-stringify';\n\nimport { PublicKey } from '@dxos/keys';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { Timeframe } from '@dxos/timeframe';\nimport { arrayToBuffer } from '@dxos/util';\n\n/**\n * @returns The input message to be signed for a given credential.\n */\nexport const getCredentialProofPayload = (credential: Credential): Uint8Array => {\n const copy = {\n ...credential,\n proof: {\n ...credential.proof,\n value: new Uint8Array(),\n chain: undefined,\n },\n };\n delete copy.id; // ID is not part of the signature payload.\n\n return Buffer.from(canonicalStringify(copy));\n};\n\n/**\n * Utility method to produce stable output for signing/verifying.\n */\nexport const canonicalStringify = (obj: any) =>\n stableStringify(obj, {\n /* The point of signing and verifying is not that the internal, private state of the objects be\n * identical, but that the public contents can be verified not to have been altered. For that reason,\n * really private fields (indicated by '__') are not included in the signature.\n * This gives a mechanism for attaching other attributes to an object without breaking the signature.\n * We also skip @type.\n */\n // TODO(dmaretskyi): Should we actually skip the @type field?\n replacer: function (this: any, key: any, value: any) {\n if (key.toString().startsWith('__') || key.toString() === '@type') {\n return undefined;\n }\n\n if (value === null) {\n return undefined;\n }\n\n // Value before .toJSON() is called.\n const original = this[key];\n\n if (value) {\n if (PublicKey.isPublicKey(value)) {\n return value.toHex();\n }\n if (Buffer.isBuffer(value)) {\n return value.toString('hex');\n }\n\n if (value instanceof Uint8Array) {\n return arrayToBuffer(value).toString('hex');\n }\n if (value.data && value.type === 'Buffer') {\n return Buffer.from(value).toString('hex');\n }\n if (original instanceof Timeframe) {\n // Uses old key truncation method (339d...9d66) to keep backwards compatibility.\n return original.frames().reduce((frames: Record<string, number>, [key, seq]) => {\n frames[truncateKey(key)] = seq;\n return frames;\n }, {});\n }\n }\n\n return value;\n },\n });\n\n/**\n * Old key truncation method (339d...9d66) to keep backwards compatibility with credentials signed with old method\n */\nconst truncateKey = (key: PublicKey) => {\n const str = key.toHex();\n return `${str.substring(0, 4)}...${str.substring(str.length - 4)}`;\n};\n\n/**\n * export const truncateKey = (key: any, { length = 8, start }: TruncateKeyOptions = {}) => {\nconst str = String(key);\nif (str.length <= length) {\n return str;\n}\n\nreturn start\n ? `${str.slice(0, length)}...`\n : `${str.substring(0, length / 2)}...${str.substring(str.length - length / 2)}`;\n};\n\n{\n\"04009285\": 20,\n\"0415004f\": 0,\n\"0415e6d7\": 9964,\n\"042a4fa9\": 8,\n\"0448e62f\": 3,\n\"04775053\": 257,\n\"04a6b603\": 97,\n\"04bc5c9d\": 198,\n\"04da9930\": 59,\n\"04df0449\": 676,\n\"04e122ae\": 5435,\n\"04ee588b\": 1703\n}\n\n */\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Credential, type Proof } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { canonicalStringify } from '../credentials/signing';\n\nexport const getPresentationProofPayload = (credentials: Credential[], proof: Proof): Uint8Array => {\n const copy = {\n credentials,\n proof: {\n ...proof,\n value: new Uint8Array(),\n chain: undefined,\n },\n };\n\n return Buffer.from(canonicalStringify(copy));\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type PublicKey } from '@dxos/keys';\nimport { type TYPES, type TypedMessage } from '@dxos/protocols';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nexport const getCredentialAssertion = (credential: Credential): TypedMessage => credential.subject.assertion;\n\nexport const isValidAuthorizedDeviceCredential = (\n credential: Credential,\n identityKey: PublicKey,\n deviceKey: PublicKey,\n): boolean => {\n const assertion = getCredentialAssertion(credential);\n return (\n credential.subject.id.equals(deviceKey) &&\n credential.issuer.equals(identityKey) &&\n assertion['@type'] === 'dxos.halo.credentials.AuthorizedDevice' &&\n assertion.identityKey.equals(identityKey) &&\n assertion.deviceKey.equals(deviceKey)\n );\n};\n\nexport type SpecificCredential<T> = Omit<Credential, 'subject'> & {\n subject: Omit<Credential['subject'], 'assertion'> & { assertion: T };\n};\n\nexport const checkCredentialType = <K extends keyof TYPES>(\n credential: Credential,\n type: K,\n): credential is SpecificCredential<TYPES[K]> => credential.subject.assertion['@type'] === type;\n\nexport const credentialTypeFilter =\n <K extends keyof TYPES>(type: K) =>\n (credential: Credential): credential is SpecificCredential<TYPES[K]> =>\n checkCredentialType(credential, type);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Signer, subtleCrypto } from '@dxos/crypto';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { type TypedMessage } from '@dxos/protocols';\nimport { type Chain, type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { getCredentialProofPayload } from './signing';\nimport { SIGNATURE_TYPE_ED25519, verifyChain } from './verifier';\n\nexport type CreateCredentialSignerParams = {\n subject: PublicKey;\n assertion: TypedMessage;\n nonce?: Uint8Array;\n};\n\nexport type CreateCredentialParams = {\n signer: Signer;\n issuer: PublicKey;\n signingKey?: PublicKey;\n\n // Provided only if signer is different from issuer.\n chain?: Chain;\n\n subject: PublicKey;\n assertion: TypedMessage;\n nonce?: Uint8Array;\n};\n\n/**\n * Construct a signed credential message.\n */\nexport const createCredential = async ({\n signer,\n issuer,\n subject,\n assertion,\n signingKey,\n chain,\n nonce,\n}: CreateCredentialParams): Promise<Credential> => {\n invariant(assertion['@type'], 'Invalid assertion.');\n invariant(!!signingKey === !!chain, 'Chain must be provided if and only if the signing key differs from the issuer.');\n if (chain) {\n const result = await verifyChain(chain, issuer, signingKey!);\n invariant(result.kind === 'pass', 'Invalid chain.');\n }\n\n // Create the credential with proof value and chain fields missing (for signature payload).\n const credential: Credential = {\n issuer,\n issuanceDate: new Date(),\n subject: {\n id: subject,\n assertion,\n },\n proof: {\n type: SIGNATURE_TYPE_ED25519,\n creationDate: new Date(),\n signer: signingKey ?? issuer,\n value: new Uint8Array(),\n nonce,\n },\n };\n\n // Set proof after creating signature.\n const signedPayload = getCredentialProofPayload(credential);\n credential.proof!.value = await signer.sign(signingKey ?? issuer, signedPayload);\n if (chain) {\n credential.proof!.chain = chain;\n }\n\n credential.id = PublicKey.from(await subtleCrypto.digest('SHA-256', signedPayload));\n\n return credential;\n};\n\n// TODO(burdon): Use consistently (merge halo/echo protocol packages).\nexport const createCredentialMessage = (credential: Credential) => {\n return {\n '@type': 'dxos.echo.feed.CredentialsMessage',\n credential,\n };\n};\n\n// TODO(burdon): Vs. Signer.\nexport interface CredentialSigner {\n getIssuer(): PublicKey;\n createCredential: (params: CreateCredentialSignerParams) => Promise<Credential>;\n}\n\n/**\n * Issue credentials directly signed by the issuer.\n */\nexport const createCredentialSignerWithKey = (signer: Signer, issuer: PublicKey): CredentialSigner => ({\n getIssuer: () => issuer,\n createCredential: ({ subject, assertion, nonce }) =>\n createCredential({\n signer,\n issuer,\n subject,\n assertion,\n nonce,\n }),\n});\n\n/**\n * Issue credentials with transitive proof via a chain.\n */\nexport const createCredentialSignerWithChain = (\n signer: Signer,\n chain: Chain,\n signingKey: PublicKey,\n): CredentialSigner => ({\n getIssuer: () => chain.credential.issuer,\n createCredential: ({ subject, assertion, nonce }) =>\n createCredential({\n signer,\n issuer: chain.credential.issuer,\n signingKey,\n chain,\n subject,\n assertion,\n nonce,\n }),\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { verifySignature } from '@dxos/crypto';\nimport { type PublicKey } from '@dxos/keys';\nimport { type Chain, type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { isValidAuthorizedDeviceCredential } from './assertions';\nimport { getCredentialProofPayload } from './signing';\n\nexport const SIGNATURE_TYPE_ED25519 = 'ED25519Signature';\n\nexport type VerificationResult = { kind: 'pass' } | { kind: 'fail'; errors: string[] };\n\nexport const verifyCredential = async (credential: Credential): Promise<VerificationResult> => {\n if (!credential.issuer.equals(credential.proof!.signer)) {\n if (!credential.proof!.chain) {\n return {\n kind: 'fail',\n errors: ['Delegated credential is missing credential chain.'],\n };\n }\n\n const result = await verifyChain(credential.proof!.chain, credential.issuer, credential.proof!.signer);\n if (result.kind === 'fail') {\n return result;\n }\n }\n\n const result = await verifyCredentialSignature(credential);\n if (result.kind === 'fail') {\n return result;\n }\n\n return { kind: 'pass' };\n};\n\n/**\n * Verifies that the signature is valid and was made by the signer.\n * Does not validate other semantics (e.g. chains).\n */\nexport const verifyCredentialSignature = async (credential: Credential): Promise<VerificationResult> => {\n if (credential.proof!.type !== SIGNATURE_TYPE_ED25519) {\n return {\n kind: 'fail',\n errors: [`Invalid signature type: ${credential.proof!.type}`],\n };\n }\n\n const signData = getCredentialProofPayload(credential);\n if (!(await verifySignature(credential.proof!.signer, signData, credential.proof!.value))) {\n return { kind: 'fail', errors: ['Invalid signature'] };\n }\n\n return { kind: 'pass' };\n};\n\n/**\n * Verifies the the signer has the delegated authority to create credentials on the half of the issuer.\n */\nexport const verifyChain = async (\n chain: Chain,\n authority: PublicKey,\n subject: PublicKey,\n): Promise<VerificationResult> => {\n const result = await verifyCredential(chain.credential);\n if (result.kind === 'fail') {\n return result;\n }\n\n if (!isValidAuthorizedDeviceCredential(chain.credential, authority, subject)) {\n return {\n kind: 'fail',\n errors: [`Invalid credential chain: invalid assertion for key: ${subject}`],\n };\n }\n\n return { kind: 'pass' };\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Signer } from '@dxos/crypto';\nimport { type PublicKey } from '@dxos/keys';\nimport { type TypedMessage } from '@dxos/protocols';\nimport { type FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport {\n AdmittedFeed,\n type Credential,\n type DeviceProfileDocument,\n type ProfileDocument,\n SpaceMember,\n} from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { Timeframe } from '@dxos/timeframe';\n\nimport { createCredential, type CredentialSigner } from './credential-factory';\n\n// TODO(burdon): Normalize generate and functions below.\n// Use throughout stack and in tests.\n\n/**\n * Utility class for generating credential messages, where the issuer is the current identity or device.\n */\nexport class CredentialGenerator {\n constructor(\n private readonly _signer: Signer,\n private readonly _identityKey: PublicKey,\n private readonly _deviceKey: PublicKey,\n ) {}\n\n /**\n * Create genesis messages for new Space.\n */\n async createSpaceGenesis(\n spaceKey: PublicKey,\n controlKey: PublicKey,\n creatorProfile?: ProfileDocument,\n ): Promise<Credential[]> {\n return [\n await createCredential({\n signer: this._signer,\n issuer: spaceKey,\n subject: spaceKey,\n assertion: {\n '@type': 'dxos.halo.credentials.SpaceGenesis',\n spaceKey,\n },\n }),\n\n await createCredential({\n signer: this._signer,\n issuer: spaceKey,\n subject: this._identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.SpaceMember',\n spaceKey,\n role: SpaceMember.Role.ADMIN,\n profile: creatorProfile,\n genesisFeedKey: controlKey,\n },\n }),\n\n await this.createFeedAdmission(spaceKey, controlKey, AdmittedFeed.Designation.CONTROL),\n ];\n }\n\n /**\n * Create invitation.\n * Admit identity and control and data feeds.\n */\n // TODO(burdon): Reconcile with above (esp. Signer).\n async createMemberInvitation(\n spaceKey: PublicKey,\n identityKey: PublicKey,\n deviceKey: PublicKey,\n controlKey: PublicKey,\n dataKey: PublicKey,\n genesisFeedKey: PublicKey,\n ): Promise<Credential[]> {\n return [\n await createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.SpaceMember',\n spaceKey,\n role: SpaceMember.Role.MEMBER,\n genesisFeedKey,\n },\n }),\n\n await this.createFeedAdmission(spaceKey, controlKey, AdmittedFeed.Designation.CONTROL),\n await this.createFeedAdmission(spaceKey, dataKey, AdmittedFeed.Designation.DATA),\n ];\n }\n\n /**\n * Add device to space.\n */\n // TODO(burdon): Reconcile with below.\n async createDeviceAuthorization(deviceKey: PublicKey): Promise<Credential> {\n return createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: deviceKey,\n assertion: {\n '@type': 'dxos.halo.credentials.AuthorizedDevice',\n identityKey: this._identityKey,\n deviceKey,\n },\n });\n }\n\n /**\n * Add device metadata.\n */\n async createDeviceProfile(profile: DeviceProfileDocument): Promise<Credential> {\n return createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: this._deviceKey,\n assertion: {\n '@type': 'dxos.halo.credentials.DeviceProfile',\n profile,\n },\n });\n }\n\n /**\n * Add feed to space.\n */\n async createFeedAdmission(\n spaceKey: PublicKey,\n feedKey: PublicKey,\n designation: AdmittedFeed.Designation,\n ): Promise<Credential> {\n return createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: feedKey,\n assertion: {\n '@type': 'dxos.halo.credentials.AdmittedFeed',\n spaceKey,\n identityKey: this._identityKey,\n deviceKey: this._deviceKey,\n designation,\n },\n });\n }\n\n async createProfileCredential(profile: ProfileDocument): Promise<Credential> {\n return createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: this._identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.IdentityProfile',\n profile,\n },\n });\n }\n\n async createEpochCredential(spaceKey: PublicKey): Promise<Credential> {\n return createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: spaceKey,\n assertion: {\n '@type': 'dxos.halo.credentials.Epoch',\n number: 0,\n timeframe: new Timeframe(),\n },\n });\n }\n}\n\n// TODO(burdon): Reconcile with above (esp. Signer).\nexport const createDeviceAuthorization = async (\n signer: CredentialSigner,\n identityKey: PublicKey,\n deviceKey: PublicKey,\n): Promise<TypedMessage[]> => {\n const credentials = await Promise.all([\n await signer.createCredential({\n subject: deviceKey,\n assertion: {\n '@type': 'dxos.halo.credentials.AuthorizedDevice',\n identityKey,\n deviceKey,\n },\n }),\n ]);\n\n return credentials.map((credential) => ({\n '@type': 'dxos.echo.feed.CredentialsMessage',\n credential,\n }));\n};\n\n// TODO(burdon): Reconcile with above (esp. Signer).\nexport const createAdmissionCredentials = async (\n signer: CredentialSigner,\n identityKey: PublicKey,\n spaceKey: PublicKey,\n genesisFeedKey: PublicKey,\n profile?: ProfileDocument,\n): Promise<FeedMessage.Payload[]> => {\n const credentials = await Promise.all([\n await signer.createCredential({\n subject: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.SpaceMember',\n spaceKey,\n role: SpaceMember.Role.ADMIN, // TODO(burdon): Configure.\n profile,\n genesisFeedKey,\n },\n }),\n ]);\n\n return credentials.map((credential) => ({\n credential: { credential },\n }));\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Signer } from '@dxos/crypto';\nimport { type PublicKey } from '@dxos/keys';\nimport { type Chain, type Presentation, type Proof } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { getPresentationProofPayload } from './signing';\nimport { SIGNATURE_TYPE_ED25519 } from '../credentials';\n\nexport const signPresentation = async ({\n presentation,\n signer,\n signerKey,\n chain,\n nonce,\n}: {\n presentation: Presentation;\n signer: Signer;\n signerKey: PublicKey;\n chain?: Chain;\n nonce?: Uint8Array;\n}): Promise<Presentation> => {\n const proof: Proof = {\n type: SIGNATURE_TYPE_ED25519,\n value: new Uint8Array(),\n creationDate: new Date(),\n signer: signerKey,\n nonce,\n };\n\n const signedPayload = getPresentationProofPayload(presentation.credentials ?? [], proof);\n proof.value = await signer.sign(signerKey, signedPayload);\n if (chain) {\n proof.chain = chain;\n }\n\n return {\n credentials: presentation.credentials,\n proofs: [...(presentation.proofs ?? []), proof],\n };\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { verifySignature } from '@dxos/crypto';\nimport { type Presentation, type Proof } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { getPresentationProofPayload } from './signing';\nimport { SIGNATURE_TYPE_ED25519, type VerificationResult, verifyChain, verifyCredential } from '../credentials';\n\nexport const verifyPresentation = async (presentation: Presentation): Promise<VerificationResult> => {\n const errors: string[] = [];\n\n // Verify all credentials.\n const credentialsVerifications = await Promise.all(\n presentation.credentials?.map((credential) => verifyCredential(credential)) ?? [],\n );\n for (const verification of credentialsVerifications) {\n if (verification.kind === 'fail') {\n errors.push(...verification.errors);\n }\n }\n\n // Verify all proofs.\n const proofVerification = await Promise.all(\n presentation.proofs?.map(async (proof) => {\n const chainVerification = await verifyPresentationChain(presentation, proof);\n if (chainVerification.kind === 'fail') {\n return chainVerification;\n }\n const signatureVerification = await verifyPresentationSignature(presentation, proof);\n if (signatureVerification.kind === 'fail') {\n return signatureVerification;\n }\n return { kind: 'pass' } as VerificationResult;\n }) ?? [],\n );\n for (const verification of proofVerification) {\n if (verification.kind === 'fail') {\n errors.push(...verification.errors);\n }\n }\n\n if (errors.length === 0) {\n return { kind: 'pass' };\n }\n {\n return {\n kind: 'fail',\n errors,\n };\n }\n};\n\nexport const verifyPresentationChain = async (\n presentation: Presentation,\n proof: Proof,\n): Promise<VerificationResult> => {\n for (const credential of presentation.credentials ?? []) {\n if (!credential.issuer.equals(proof.signer)) {\n if (!proof.chain) {\n return {\n kind: 'fail',\n errors: ['Delegated credential is missing credential chain.'],\n };\n }\n\n const chainVerification = await verifyChain(proof.chain, credential.issuer, proof.signer);\n if (chainVerification.kind === 'fail') {\n return chainVerification;\n }\n }\n }\n\n return { kind: 'pass' };\n};\n\n/**\n * Verifies that the signature is valid and was made by the signer.\n * Does not validate other semantics (e.g. chains).\n */\nexport const verifyPresentationSignature = async (\n presentation: Presentation,\n proof: Proof,\n): Promise<VerificationResult> => {\n if (proof.type !== SIGNATURE_TYPE_ED25519) {\n return {\n kind: 'fail',\n errors: [`Invalid signature type: ${proof.type}`],\n };\n }\n\n const signData = getPresentationProofPayload(presentation.credentials ?? [], proof);\n if (!(await verifySignature(proof.signer, signData, proof.value))) {\n return { kind: 'fail', errors: ['Invalid signature'] };\n }\n\n return { kind: 'pass' };\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { runInContextAsync } from '@dxos/async';\nimport { Context } from '@dxos/context';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type TypedMessage } from '@dxos/protocols';\nimport { type Credential, SpaceMember } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { type AsyncCallback, Callback, ComplexMap, ComplexSet } from '@dxos/util';\n\nimport { type FeedInfo, FeedStateMachine } from './feed-state-machine';\nimport { MemberStateMachine, type MemberInfo } from './member-state-machine';\nimport { getCredentialAssertion, verifyCredential } from '../credentials';\nimport { type CredentialProcessor } from '../processor/credential-processor';\n\nexport interface SpaceState {\n readonly members: ReadonlyMap<PublicKey, MemberInfo>;\n readonly feeds: ReadonlyMap<PublicKey, FeedInfo>;\n readonly credentials: Credential[];\n readonly genesisCredential: Credential | undefined;\n readonly creator: MemberInfo | undefined;\n\n addCredentialProcessor(processor: CredentialProcessor): Promise<void>;\n removeCredentialProcessor(processor: CredentialProcessor): Promise<void>;\n\n getCredentialsOfType(type: TypedMessage['@type']): Credential[];\n}\n\nexport type ProcessOptions = {\n sourceFeed: PublicKey;\n skipVerification?: boolean;\n};\n\nexport type CredentialEntry = {\n credential: Credential;\n sourceFeed: PublicKey;\n revoked: boolean;\n};\n\nconst REVOKABLE_CREDENTIALS = ['dxos.halo.credentials.SpaceMember'];\n\n/**\n * Validates and processes credentials for a single space.\n * Keeps a list of members and feeds.\n * Keeps and in-memory index of credentials and allows to query them.\n */\nexport class SpaceStateMachine implements SpaceState {\n private readonly _members = new MemberStateMachine(this._spaceKey);\n private readonly _feeds = new FeedStateMachine(this._spaceKey);\n private readonly _credentials: CredentialEntry[] = [];\n private readonly _credentialsById = new ComplexMap<PublicKey, CredentialEntry>(PublicKey.hash);\n private readonly _processedCredentials = new ComplexSet<PublicKey>(PublicKey.hash);\n\n private _genesisCredential: Credential | undefined;\n private _credentialProcessors: CredentialConsumer<any>[] = [];\n\n readonly onCredentialProcessed = new Callback<AsyncCallback<Credential>>();\n readonly onMemberAdmitted = this._members.onMemberAdmitted;\n readonly onFeedAdmitted = this._feeds.onFeedAdmitted;\n\n constructor(private readonly _spaceKey: PublicKey) {}\n\n get creator(): MemberInfo | undefined {\n return this._members.creator;\n }\n\n get members(): ReadonlyMap<PublicKey, MemberInfo> {\n return this._members.members;\n }\n\n get feeds(): ReadonlyMap<PublicKey, FeedInfo> {\n return this._feeds.feeds;\n }\n\n get credentials(): Credential[] {\n return this._credentials.map((entry) => entry.credential);\n }\n\n get credentialEntries(): CredentialEntry[] {\n return this._credentials;\n }\n\n get genesisCredential(): Credential | undefined {\n return this._genesisCredential;\n }\n\n async addCredentialProcessor(processor: CredentialProcessor) {\n if (this._credentialProcessors.find((p) => p.processor === processor)) {\n throw new Error('Credential processor already added.');\n }\n\n const consumer = new CredentialConsumer(\n processor,\n async () => {\n for (const credential of this.credentials) {\n await consumer._process(credential);\n }\n\n // NOTE: It is important to set this flag after immediately after processing existing credentials.\n // Otherwise, we might miss some credentials.\n // Having an `await` statement between the end of the loop and setting the flag would cause a race condition.\n consumer._isReadyForLiveCredentials = true;\n },\n async () => {\n this._credentialProcessors = this._credentialProcessors.filter((p) => p !== consumer);\n },\n );\n this._credentialProcessors.push(consumer);\n\n await consumer.open();\n }\n\n async removeCredentialProcessor(processor: CredentialProcessor) {\n const consumer = this._credentialProcessors.find((p) => p.processor === processor);\n await consumer?.close();\n }\n\n getCredentialsOfType(type: TypedMessage['@type']): Credential[] {\n return this.credentials.filter((credential) => getCredentialAssertion(credential)['@type'] === type);\n }\n\n /**\n * @param credential Message to process.\n * @param fromFeed Key of the feed where this credential is recorded.\n */\n async process(credential: Credential, { sourceFeed, skipVerification }: ProcessOptions): Promise<boolean> {\n if (credential.id) {\n if (this._processedCredentials.has(credential.id)) {\n return true;\n }\n this._processedCredentials.add(credential.id);\n }\n\n if (!skipVerification) {\n const result = await verifyCredential(credential);\n if (result.kind !== 'pass') {\n log.warn(`Invalid credential: ${result.errors.join(', ')}`);\n return false;\n }\n }\n\n const assertion = getCredentialAssertion(credential);\n switch (assertion['@type']) {\n case 'dxos.halo.credentials.Revocation': {\n if (!this._canRevokeCredentials(credential.issuer)) {\n log.warn(`Space member is not authorized to invite new members: ${credential.issuer}`);\n return false;\n }\n const toBeRevoked = this._credentialsById.get(credential.subject.id);\n if (!toBeRevoked) {\n log.warn(`Credential to revoke not found: ${credential.subject.id}`);\n return false;\n }\n if (!this._credentialCanBeRevoked(toBeRevoked)) {\n log.warn(`Credential cannot be revoked: ${credential.subject.id}`);\n }\n\n toBeRevoked.revoked = true;\n await this._members.onRevoked(toBeRevoked.credential, credential);\n\n break;\n }\n case 'dxos.halo.credentials.SpaceGenesis': {\n if (this._genesisCredential) {\n log.warn('Space already has a genesis credential.');\n return false;\n }\n if (!credential.issuer.equals(this._spaceKey)) {\n log.warn('Space genesis credential must be issued by space.');\n return false;\n }\n if (!credential.subject.id.equals(this._spaceKey)) {\n log.warn('Space genesis credential must be issued to space.');\n return false;\n }\n\n this._genesisCredential = credential;\n break;\n }\n\n case 'dxos.halo.credentials.SpaceMember': {\n if (!assertion.spaceKey.equals(this._spaceKey)) {\n break; // Ignore credentials for other spaces.\n }\n\n if (!this._genesisCredential) {\n log.warn('Space must have a genesis credential before adding members.');\n return false;\n }\n if (!this._canInviteNewMembers(credential.issuer)) {\n log.warn(`Space member is not authorized to invite new members: ${credential.issuer}`);\n return false;\n }\n\n await this._members.process(credential);\n break;\n }\n\n case 'dxos.halo.credentials.MemberProfile': {\n if (!this._genesisCredential) {\n log.warn('Space must have a genesis credential before adding members.');\n return false;\n }\n\n await this._members.process(credential);\n break;\n }\n\n case 'dxos.halo.credentials.AdmittedFeed': {\n if (!this._genesisCredential) {\n log.warn('Space must have a genesis credential before admitting feeds.');\n return false;\n }\n if (!this._canAdmitFeeds(credential.issuer)) {\n log.warn(`Space member is not authorized to admit feeds: ${credential.issuer}`);\n return false;\n }\n\n // TODO(dmaretskyi): Check that the feed owner is a member of the space.\n await this._feeds.process(credential, sourceFeed);\n break;\n }\n }\n\n const newEntry: CredentialEntry = { credential, sourceFeed, revoked: false };\n this._credentials.push(newEntry);\n\n // TODO(dmaretskyi): Invariant on every credential having an id?\n if (credential.id) {\n this._credentialsById.set(credential.id, newEntry);\n }\n\n for (const processor of this._credentialProcessors) {\n if (processor._isReadyForLiveCredentials) {\n await processor._process(credential);\n }\n }\n\n await this.onCredentialProcessed.callIfSet(credential);\n return true;\n }\n\n private _canInviteNewMembers(key: PublicKey): boolean {\n return key.equals(this._spaceKey) || this._members.getRole(key) === SpaceMember.Role.ADMIN;\n }\n\n private _canAdmitFeeds(key: PublicKey): boolean {\n const role = this._members.getRole(key);\n return role === SpaceMember.Role.MEMBER || role === SpaceMember.Role.ADMIN;\n }\n\n private _canRevokeCredentials(key: PublicKey): boolean {\n return key.equals(this._spaceKey) || this._members.getRole(key) === SpaceMember.Role.ADMIN;\n }\n\n private _credentialCanBeRevoked(entry: CredentialEntry) {\n // TODO(dmaretskyi): Prohibit from removing space's creator member credential.\n return REVOKABLE_CREDENTIALS.includes(entry.credential.subject.assertion['@type']);\n }\n}\n\n// TODO(dmaretskyi): Simplify.\nclass CredentialConsumer<T extends CredentialProcessor> {\n private _ctx = new Context();\n\n /**\n * @internal\n * Processor is ready to process live credentials.\n * NOTE: Setting this flag before all existing credentials are processed will cause them to be processed out of order.\n * Set externally.\n */\n _isReadyForLiveCredentials = false;\n\n constructor(\n public readonly processor: T,\n private readonly _onOpen: () => Promise<void>,\n private readonly _onClose: () => Promise<void>,\n ) {}\n\n /**\n * @internal\n */\n async _process(credential: Credential) {\n await runInContextAsync(this._ctx, async () => {\n await this.processor.processCredential(credential);\n });\n }\n\n async open() {\n if (this._ctx.disposed) {\n throw new Error('CredentialProcessor is disposed');\n }\n\n await this._onOpen();\n }\n\n async close() {\n await this._ctx.dispose();\n\n await this._onClose();\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { type AdmittedFeed, type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { type AsyncCallback, Callback, ComplexMap } from '@dxos/util';\n\nimport { getCredentialAssertion } from '../credentials';\n\nexport interface FeedInfo {\n key: PublicKey;\n /**\n * Parent feed from the feed tree.\n * This is the feed where the AdmittedFeed assertion is written.\n * The genesis feed will have itself as a parent.\n */\n parent: PublicKey;\n credential: Credential;\n assertion: AdmittedFeed;\n}\n\n/**\n * Tracks the feed tree for a space.\n * Provides a list of admitted feeds.\n */\nexport class FeedStateMachine {\n private _feeds = new ComplexMap<PublicKey, FeedInfo>(PublicKey.hash);\n\n readonly onFeedAdmitted = new Callback<AsyncCallback<FeedInfo>>();\n\n constructor(private readonly _spaceKey: PublicKey) {}\n\n get feeds(): ReadonlyMap<PublicKey, FeedInfo> {\n return this._feeds;\n }\n\n /**\n * Processes the AdmittedFeed credential.\n * Assumes the credential is already pre-verified\n * and the issuer has been authorized to issue credentials of this type.\n * @param fromFeed Key of the feed where this credential is recorded.\n */\n async process(credential: Credential, fromFeed: PublicKey) {\n const assertion = getCredentialAssertion(credential);\n invariant(assertion['@type'] === 'dxos.halo.credentials.AdmittedFeed');\n invariant(assertion.spaceKey.equals(this._spaceKey));\n\n const info: FeedInfo = {\n key: credential.subject.id,\n credential,\n assertion,\n parent: fromFeed,\n };\n\n this._feeds.set(credential.subject.id, info);\n await this.onFeedAdmitted.callIfSet(info);\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential, type SpaceMember, type ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { type AsyncCallback, Callback, ComplexMap } from '@dxos/util';\n\nimport { getCredentialAssertion } from '../credentials';\n\nexport interface MemberInfo {\n key: PublicKey;\n credential: Credential;\n assertion: SpaceMember;\n removed: boolean;\n profile?: ProfileDocument;\n}\n\n/**\n * Tracks the list of members (with roles) for the space.\n * Provides a list of admitted feeds.\n */\nexport class MemberStateMachine {\n private _creator: MemberInfo | undefined;\n\n /**\n * Member IDENTITY key => info\n */\n private _members = new ComplexMap<PublicKey, MemberInfo>(PublicKey.hash);\n\n readonly onMemberAdmitted = new Callback<AsyncCallback<MemberInfo>>();\n\n constructor(private readonly _spaceKey: PublicKey) {}\n\n get creator(): MemberInfo | undefined {\n return this._creator;\n }\n\n get members(): ReadonlyMap<PublicKey, MemberInfo> {\n return this._members;\n }\n\n getRole(member: PublicKey): SpaceMember.Role | undefined {\n return this._members.get(member)?.assertion.role;\n }\n\n /**\n * Processes the SpaceMember credential.\n * Assumes the credential is already pre-verified and the issuer has been authorized to issue credentials of this type.\n */\n async process(credential: Credential) {\n const assertion = getCredentialAssertion(credential);\n\n switch (assertion['@type']) {\n case 'dxos.halo.credentials.SpaceMember': {\n invariant(assertion.spaceKey.equals(this._spaceKey));\n\n // Ignore duplicate admissions.\n if (this._members.has(credential.subject.id)) {\n return;\n }\n\n const info: MemberInfo = {\n key: credential.subject.id,\n credential,\n assertion,\n removed: false,\n profile: assertion.profile,\n };\n\n // NOTE: Assumes the first member processed is the creator.\n if (!this._creator) {\n this._creator = info;\n }\n\n this._members.set(credential.subject.id, info);\n log('member added', {\n member: credential.subject.id,\n space: this._spaceKey,\n role: assertion.role,\n profile: assertion.profile,\n });\n\n await this.onMemberAdmitted.callIfSet(info);\n break;\n }\n\n case 'dxos.halo.credentials.MemberProfile': {\n const member = this._members.get(credential.subject.id);\n if (!member) {\n log.warn('Member not found', { id: credential.subject.id });\n } else {\n member.profile = assertion.profile;\n }\n break;\n }\n\n default:\n throw new Error('Invalid assertion type');\n }\n }\n\n async onRevoked(revoked: Credential, revocation: Credential) {\n invariant(revoked.id);\n for (const member of this._members.values()) {\n if (member.credential.id?.equals(revoked.id)) {\n member.removed = true;\n break;\n }\n }\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Trigger } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Chain, type Credential, type DeviceProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { ComplexMap } from '@dxos/util';\n\nimport { type CredentialProcessor } from './credential-processor';\nimport { getCredentialAssertion, isValidAuthorizedDeviceCredential } from '../credentials';\n\nexport type DeviceStateMachineParams = {\n identityKey: PublicKey;\n deviceKey: PublicKey;\n onUpdate?: () => void;\n};\n\n/**\n * Processes device invitation credentials.\n */\nexport class DeviceStateMachine implements CredentialProcessor {\n // TODO(burdon): Return values via getter.\n public readonly authorizedDeviceKeys = new ComplexMap<PublicKey, DeviceProfileDocument>(PublicKey.hash);\n\n public readonly deviceChainReady = new Trigger();\n\n public deviceCredentialChain?: Chain;\n\n constructor(private readonly _params: DeviceStateMachineParams) {}\n\n async processCredential(credential: Credential) {\n log('processing credential...', {\n identityKey: this._params.identityKey,\n deviceKey: this._params.deviceKey,\n credential,\n });\n\n // Save device keychain credential when processed by the space state machine.\n if (isValidAuthorizedDeviceCredential(credential, this._params.identityKey, this._params.deviceKey)) {\n this.deviceCredentialChain = { credential };\n this.deviceChainReady.wake();\n }\n\n const assertion = getCredentialAssertion(credential);\n\n switch (assertion['@type']) {\n case 'dxos.halo.credentials.AuthorizedDevice': {\n invariant(!this.authorizedDeviceKeys.has(assertion.deviceKey), 'Device already added.');\n // TODO(dmaretskyi): Extra validation for the credential?\n this.authorizedDeviceKeys.set(assertion.deviceKey, {});\n log('added device', {\n localDeviceKey: this._params.deviceKey,\n deviceKey: assertion.deviceKey,\n size: this.authorizedDeviceKeys.size,\n });\n this._params.onUpdate?.();\n break;\n }\n\n case 'dxos.halo.credentials.DeviceProfile': {\n invariant(this.authorizedDeviceKeys.has(credential.subject.id), 'Device not found.');\n\n if (assertion && credential.subject.id.equals(this._params.deviceKey)) {\n log.trace('dxos.halo.device', {\n deviceKey: credential.subject.id,\n profile: assertion.profile,\n });\n }\n\n this.authorizedDeviceKeys.set(credential.subject.id, assertion.profile);\n this._params.onUpdate?.();\n break;\n }\n }\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential, type ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { type CredentialProcessor } from './credential-processor';\nimport { getCredentialAssertion } from '../credentials';\n\nexport type ProfileStateMachineParams = {\n identityKey: PublicKey;\n onUpdate?: () => void;\n};\n\n/**\n * Processes device invitation credentials.\n */\nexport class ProfileStateMachine implements CredentialProcessor {\n // TODO(burdon): Return values via getter.\n public profile?: ProfileDocument;\n\n constructor(private readonly _params: ProfileStateMachineParams) {}\n\n async processCredential(credential: Credential) {\n const assertion = getCredentialAssertion(credential);\n switch (assertion['@type']) {\n case 'dxos.halo.credentials.IdentityProfile': {\n if (\n !credential.issuer.equals(this._params.identityKey) ||\n !credential.subject.id.equals(this._params.identityKey)\n ) {\n log.warn('Invalid profile credential', { expectedIdentity: this._params.identityKey, credential });\n return;\n }\n\n // TODO(dmaretskyi): Extra validation for the credential?\n this.profile = assertion.profile;\n log('updated profile', {\n identityKey: this._params.identityKey,\n profile: this.profile,\n });\n this._params.onUpdate?.();\n break;\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["defaultSecretProvider", "Buffer", "from", "defaultSecretValidator", "invitation", "secret", "generatePasscode", "length", "passcode", "i", "Math", "floor", "random", "stableStringify", "PublicKey", "Timeframe", "arrayToBuffer", "getCredentialProofPayload", "credential", "copy", "proof", "value", "Uint8Array", "chain", "undefined", "id", "Buffer", "from", "canonicalStringify", "obj", "stableStringify", "replacer", "key", "toString", "startsWith", "original", "PublicKey", "isPublicKey", "toHex", "isBuffer", "arrayToBuffer", "data", "type", "Timeframe", "frames", "reduce", "seq", "truncateKey", "str", "substring", "length", "getPresentationProofPayload", "credentials", "proof", "copy", "value", "Uint8Array", "chain", "undefined", "Buffer", "from", "canonicalStringify", "getCredentialAssertion", "credential", "subject", "assertion", "isValidAuthorizedDeviceCredential", "identityKey", "deviceKey", "id", "equals", "issuer", "checkCredentialType", "type", "credentialTypeFilter", "subtleCrypto", "invariant", "PublicKey", "verifySignature", "SIGNATURE_TYPE_ED25519", "verifyCredential", "credential", "issuer", "equals", "proof", "signer", "chain", "kind", "errors", "result", "verifyChain", "verifyCredentialSignature", "type", "signData", "getCredentialProofPayload", "verifySignature", "value", "authority", "subject", "isValidAuthorizedDeviceCredential", "createCredential", "signer", "issuer", "subject", "assertion", "signingKey", "chain", "nonce", "invariant", "result", "verifyChain", "kind", "credential", "issuanceDate", "Date", "id", "proof", "type", "SIGNATURE_TYPE_ED25519", "creationDate", "value", "Uint8Array", "signedPayload", "getCredentialProofPayload", "sign", "PublicKey", "from", "subtleCrypto", "digest", "createCredentialMessage", "createCredentialSignerWithKey", "getIssuer", "createCredentialSignerWithChain", "AdmittedFeed", "SpaceMember", "Timeframe", "CredentialGenerator", "constructor", "_signer", "_identityKey", "_deviceKey", "createSpaceGenesis", "spaceKey", "controlKey", "creatorProfile", "createCredential", "signer", "issuer", "subject", "assertion", "role", "SpaceMember", "Role", "ADMIN", "profile", "genesisFeedKey", "createFeedAdmission", "AdmittedFeed", "Designation", "CONTROL", "createMemberInvitation", "identityKey", "deviceKey", "dataKey", "MEMBER", "DATA", "createDeviceAuthorization", "createDeviceProfile", "feedKey", "designation", "createProfileCredential", "createEpochCredential", "number", "timeframe", "Timeframe", "credentials", "Promise", "all", "map", "credential", "createAdmissionCredentials", "signPresentation", "presentation", "signer", "signerKey", "chain", "nonce", "proof", "type", "SIGNATURE_TYPE_ED25519", "value", "Uint8Array", "creationDate", "Date", "signedPayload", "getPresentationProofPayload", "credentials", "sign", "proofs", "verifySignature", "verifyPresentation", "presentation", "errors", "credentialsVerifications", "Promise", "all", "credentials", "map", "credential", "verifyCredential", "verification", "kind", "push", "proofVerification", "proofs", "proof", "chainVerification", "verifyPresentationChain", "signatureVerification", "verifyPresentationSignature", "length", "issuer", "equals", "signer", "chain", "verifyChain", "type", "SIGNATURE_TYPE_ED25519", "signData", "getPresentationProofPayload", "verifySignature", "value", "runInContextAsync", "Context", "PublicKey", "log", "SpaceMember", "Callback", "ComplexMap", "ComplexSet", "invariant", "PublicKey", "Callback", "ComplexMap", "FeedStateMachine", "constructor", "_spaceKey", "_feeds", "ComplexMap", "PublicKey", "hash", "onFeedAdmitted", "Callback", "feeds", "process", "credential", "fromFeed", "assertion", "getCredentialAssertion", "invariant", "spaceKey", "equals", "info", "key", "subject", "id", "parent", "set", "callIfSet", "invariant", "PublicKey", "log", "Callback", "ComplexMap", "MemberStateMachine", "constructor", "_spaceKey", "_members", "ComplexMap", "PublicKey", "hash", "onMemberAdmitted", "Callback", "creator", "_creator", "members", "getRole", "member", "get", "assertion", "role", "process", "credential", "getCredentialAssertion", "invariant", "spaceKey", "equals", "has", "subject", "id", "info", "key", "removed", "profile", "set", "log", "space", "callIfSet", "warn", "Error", "onRevoked", "revoked", "revocation", "values", "REVOKABLE_CREDENTIALS", "SpaceStateMachine", "constructor", "_spaceKey", "_members", "MemberStateMachine", "_feeds", "FeedStateMachine", "_credentials", "_credentialsById", "ComplexMap", "PublicKey", "hash", "_processedCredentials", "ComplexSet", "_credentialProcessors", "onCredentialProcessed", "Callback", "onMemberAdmitted", "onFeedAdmitted", "creator", "members", "feeds", "credentials", "map", "entry", "credential", "credentialEntries", "genesisCredential", "_genesisCredential", "addCredentialProcessor", "processor", "find", "p", "Error", "consumer", "CredentialConsumer", "_process", "_isReadyForLiveCredentials", "filter", "push", "open", "removeCredentialProcessor", "close", "getCredentialsOfType", "type", "getCredentialAssertion", "process", "sourceFeed", "skipVerification", "id", "has", "add", "result", "verifyCredential", "kind", "log", "warn", "errors", "join", "assertion", "_canRevokeCredentials", "issuer", "toBeRevoked", "get", "subject", "_credentialCanBeRevoked", "revoked", "onRevoked", "equals", "spaceKey", "_canInviteNewMembers", "_canAdmitFeeds", "newEntry", "set", "callIfSet", "key", "getRole", "SpaceMember", "Role", "ADMIN", "role", "MEMBER", "includes", "_onOpen", "_onClose", "_ctx", "Context", "runInContextAsync", "processCredential", "disposed", "dispose", "Trigger", "invariant", "PublicKey", "log", "ComplexMap", "DeviceStateMachine", "constructor", "_params", "authorizedDeviceKeys", "ComplexMap", "PublicKey", "hash", "deviceChainReady", "Trigger", "processCredential", "credential", "log", "identityKey", "deviceKey", "isValidAuthorizedDeviceCredential", "deviceCredentialChain", "wake", "assertion", "getCredentialAssertion", "invariant", "has", "set", "localDeviceKey", "size", "onUpdate", "subject", "id", "equals", "trace", "profile", "log", "ProfileStateMachine", "constructor", "_params", "processCredential", "credential", "assertion", "getCredentialAssertion", "issuer", "equals", "identityKey", "subject", "id", "log", "warn", "expectedIdentity", "profile", "onUpdate"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"inject-globals:@inject-globals":{"bytes":384,"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/invitations.ts":{"bytes":1745,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/passcode.ts":{"bytes":1420,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/signing.ts":{"bytes":10466,"imports":[{"path":"json-stable-stringify","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/presentations/signing.ts":{"bytes":1805,"imports":[{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"../credentials/signing"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/assertions.ts":{"bytes":3773,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/verifier.ts":{"bytes":8058,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/assertions.ts","kind":"import-statement","original":"./assertions"},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/credential-factory.ts":{"bytes":10807,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/verifier.ts","kind":"import-statement","original":"./verifier"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/credential-generator.ts":{"bytes":19053,"imports":[{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/credential-factory.ts","kind":"import-statement","original":"./credential-factory"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/index.ts":{"bytes":893,"imports":[{"path":"packages/core/halo/credentials/src/credentials/assertions.ts","kind":"import-statement","original":"./assertions"},{"path":"packages/core/halo/credentials/src/credentials/credential-factory.ts","kind":"import-statement","original":"./credential-factory"},{"path":"packages/core/halo/credentials/src/credentials/credential-generator.ts","kind":"import-statement","original":"./credential-generator"},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/verifier.ts","kind":"import-statement","original":"./verifier"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/presentations/presentation.ts":{"bytes":3538,"imports":[{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/presentations/verifier.ts":{"bytes":10278,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/presentations/index.ts":{"bytes":671,"imports":[{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/presentations/presentation.ts","kind":"import-statement","original":"./presentation"},{"path":"packages/core/halo/credentials/src/presentations/verifier.ts","kind":"import-statement","original":"./verifier"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts":{"bytes":5916,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/member-state-machine.ts":{"bytes":11740,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/space-state-machine.ts":{"bytes":36105,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts","kind":"import-statement","original":"./feed-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/member-state-machine.ts","kind":"import-statement","original":"./member-state-machine"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/index.ts":{"bytes":745,"imports":[{"path":"packages/core/halo/credentials/src/state-machine/space-state-machine.ts","kind":"import-statement","original":"./space-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts","kind":"import-statement","original":"./feed-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/member-state-machine.ts","kind":"import-statement","original":"./member-state-machine"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/processor/credential-processor.ts":{"bytes":703,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/processor/device-state-machine.ts":{"bytes":10520,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/processor/profile-state-machine.ts":{"bytes":5420,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/processor/index.ts":{"bytes":753,"imports":[{"path":"packages/core/halo/credentials/src/processor/credential-processor.ts","kind":"import-statement","original":"./credential-processor"},{"path":"packages/core/halo/credentials/src/processor/device-state-machine.ts","kind":"import-statement","original":"./device-state-machine"},{"path":"packages/core/halo/credentials/src/processor/profile-state-machine.ts","kind":"import-statement","original":"./profile-state-machine"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/index.ts":{"bytes":1056,"imports":[{"path":"packages/core/halo/credentials/src/invitations.ts","kind":"import-statement","original":"./invitations"},{"path":"packages/core/halo/credentials/src/passcode.ts","kind":"import-statement","original":"./passcode"},{"path":"packages/core/halo/credentials/src/presentations/index.ts","kind":"import-statement","original":"./presentations"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"./credentials"},{"path":"packages/core/halo/credentials/src/state-machine/index.ts","kind":"import-statement","original":"./state-machine"},{"path":"packages/core/halo/credentials/src/processor/index.ts","kind":"import-statement","original":"./processor"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"packages/core/halo/credentials/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":66225},"packages/core/halo/credentials/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true},{"path":"json-stable-stringify","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["CredentialGenerator","DeviceStateMachine","FeedStateMachine","MemberStateMachine","ProfileStateMachine","SIGNATURE_TYPE_ED25519","SpaceStateMachine","canonicalStringify","checkCredentialType","createAdmissionCredentials","createCredential","createCredentialMessage","createCredentialSignerWithChain","createCredentialSignerWithKey","createDeviceAuthorization","credentialTypeFilter","defaultSecretProvider","defaultSecretValidator","generatePasscode","getCredentialAssertion","getCredentialProofPayload","getPresentationProofPayload","isValidAuthorizedDeviceCredential","signPresentation","verifyChain","verifyCredential","verifyCredentialSignature","verifyPresentation","verifyPresentationChain","verifyPresentationSignature"],"entryPoint":"packages/core/halo/credentials/src/index.ts","inputs":{"inject-globals:@inject-globals":{"bytesInOutput":79},"packages/core/halo/credentials/src/invitations.ts":{"bytesInOutput":126},"packages/core/halo/credentials/src/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/passcode.ts":{"bytesInOutput":178},"packages/core/halo/credentials/src/credentials/signing.ts":{"bytesInOutput":1948},"packages/core/halo/credentials/src/presentations/signing.ts":{"bytesInOutput":236},"packages/core/halo/credentials/src/presentations/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/credentials/assertions.ts":{"bytesInOutput":648},"packages/core/halo/credentials/src/credentials/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/credentials/credential-factory.ts":{"bytesInOutput":2455},"packages/core/halo/credentials/src/credentials/verifier.ts":{"bytesInOutput":1661},"packages/core/halo/credentials/src/credentials/credential-generator.ts":{"bytesInOutput":4550},"packages/core/halo/credentials/src/presentations/presentation.ts":{"bytesInOutput":578},"packages/core/halo/credentials/src/presentations/verifier.ts":{"bytesInOutput":2302},"packages/core/halo/credentials/src/state-machine/space-state-machine.ts":{"bytesInOutput":8945},"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts":{"bytesInOutput":1545},"packages/core/halo/credentials/src/state-machine/member-state-machine.ts":{"bytesInOutput":2956},"packages/core/halo/credentials/src/state-machine/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/processor/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/processor/device-state-machine.ts":{"bytesInOutput":2782},"packages/core/halo/credentials/src/processor/profile-state-machine.ts":{"bytesInOutput":1204}},"bytes":34230}}}
|
|
1
|
+
{"inputs":{"inject-globals:@inject-globals":{"bytes":384,"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/invitations.ts":{"bytes":1745,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/passcode.ts":{"bytes":1420,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/signing.ts":{"bytes":10466,"imports":[{"path":"json-stable-stringify","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/presentations/signing.ts":{"bytes":1805,"imports":[{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"../credentials/signing"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/assertions.ts":{"bytes":3773,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/verifier.ts":{"bytes":8058,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/assertions.ts","kind":"import-statement","original":"./assertions"},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/credential-factory.ts":{"bytes":10807,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/verifier.ts","kind":"import-statement","original":"./verifier"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/credential-generator.ts":{"bytes":19097,"imports":[{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/credential-factory.ts","kind":"import-statement","original":"./credential-factory"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/credentials/index.ts":{"bytes":893,"imports":[{"path":"packages/core/halo/credentials/src/credentials/assertions.ts","kind":"import-statement","original":"./assertions"},{"path":"packages/core/halo/credentials/src/credentials/credential-factory.ts","kind":"import-statement","original":"./credential-factory"},{"path":"packages/core/halo/credentials/src/credentials/credential-generator.ts","kind":"import-statement","original":"./credential-generator"},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/verifier.ts","kind":"import-statement","original":"./verifier"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/presentations/presentation.ts":{"bytes":3538,"imports":[{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/presentations/verifier.ts":{"bytes":10278,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/presentations/index.ts":{"bytes":671,"imports":[{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/presentations/presentation.ts","kind":"import-statement","original":"./presentation"},{"path":"packages/core/halo/credentials/src/presentations/verifier.ts","kind":"import-statement","original":"./verifier"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts":{"bytes":5928,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/member-state-machine.ts":{"bytes":11748,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/space-state-machine.ts":{"bytes":36169,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts","kind":"import-statement","original":"./feed-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/member-state-machine.ts","kind":"import-statement","original":"./member-state-machine"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/index.ts":{"bytes":745,"imports":[{"path":"packages/core/halo/credentials/src/state-machine/space-state-machine.ts","kind":"import-statement","original":"./space-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts","kind":"import-statement","original":"./feed-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/member-state-machine.ts","kind":"import-statement","original":"./member-state-machine"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/processor/credential-processor.ts":{"bytes":703,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/processor/device-state-machine.ts":{"bytes":10524,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/processor/profile-state-machine.ts":{"bytes":5432,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/processor/index.ts":{"bytes":753,"imports":[{"path":"packages/core/halo/credentials/src/processor/credential-processor.ts","kind":"import-statement","original":"./credential-processor"},{"path":"packages/core/halo/credentials/src/processor/device-state-machine.ts","kind":"import-statement","original":"./device-state-machine"},{"path":"packages/core/halo/credentials/src/processor/profile-state-machine.ts","kind":"import-statement","original":"./profile-state-machine"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/index.ts":{"bytes":1056,"imports":[{"path":"packages/core/halo/credentials/src/invitations.ts","kind":"import-statement","original":"./invitations"},{"path":"packages/core/halo/credentials/src/passcode.ts","kind":"import-statement","original":"./passcode"},{"path":"packages/core/halo/credentials/src/presentations/index.ts","kind":"import-statement","original":"./presentations"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"./credentials"},{"path":"packages/core/halo/credentials/src/state-machine/index.ts","kind":"import-statement","original":"./state-machine"},{"path":"packages/core/halo/credentials/src/processor/index.ts","kind":"import-statement","original":"./processor"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"packages/core/halo/credentials/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":66280},"packages/core/halo/credentials/dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true},{"path":"json-stable-stringify","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["CredentialGenerator","DeviceStateMachine","FeedStateMachine","MemberStateMachine","ProfileStateMachine","SIGNATURE_TYPE_ED25519","SpaceStateMachine","canonicalStringify","checkCredentialType","createAdmissionCredentials","createCredential","createCredentialMessage","createCredentialSignerWithChain","createCredentialSignerWithKey","createDeviceAuthorization","credentialTypeFilter","defaultSecretProvider","defaultSecretValidator","generatePasscode","getCredentialAssertion","getCredentialProofPayload","getPresentationProofPayload","isValidAuthorizedDeviceCredential","signPresentation","verifyChain","verifyCredential","verifyCredentialSignature","verifyPresentation","verifyPresentationChain","verifyPresentationSignature"],"entryPoint":"packages/core/halo/credentials/src/index.ts","inputs":{"inject-globals:@inject-globals":{"bytesInOutput":79},"packages/core/halo/credentials/src/invitations.ts":{"bytesInOutput":126},"packages/core/halo/credentials/src/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/passcode.ts":{"bytesInOutput":178},"packages/core/halo/credentials/src/credentials/signing.ts":{"bytesInOutput":1948},"packages/core/halo/credentials/src/presentations/signing.ts":{"bytesInOutput":236},"packages/core/halo/credentials/src/presentations/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/credentials/assertions.ts":{"bytesInOutput":648},"packages/core/halo/credentials/src/credentials/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/credentials/credential-factory.ts":{"bytesInOutput":2455},"packages/core/halo/credentials/src/credentials/verifier.ts":{"bytesInOutput":1661},"packages/core/halo/credentials/src/credentials/credential-generator.ts":{"bytesInOutput":4550},"packages/core/halo/credentials/src/presentations/presentation.ts":{"bytesInOutput":578},"packages/core/halo/credentials/src/presentations/verifier.ts":{"bytesInOutput":2302},"packages/core/halo/credentials/src/state-machine/space-state-machine.ts":{"bytesInOutput":8945},"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts":{"bytesInOutput":1545},"packages/core/halo/credentials/src/state-machine/member-state-machine.ts":{"bytesInOutput":2956},"packages/core/halo/credentials/src/state-machine/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/processor/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/processor/device-state-machine.ts":{"bytesInOutput":2782},"packages/core/halo/credentials/src/processor/profile-state-machine.ts":{"bytesInOutput":1204}},"bytes":34230}}}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/invitations.ts", "../../../src/passcode.ts", "../../../src/credentials/signing.ts", "../../../src/presentations/signing.ts", "../../../src/credentials/assertions.ts", "../../../src/credentials/credential-factory.ts", "../../../src/credentials/verifier.ts", "../../../src/credentials/credential-generator.ts", "../../../src/presentations/presentation.ts", "../../../src/presentations/verifier.ts", "../../../src/state-machine/space-state-machine.ts", "../../../src/state-machine/feed-state-machine.ts", "../../../src/state-machine/member-state-machine.ts", "../../../src/processor/device-state-machine.ts", "../../../src/processor/profile-state-machine.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2019 DXOS.org\n//\n\n/**\n * Info required for offline invitations.\n */\n// TODO(burdon): Define types.\nexport interface SecretInfo {\n id: any;\n authNonce: any;\n}\n\n/**\n * Provides a shared secret during an invitation process.\n */\nexport type SecretProvider = (info?: SecretInfo) => Promise<Buffer>;\n\n/**\n * Validates the shared secret during an invitation process.\n */\nexport type SecretValidator = (invitation: never, secret: Buffer) => Promise<boolean>;\n\nexport const defaultSecretProvider: SecretProvider = async () => Buffer.from('0000');\n\nexport const defaultSecretValidator: SecretValidator = async (invitation, secret) => true;\n", "//\n// Copyright 2019 DXOS.org\n//\n\n/**\n * Generates a numeric passcode.\n * @param {number} length\n * @returns {string}\n */\nexport const generatePasscode = (length = 4) => {\n let passcode = '';\n for (let i = 0; i < length; i++) {\n passcode += `${Math.floor(Math.random() * 10)}`;\n }\n\n return passcode;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport stableStringify from 'json-stable-stringify';\n\nimport { PublicKey } from '@dxos/keys';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { Timeframe } from '@dxos/timeframe';\nimport { arrayToBuffer } from '@dxos/util';\n\n/**\n * @returns The input message to be signed for a given credential.\n */\nexport const getCredentialProofPayload = (credential: Credential): Uint8Array => {\n const copy = {\n ...credential,\n proof: {\n ...credential.proof,\n value: new Uint8Array(),\n chain: undefined,\n },\n };\n delete copy.id; // ID is not part of the signature payload.\n\n return Buffer.from(canonicalStringify(copy));\n};\n\n/**\n * Utility method to produce stable output for signing/verifying.\n */\nexport const canonicalStringify = (obj: any) =>\n stableStringify(obj, {\n /* The point of signing and verifying is not that the internal, private state of the objects be\n * identical, but that the public contents can be verified not to have been altered. For that reason,\n * really private fields (indicated by '__') are not included in the signature.\n * This gives a mechanism for attaching other attributes to an object without breaking the signature.\n * We also skip @type.\n */\n // TODO(dmaretskyi): Should we actually skip the @type field?\n replacer: function (this: any, key: any, value: any) {\n if (key.toString().startsWith('__') || key.toString() === '@type') {\n return undefined;\n }\n\n if (value === null) {\n return undefined;\n }\n\n // Value before .toJSON() is called.\n const original = this[key];\n\n if (value) {\n if (PublicKey.isPublicKey(value)) {\n return value.toHex();\n }\n if (Buffer.isBuffer(value)) {\n return value.toString('hex');\n }\n\n if (value instanceof Uint8Array) {\n return arrayToBuffer(value).toString('hex');\n }\n if (value.data && value.type === 'Buffer') {\n return Buffer.from(value).toString('hex');\n }\n if (original instanceof Timeframe) {\n // Uses old key truncation method (339d...9d66) to keep backwards compatibility.\n return original.frames().reduce((frames: Record<string, number>, [key, seq]) => {\n frames[truncateKey(key)] = seq;\n return frames;\n }, {});\n }\n }\n\n return value;\n },\n });\n\n/**\n * Old key truncation method (339d...9d66) to keep backwards compatibility with credentials signed with old method\n */\nconst truncateKey = (key: PublicKey) => {\n const str = key.toHex();\n return `${str.substring(0, 4)}...${str.substring(str.length - 4)}`;\n};\n\n/**\n * export const truncateKey = (key: any, { length = 8, start }: TruncateKeyOptions = {}) => {\nconst str = String(key);\nif (str.length <= length) {\n return str;\n}\n\nreturn start\n ? `${str.slice(0, length)}...`\n : `${str.substring(0, length / 2)}...${str.substring(str.length - length / 2)}`;\n};\n\n{\n\"04009285\": 20,\n\"0415004f\": 0,\n\"0415e6d7\": 9964,\n\"042a4fa9\": 8,\n\"0448e62f\": 3,\n\"04775053\": 257,\n\"04a6b603\": 97,\n\"04bc5c9d\": 198,\n\"04da9930\": 59,\n\"04df0449\": 676,\n\"04e122ae\": 5435,\n\"04ee588b\": 1703\n}\n\n */\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Credential, type Proof } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { canonicalStringify } from '../credentials/signing';\n\nexport const getPresentationProofPayload = (credentials: Credential[], proof: Proof): Uint8Array => {\n const copy = {\n credentials,\n proof: {\n ...proof,\n value: new Uint8Array(),\n chain: undefined,\n },\n };\n\n return Buffer.from(canonicalStringify(copy));\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type PublicKey } from '@dxos/keys';\nimport { type TYPES, type TypedMessage } from '@dxos/protocols';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nexport const getCredentialAssertion = (credential: Credential): TypedMessage => credential.subject.assertion;\n\nexport const isValidAuthorizedDeviceCredential = (\n credential: Credential,\n identityKey: PublicKey,\n deviceKey: PublicKey,\n): boolean => {\n const assertion = getCredentialAssertion(credential);\n return (\n credential.subject.id.equals(deviceKey) &&\n credential.issuer.equals(identityKey) &&\n assertion['@type'] === 'dxos.halo.credentials.AuthorizedDevice' &&\n assertion.identityKey.equals(identityKey) &&\n assertion.deviceKey.equals(deviceKey)\n );\n};\n\nexport type SpecificCredential<T> = Omit<Credential, 'subject'> & {\n subject: Omit<Credential['subject'], 'assertion'> & { assertion: T };\n};\n\nexport const checkCredentialType = <K extends keyof TYPES>(\n credential: Credential,\n type: K,\n): credential is SpecificCredential<TYPES[K]> => credential.subject.assertion['@type'] === type;\n\nexport const credentialTypeFilter =\n <K extends keyof TYPES>(type: K) =>\n (credential: Credential): credential is SpecificCredential<TYPES[K]> =>\n checkCredentialType(credential, type);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Signer, subtleCrypto } from '@dxos/crypto';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { type TypedMessage } from '@dxos/protocols';\nimport { type Chain, type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { getCredentialProofPayload } from './signing';\nimport { SIGNATURE_TYPE_ED25519, verifyChain } from './verifier';\n\nexport type CreateCredentialSignerParams = {\n subject: PublicKey;\n assertion: TypedMessage;\n nonce?: Uint8Array;\n};\n\nexport type CreateCredentialParams = {\n signer: Signer;\n issuer: PublicKey;\n signingKey?: PublicKey;\n\n // Provided only if signer is different from issuer.\n chain?: Chain;\n\n subject: PublicKey;\n assertion: TypedMessage;\n nonce?: Uint8Array;\n};\n\n/**\n * Construct a signed credential message.\n */\nexport const createCredential = async ({\n signer,\n issuer,\n subject,\n assertion,\n signingKey,\n chain,\n nonce,\n}: CreateCredentialParams): Promise<Credential> => {\n invariant(assertion['@type'], 'Invalid assertion.');\n invariant(!!signingKey === !!chain, 'Chain must be provided if and only if the signing key differs from the issuer.');\n if (chain) {\n const result = await verifyChain(chain, issuer, signingKey!);\n invariant(result.kind === 'pass', 'Invalid chain.');\n }\n\n // Create the credential with proof value and chain fields missing (for signature payload).\n const credential: Credential = {\n issuer,\n issuanceDate: new Date(),\n subject: {\n id: subject,\n assertion,\n },\n proof: {\n type: SIGNATURE_TYPE_ED25519,\n creationDate: new Date(),\n signer: signingKey ?? issuer,\n value: new Uint8Array(),\n nonce,\n },\n };\n\n // Set proof after creating signature.\n const signedPayload = getCredentialProofPayload(credential);\n credential.proof!.value = await signer.sign(signingKey ?? issuer, signedPayload);\n if (chain) {\n credential.proof!.chain = chain;\n }\n\n credential.id = PublicKey.from(await subtleCrypto.digest('SHA-256', signedPayload));\n\n return credential;\n};\n\n// TODO(burdon): Use consistently (merge halo/echo protocol packages).\nexport const createCredentialMessage = (credential: Credential) => {\n return {\n '@type': 'dxos.echo.feed.CredentialsMessage',\n credential,\n };\n};\n\n// TODO(burdon): Vs. Signer.\nexport interface CredentialSigner {\n getIssuer(): PublicKey;\n createCredential: (params: CreateCredentialSignerParams) => Promise<Credential>;\n}\n\n/**\n * Issue credentials directly signed by the issuer.\n */\nexport const createCredentialSignerWithKey = (signer: Signer, issuer: PublicKey): CredentialSigner => ({\n getIssuer: () => issuer,\n createCredential: ({ subject, assertion, nonce }) =>\n createCredential({\n signer,\n issuer,\n subject,\n assertion,\n nonce,\n }),\n});\n\n/**\n * Issue credentials with transitive proof via a chain.\n */\nexport const createCredentialSignerWithChain = (\n signer: Signer,\n chain: Chain,\n signingKey: PublicKey,\n): CredentialSigner => ({\n getIssuer: () => chain.credential.issuer,\n createCredential: ({ subject, assertion, nonce }) =>\n createCredential({\n signer,\n issuer: chain.credential.issuer,\n signingKey,\n chain,\n subject,\n assertion,\n nonce,\n }),\n});\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { verifySignature } from '@dxos/crypto';\nimport { type PublicKey } from '@dxos/keys';\nimport { type Chain, type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { isValidAuthorizedDeviceCredential } from './assertions';\nimport { getCredentialProofPayload } from './signing';\n\nexport const SIGNATURE_TYPE_ED25519 = 'ED25519Signature';\n\nexport type VerificationResult = { kind: 'pass' } | { kind: 'fail'; errors: string[] };\n\nexport const verifyCredential = async (credential: Credential): Promise<VerificationResult> => {\n if (!credential.issuer.equals(credential.proof!.signer)) {\n if (!credential.proof!.chain) {\n return {\n kind: 'fail',\n errors: ['Delegated credential is missing credential chain.'],\n };\n }\n\n const result = await verifyChain(credential.proof!.chain, credential.issuer, credential.proof!.signer);\n if (result.kind === 'fail') {\n return result;\n }\n }\n\n const result = await verifyCredentialSignature(credential);\n if (result.kind === 'fail') {\n return result;\n }\n\n return { kind: 'pass' };\n};\n\n/**\n * Verifies that the signature is valid and was made by the signer.\n * Does not validate other semantics (e.g. chains).\n */\nexport const verifyCredentialSignature = async (credential: Credential): Promise<VerificationResult> => {\n if (credential.proof!.type !== SIGNATURE_TYPE_ED25519) {\n return {\n kind: 'fail',\n errors: [`Invalid signature type: ${credential.proof!.type}`],\n };\n }\n\n const signData = getCredentialProofPayload(credential);\n if (!(await verifySignature(credential.proof!.signer, signData, credential.proof!.value))) {\n return { kind: 'fail', errors: ['Invalid signature'] };\n }\n\n return { kind: 'pass' };\n};\n\n/**\n * Verifies the the signer has the delegated authority to create credentials on the half of the issuer.\n */\nexport const verifyChain = async (\n chain: Chain,\n authority: PublicKey,\n subject: PublicKey,\n): Promise<VerificationResult> => {\n const result = await verifyCredential(chain.credential);\n if (result.kind === 'fail') {\n return result;\n }\n\n if (!isValidAuthorizedDeviceCredential(chain.credential, authority, subject)) {\n return {\n kind: 'fail',\n errors: [`Invalid credential chain: invalid assertion for key: ${subject}`],\n };\n }\n\n return { kind: 'pass' };\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Signer } from '@dxos/crypto';\nimport { type PublicKey } from '@dxos/keys';\nimport { type TypedMessage } from '@dxos/protocols';\nimport { type FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport {\n AdmittedFeed,\n type Credential,\n type DeviceProfileDocument,\n type ProfileDocument,\n SpaceMember,\n} from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { Timeframe } from '@dxos/timeframe';\n\nimport { createCredential, type CredentialSigner } from './credential-factory';\n\n// TODO(burdon): Normalize generate and functions below.\n// Use throughout stack and in tests.\n\n/**\n * Utility class for generating credential messages, where the issuer is the current identity or device.\n */\nexport class CredentialGenerator {\n constructor(\n private readonly _signer: Signer,\n private readonly _identityKey: PublicKey,\n private readonly _deviceKey: PublicKey,\n ) {}\n\n /**\n * Create genesis messages for new Space.\n */\n async createSpaceGenesis(\n spaceKey: PublicKey,\n controlKey: PublicKey,\n creatorProfile?: ProfileDocument,\n ): Promise<Credential[]> {\n return [\n await createCredential({\n signer: this._signer,\n issuer: spaceKey,\n subject: spaceKey,\n assertion: {\n '@type': 'dxos.halo.credentials.SpaceGenesis',\n spaceKey,\n },\n }),\n\n await createCredential({\n signer: this._signer,\n issuer: spaceKey,\n subject: this._identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.SpaceMember',\n spaceKey,\n role: SpaceMember.Role.ADMIN,\n profile: creatorProfile,\n genesisFeedKey: controlKey,\n },\n }),\n\n await this.createFeedAdmission(spaceKey, controlKey, AdmittedFeed.Designation.CONTROL),\n ];\n }\n\n /**\n * Create invitation.\n * Admit identity and control and data feeds.\n */\n // TODO(burdon): Reconcile with above (esp. Signer).\n async createMemberInvitation(\n spaceKey: PublicKey,\n identityKey: PublicKey,\n deviceKey: PublicKey,\n controlKey: PublicKey,\n dataKey: PublicKey,\n genesisFeedKey: PublicKey,\n ): Promise<Credential[]> {\n return [\n await createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.SpaceMember',\n spaceKey,\n role: SpaceMember.Role.MEMBER,\n genesisFeedKey,\n },\n }),\n\n await this.createFeedAdmission(spaceKey, controlKey, AdmittedFeed.Designation.CONTROL),\n await this.createFeedAdmission(spaceKey, dataKey, AdmittedFeed.Designation.DATA),\n ];\n }\n\n /**\n * Add device to space.\n */\n // TODO(burdon): Reconcile with below.\n async createDeviceAuthorization(deviceKey: PublicKey): Promise<Credential> {\n return createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: deviceKey,\n assertion: {\n '@type': 'dxos.halo.credentials.AuthorizedDevice',\n identityKey: this._identityKey,\n deviceKey,\n },\n });\n }\n\n /**\n * Add device metadata.\n */\n async createDeviceProfile(profile: DeviceProfileDocument): Promise<Credential> {\n return createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: this._deviceKey,\n assertion: {\n '@type': 'dxos.halo.credentials.DeviceProfile',\n profile,\n },\n });\n }\n\n /**\n * Add feed to space.\n */\n async createFeedAdmission(\n spaceKey: PublicKey,\n feedKey: PublicKey,\n designation: AdmittedFeed.Designation,\n ): Promise<Credential> {\n return createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: feedKey,\n assertion: {\n '@type': 'dxos.halo.credentials.AdmittedFeed',\n spaceKey,\n identityKey: this._identityKey,\n deviceKey: this._deviceKey,\n designation,\n },\n });\n }\n\n async createProfileCredential(profile: ProfileDocument): Promise<Credential> {\n return createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: this._identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.IdentityProfile',\n profile,\n },\n });\n }\n\n async createEpochCredential(spaceKey: PublicKey): Promise<Credential> {\n return createCredential({\n signer: this._signer,\n issuer: this._identityKey,\n subject: spaceKey,\n assertion: {\n '@type': 'dxos.halo.credentials.Epoch',\n number: 0,\n timeframe: new Timeframe(),\n },\n });\n }\n}\n\n// TODO(burdon): Reconcile with above (esp. Signer).\nexport const createDeviceAuthorization = async (\n signer: CredentialSigner,\n identityKey: PublicKey,\n deviceKey: PublicKey,\n): Promise<TypedMessage[]> => {\n const credentials = await Promise.all([\n await signer.createCredential({\n subject: deviceKey,\n assertion: {\n '@type': 'dxos.halo.credentials.AuthorizedDevice',\n identityKey,\n deviceKey,\n },\n }),\n ]);\n\n return credentials.map((credential) => ({\n '@type': 'dxos.echo.feed.CredentialsMessage',\n credential,\n }));\n};\n\n// TODO(burdon): Reconcile with above (esp. Signer).\nexport const createAdmissionCredentials = async (\n signer: CredentialSigner,\n identityKey: PublicKey,\n spaceKey: PublicKey,\n genesisFeedKey: PublicKey,\n profile?: ProfileDocument,\n): Promise<FeedMessage.Payload[]> => {\n const credentials = await Promise.all([\n await signer.createCredential({\n subject: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.SpaceMember',\n spaceKey,\n role: SpaceMember.Role.ADMIN, // TODO(burdon): Configure.\n profile,\n genesisFeedKey,\n },\n }),\n ]);\n\n return credentials.map((credential) => ({\n credential: { credential },\n }));\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Signer } from '@dxos/crypto';\nimport { type PublicKey } from '@dxos/keys';\nimport { type Chain, type Presentation, type Proof } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { getPresentationProofPayload } from './signing';\nimport { SIGNATURE_TYPE_ED25519 } from '../credentials';\n\nexport const signPresentation = async ({\n presentation,\n signer,\n signerKey,\n chain,\n nonce,\n}: {\n presentation: Presentation;\n signer: Signer;\n signerKey: PublicKey;\n chain?: Chain;\n nonce?: Uint8Array;\n}): Promise<Presentation> => {\n const proof: Proof = {\n type: SIGNATURE_TYPE_ED25519,\n value: new Uint8Array(),\n creationDate: new Date(),\n signer: signerKey,\n nonce,\n };\n\n const signedPayload = getPresentationProofPayload(presentation.credentials ?? [], proof);\n proof.value = await signer.sign(signerKey, signedPayload);\n if (chain) {\n proof.chain = chain;\n }\n\n return {\n credentials: presentation.credentials,\n proofs: [...(presentation.proofs ?? []), proof],\n };\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { verifySignature } from '@dxos/crypto';\nimport { type Presentation, type Proof } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { getPresentationProofPayload } from './signing';\nimport { SIGNATURE_TYPE_ED25519, type VerificationResult, verifyChain, verifyCredential } from '../credentials';\n\nexport const verifyPresentation = async (presentation: Presentation): Promise<VerificationResult> => {\n const errors: string[] = [];\n\n // Verify all credentials.\n const credentialsVerifications = await Promise.all(\n presentation.credentials?.map((credential) => verifyCredential(credential)) ?? [],\n );\n for (const verification of credentialsVerifications) {\n if (verification.kind === 'fail') {\n errors.push(...verification.errors);\n }\n }\n\n // Verify all proofs.\n const proofVerification = await Promise.all(\n presentation.proofs?.map(async (proof) => {\n const chainVerification = await verifyPresentationChain(presentation, proof);\n if (chainVerification.kind === 'fail') {\n return chainVerification;\n }\n const signatureVerification = await verifyPresentationSignature(presentation, proof);\n if (signatureVerification.kind === 'fail') {\n return signatureVerification;\n }\n return { kind: 'pass' } as VerificationResult;\n }) ?? [],\n );\n for (const verification of proofVerification) {\n if (verification.kind === 'fail') {\n errors.push(...verification.errors);\n }\n }\n\n if (errors.length === 0) {\n return { kind: 'pass' };\n }\n {\n return {\n kind: 'fail',\n errors,\n };\n }\n};\n\nexport const verifyPresentationChain = async (\n presentation: Presentation,\n proof: Proof,\n): Promise<VerificationResult> => {\n for (const credential of presentation.credentials ?? []) {\n if (!credential.issuer.equals(proof.signer)) {\n if (!proof.chain) {\n return {\n kind: 'fail',\n errors: ['Delegated credential is missing credential chain.'],\n };\n }\n\n const chainVerification = await verifyChain(proof.chain, credential.issuer, proof.signer);\n if (chainVerification.kind === 'fail') {\n return chainVerification;\n }\n }\n }\n\n return { kind: 'pass' };\n};\n\n/**\n * Verifies that the signature is valid and was made by the signer.\n * Does not validate other semantics (e.g. chains).\n */\nexport const verifyPresentationSignature = async (\n presentation: Presentation,\n proof: Proof,\n): Promise<VerificationResult> => {\n if (proof.type !== SIGNATURE_TYPE_ED25519) {\n return {\n kind: 'fail',\n errors: [`Invalid signature type: ${proof.type}`],\n };\n }\n\n const signData = getPresentationProofPayload(presentation.credentials ?? [], proof);\n if (!(await verifySignature(proof.signer, signData, proof.value))) {\n return { kind: 'fail', errors: ['Invalid signature'] };\n }\n\n return { kind: 'pass' };\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { runInContextAsync } from '@dxos/async';\nimport { Context } from '@dxos/context';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type TypedMessage } from '@dxos/protocols';\nimport { type Credential, SpaceMember } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { type AsyncCallback, Callback, ComplexMap, ComplexSet } from '@dxos/util';\n\nimport { type FeedInfo, FeedStateMachine } from './feed-state-machine';\nimport { MemberStateMachine, type MemberInfo } from './member-state-machine';\nimport { getCredentialAssertion, verifyCredential } from '../credentials';\nimport { type CredentialProcessor } from '../processor/credential-processor';\n\nexport interface SpaceState {\n readonly members: ReadonlyMap<PublicKey, MemberInfo>;\n readonly feeds: ReadonlyMap<PublicKey, FeedInfo>;\n readonly credentials: Credential[];\n readonly genesisCredential: Credential | undefined;\n readonly creator: MemberInfo | undefined;\n\n addCredentialProcessor(processor: CredentialProcessor): Promise<void>;\n removeCredentialProcessor(processor: CredentialProcessor): Promise<void>;\n\n getCredentialsOfType(type: TypedMessage['@type']): Credential[];\n}\n\nexport type ProcessOptions = {\n sourceFeed: PublicKey;\n skipVerification?: boolean;\n};\n\nexport type CredentialEntry = {\n credential: Credential;\n sourceFeed: PublicKey;\n revoked: boolean;\n};\n\nconst REVOKABLE_CREDENTIALS = ['dxos.halo.credentials.SpaceMember'];\n\n/**\n * Validates and processes credentials for a single space.\n * Keeps a list of members and feeds.\n * Keeps and in-memory index of credentials and allows to query them.\n */\nexport class SpaceStateMachine implements SpaceState {\n private readonly _members = new MemberStateMachine(this._spaceKey);\n private readonly _feeds = new FeedStateMachine(this._spaceKey);\n private readonly _credentials: CredentialEntry[] = [];\n private readonly _credentialsById = new ComplexMap<PublicKey, CredentialEntry>(PublicKey.hash);\n private readonly _processedCredentials = new ComplexSet<PublicKey>(PublicKey.hash);\n\n private _genesisCredential: Credential | undefined;\n private _credentialProcessors: CredentialConsumer<any>[] = [];\n\n readonly onCredentialProcessed = new Callback<AsyncCallback<Credential>>();\n readonly onMemberAdmitted = this._members.onMemberAdmitted;\n readonly onFeedAdmitted = this._feeds.onFeedAdmitted;\n\n constructor(private readonly _spaceKey: PublicKey) {}\n\n get creator(): MemberInfo | undefined {\n return this._members.creator;\n }\n\n get members(): ReadonlyMap<PublicKey, MemberInfo> {\n return this._members.members;\n }\n\n get feeds(): ReadonlyMap<PublicKey, FeedInfo> {\n return this._feeds.feeds;\n }\n\n get credentials(): Credential[] {\n return this._credentials.map((entry) => entry.credential);\n }\n\n get credentialEntries(): CredentialEntry[] {\n return this._credentials;\n }\n\n get genesisCredential(): Credential | undefined {\n return this._genesisCredential;\n }\n\n async addCredentialProcessor(processor: CredentialProcessor) {\n if (this._credentialProcessors.find((p) => p.processor === processor)) {\n throw new Error('Credential processor already added.');\n }\n\n const consumer = new CredentialConsumer(\n processor,\n async () => {\n for (const credential of this.credentials) {\n await consumer._process(credential);\n }\n\n // NOTE: It is important to set this flag after immediately after processing existing credentials.\n // Otherwise, we might miss some credentials.\n // Having an `await` statement between the end of the loop and setting the flag would cause a race condition.\n consumer._isReadyForLiveCredentials = true;\n },\n async () => {\n this._credentialProcessors = this._credentialProcessors.filter((p) => p !== consumer);\n },\n );\n this._credentialProcessors.push(consumer);\n\n await consumer.open();\n }\n\n async removeCredentialProcessor(processor: CredentialProcessor) {\n const consumer = this._credentialProcessors.find((p) => p.processor === processor);\n await consumer?.close();\n }\n\n getCredentialsOfType(type: TypedMessage['@type']): Credential[] {\n return this.credentials.filter((credential) => getCredentialAssertion(credential)['@type'] === type);\n }\n\n /**\n * @param credential Message to process.\n * @param fromFeed Key of the feed where this credential is recorded.\n */\n async process(credential: Credential, { sourceFeed, skipVerification }: ProcessOptions): Promise<boolean> {\n if (credential.id) {\n if (this._processedCredentials.has(credential.id)) {\n return true;\n }\n this._processedCredentials.add(credential.id);\n }\n\n if (!skipVerification) {\n const result = await verifyCredential(credential);\n if (result.kind !== 'pass') {\n log.warn(`Invalid credential: ${result.errors.join(', ')}`);\n return false;\n }\n }\n\n const assertion = getCredentialAssertion(credential);\n switch (assertion['@type']) {\n case 'dxos.halo.credentials.Revocation': {\n if (!this._canRevokeCredentials(credential.issuer)) {\n log.warn(`Space member is not authorized to invite new members: ${credential.issuer}`);\n return false;\n }\n const toBeRevoked = this._credentialsById.get(credential.subject.id);\n if (!toBeRevoked) {\n log.warn(`Credential to revoke not found: ${credential.subject.id}`);\n return false;\n }\n if (!this._credentialCanBeRevoked(toBeRevoked)) {\n log.warn(`Credential cannot be revoked: ${credential.subject.id}`);\n }\n\n toBeRevoked.revoked = true;\n await this._members.onRevoked(toBeRevoked.credential, credential);\n\n break;\n }\n case 'dxos.halo.credentials.SpaceGenesis': {\n if (this._genesisCredential) {\n log.warn('Space already has a genesis credential.');\n return false;\n }\n if (!credential.issuer.equals(this._spaceKey)) {\n log.warn('Space genesis credential must be issued by space.');\n return false;\n }\n if (!credential.subject.id.equals(this._spaceKey)) {\n log.warn('Space genesis credential must be issued to space.');\n return false;\n }\n\n this._genesisCredential = credential;\n break;\n }\n\n case 'dxos.halo.credentials.SpaceMember': {\n if (!assertion.spaceKey.equals(this._spaceKey)) {\n break; // Ignore credentials for other spaces.\n }\n\n if (!this._genesisCredential) {\n log.warn('Space must have a genesis credential before adding members.');\n return false;\n }\n if (!this._canInviteNewMembers(credential.issuer)) {\n log.warn(`Space member is not authorized to invite new members: ${credential.issuer}`);\n return false;\n }\n\n await this._members.process(credential);\n break;\n }\n\n case 'dxos.halo.credentials.MemberProfile': {\n if (!this._genesisCredential) {\n log.warn('Space must have a genesis credential before adding members.');\n return false;\n }\n\n await this._members.process(credential);\n break;\n }\n\n case 'dxos.halo.credentials.AdmittedFeed': {\n if (!this._genesisCredential) {\n log.warn('Space must have a genesis credential before admitting feeds.');\n return false;\n }\n if (!this._canAdmitFeeds(credential.issuer)) {\n log.warn(`Space member is not authorized to admit feeds: ${credential.issuer}`);\n return false;\n }\n\n // TODO(dmaretskyi): Check that the feed owner is a member of the space.\n await this._feeds.process(credential, sourceFeed);\n break;\n }\n }\n\n const newEntry: CredentialEntry = { credential, sourceFeed, revoked: false };\n this._credentials.push(newEntry);\n\n // TODO(dmaretskyi): Invariant on every credential having an id?\n if (credential.id) {\n this._credentialsById.set(credential.id, newEntry);\n }\n\n for (const processor of this._credentialProcessors) {\n if (processor._isReadyForLiveCredentials) {\n await processor._process(credential);\n }\n }\n\n await this.onCredentialProcessed.callIfSet(credential);\n return true;\n }\n\n private _canInviteNewMembers(key: PublicKey): boolean {\n return key.equals(this._spaceKey) || this._members.getRole(key) === SpaceMember.Role.ADMIN;\n }\n\n private _canAdmitFeeds(key: PublicKey): boolean {\n const role = this._members.getRole(key);\n return role === SpaceMember.Role.MEMBER || role === SpaceMember.Role.ADMIN;\n }\n\n private _canRevokeCredentials(key: PublicKey): boolean {\n return key.equals(this._spaceKey) || this._members.getRole(key) === SpaceMember.Role.ADMIN;\n }\n\n private _credentialCanBeRevoked(entry: CredentialEntry) {\n // TODO(dmaretskyi): Prohibit from removing space's creator member credential.\n return REVOKABLE_CREDENTIALS.includes(entry.credential.subject.assertion['@type']);\n }\n}\n\n// TODO(dmaretskyi): Simplify.\nclass CredentialConsumer<T extends CredentialProcessor> {\n private _ctx = new Context();\n\n /**\n * @internal\n * Processor is ready to process live credentials.\n * NOTE: Setting this flag before all existing credentials are processed will cause them to be processed out of order.\n * Set externally.\n */\n _isReadyForLiveCredentials = false;\n\n constructor(\n public readonly processor: T,\n private readonly _onOpen: () => Promise<void>,\n private readonly _onClose: () => Promise<void>,\n ) {}\n\n /**\n * @internal\n */\n async _process(credential: Credential) {\n await runInContextAsync(this._ctx, async () => {\n await this.processor.processCredential(credential);\n });\n }\n\n async open() {\n if (this._ctx.disposed) {\n throw new Error('CredentialProcessor is disposed');\n }\n\n await this._onOpen();\n }\n\n async close() {\n await this._ctx.dispose();\n\n await this._onClose();\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { type AdmittedFeed, type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { type AsyncCallback, Callback, ComplexMap } from '@dxos/util';\n\nimport { getCredentialAssertion } from '../credentials';\n\nexport interface FeedInfo {\n key: PublicKey;\n /**\n * Parent feed from the feed tree.\n * This is the feed where the AdmittedFeed assertion is written.\n * The genesis feed will have itself as a parent.\n */\n parent: PublicKey;\n credential: Credential;\n assertion: AdmittedFeed;\n}\n\n/**\n * Tracks the feed tree for a space.\n * Provides a list of admitted feeds.\n */\nexport class FeedStateMachine {\n private _feeds = new ComplexMap<PublicKey, FeedInfo>(PublicKey.hash);\n\n readonly onFeedAdmitted = new Callback<AsyncCallback<FeedInfo>>();\n\n constructor(private readonly _spaceKey: PublicKey) {}\n\n get feeds(): ReadonlyMap<PublicKey, FeedInfo> {\n return this._feeds;\n }\n\n /**\n * Processes the AdmittedFeed credential.\n * Assumes the credential is already pre-verified\n * and the issuer has been authorized to issue credentials of this type.\n * @param fromFeed Key of the feed where this credential is recorded.\n */\n async process(credential: Credential, fromFeed: PublicKey) {\n const assertion = getCredentialAssertion(credential);\n invariant(assertion['@type'] === 'dxos.halo.credentials.AdmittedFeed');\n invariant(assertion.spaceKey.equals(this._spaceKey));\n\n const info: FeedInfo = {\n key: credential.subject.id,\n credential,\n assertion,\n parent: fromFeed,\n };\n\n this._feeds.set(credential.subject.id, info);\n await this.onFeedAdmitted.callIfSet(info);\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential, type SpaceMember, type ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { type AsyncCallback, Callback, ComplexMap } from '@dxos/util';\n\nimport { getCredentialAssertion } from '../credentials';\n\nexport interface MemberInfo {\n key: PublicKey;\n credential: Credential;\n assertion: SpaceMember;\n removed: boolean;\n profile?: ProfileDocument;\n}\n\n/**\n * Tracks the list of members (with roles) for the space.\n * Provides a list of admitted feeds.\n */\nexport class MemberStateMachine {\n private _creator: MemberInfo | undefined;\n\n /**\n * Member IDENTITY key => info\n */\n private _members = new ComplexMap<PublicKey, MemberInfo>(PublicKey.hash);\n\n readonly onMemberAdmitted = new Callback<AsyncCallback<MemberInfo>>();\n\n constructor(private readonly _spaceKey: PublicKey) {}\n\n get creator(): MemberInfo | undefined {\n return this._creator;\n }\n\n get members(): ReadonlyMap<PublicKey, MemberInfo> {\n return this._members;\n }\n\n getRole(member: PublicKey): SpaceMember.Role | undefined {\n return this._members.get(member)?.assertion.role;\n }\n\n /**\n * Processes the SpaceMember credential.\n * Assumes the credential is already pre-verified and the issuer has been authorized to issue credentials of this type.\n */\n async process(credential: Credential) {\n const assertion = getCredentialAssertion(credential);\n\n switch (assertion['@type']) {\n case 'dxos.halo.credentials.SpaceMember': {\n invariant(assertion.spaceKey.equals(this._spaceKey));\n\n // Ignore duplicate admissions.\n if (this._members.has(credential.subject.id)) {\n return;\n }\n\n const info: MemberInfo = {\n key: credential.subject.id,\n credential,\n assertion,\n removed: false,\n profile: assertion.profile,\n };\n\n // NOTE: Assumes the first member processed is the creator.\n if (!this._creator) {\n this._creator = info;\n }\n\n this._members.set(credential.subject.id, info);\n log('member added', {\n member: credential.subject.id,\n space: this._spaceKey,\n role: assertion.role,\n profile: assertion.profile,\n });\n\n await this.onMemberAdmitted.callIfSet(info);\n break;\n }\n\n case 'dxos.halo.credentials.MemberProfile': {\n const member = this._members.get(credential.subject.id);\n if (!member) {\n log.warn('Member not found', { id: credential.subject.id });\n } else {\n member.profile = assertion.profile;\n }\n break;\n }\n\n default:\n throw new Error('Invalid assertion type');\n }\n }\n\n async onRevoked(revoked: Credential, revocation: Credential) {\n invariant(revoked.id);\n for (const member of this._members.values()) {\n if (member.credential.id?.equals(revoked.id)) {\n member.removed = true;\n break;\n }\n }\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Trigger } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Chain, type Credential, type DeviceProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { ComplexMap } from '@dxos/util';\n\nimport { type CredentialProcessor } from './credential-processor';\nimport { getCredentialAssertion, isValidAuthorizedDeviceCredential } from '../credentials';\n\nexport type DeviceStateMachineParams = {\n identityKey: PublicKey;\n deviceKey: PublicKey;\n onUpdate?: () => void;\n};\n\n/**\n * Processes device invitation credentials.\n */\nexport class DeviceStateMachine implements CredentialProcessor {\n // TODO(burdon): Return values via getter.\n public readonly authorizedDeviceKeys = new ComplexMap<PublicKey, DeviceProfileDocument>(PublicKey.hash);\n\n public readonly deviceChainReady = new Trigger();\n\n public deviceCredentialChain?: Chain;\n\n constructor(private readonly _params: DeviceStateMachineParams) {}\n\n async processCredential(credential: Credential) {\n log('processing credential...', {\n identityKey: this._params.identityKey,\n deviceKey: this._params.deviceKey,\n credential,\n });\n\n // Save device keychain credential when processed by the space state machine.\n if (isValidAuthorizedDeviceCredential(credential, this._params.identityKey, this._params.deviceKey)) {\n this.deviceCredentialChain = { credential };\n this.deviceChainReady.wake();\n }\n\n const assertion = getCredentialAssertion(credential);\n\n switch (assertion['@type']) {\n case 'dxos.halo.credentials.AuthorizedDevice': {\n invariant(!this.authorizedDeviceKeys.has(assertion.deviceKey), 'Device already added.');\n // TODO(dmaretskyi): Extra validation for the credential?\n this.authorizedDeviceKeys.set(assertion.deviceKey, {});\n log('added device', {\n localDeviceKey: this._params.deviceKey,\n deviceKey: assertion.deviceKey,\n size: this.authorizedDeviceKeys.size,\n });\n this._params.onUpdate?.();\n break;\n }\n\n case 'dxos.halo.credentials.DeviceProfile': {\n invariant(this.authorizedDeviceKeys.has(credential.subject.id), 'Device not found.');\n\n if (assertion && credential.subject.id.equals(this._params.deviceKey)) {\n log.trace('dxos.halo.device', {\n deviceKey: credential.subject.id,\n profile: assertion.profile,\n });\n }\n\n this.authorizedDeviceKeys.set(credential.subject.id, assertion.profile);\n this._params.onUpdate?.();\n break;\n }\n }\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential, type ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { type CredentialProcessor } from './credential-processor';\nimport { getCredentialAssertion } from '../credentials';\n\nexport type ProfileStateMachineParams = {\n identityKey: PublicKey;\n onUpdate?: () => void;\n};\n\n/**\n * Processes device invitation credentials.\n */\nexport class ProfileStateMachine implements CredentialProcessor {\n // TODO(burdon): Return values via getter.\n public profile?: ProfileDocument;\n\n constructor(private readonly _params: ProfileStateMachineParams) {}\n\n async processCredential(credential: Credential) {\n const assertion = getCredentialAssertion(credential);\n switch (assertion['@type']) {\n case 'dxos.halo.credentials.IdentityProfile': {\n if (\n !credential.issuer.equals(this._params.identityKey) ||\n !credential.subject.id.equals(this._params.identityKey)\n ) {\n log.warn('Invalid profile credential', { expectedIdentity: this._params.identityKey, credential });\n return;\n }\n\n // TODO(dmaretskyi): Extra validation for the credential?\n this.profile = assertion.profile;\n log('updated profile', {\n identityKey: this._params.identityKey,\n profile: this.profile,\n });\n this._params.onUpdate?.();\n break;\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_keys", "import_crypto", "import_timeframe", "import_credentials", "import_util", "import_invariant", "import_log", "import_async", "defaultSecretProvider", "Buffer", "from", "defaultSecretValidator", "invitation", "secret", "generatePasscode", "length", "passcode", "i", "Math", "floor", "random", "getCredentialProofPayload", "credential", "copy", "proof", "value", "Uint8Array", "chain", "undefined", "id", "canonicalStringify", "obj", "stableStringify", "replacer", "key", "toString", "startsWith", "original", "PublicKey", "isPublicKey", "toHex", "isBuffer", "arrayToBuffer", "data", "type", "Timeframe", "frames", "reduce", "seq", "truncateKey", "str", "substring", "getPresentationProofPayload", "credentials", "getCredentialAssertion", "subject", "assertion", "isValidAuthorizedDeviceCredential", "identityKey", "deviceKey", "equals", "issuer", "checkCredentialType", "credentialTypeFilter", "SIGNATURE_TYPE_ED25519", "verifyCredential", "signer", "kind", "errors", "result", "verifyChain", "verifyCredentialSignature", "signData", "verifySignature", "authority", "createCredential", "signingKey", "nonce", "invariant", "issuanceDate", "Date", "creationDate", "signedPayload", "sign", "subtleCrypto", "digest", "createCredentialMessage", "createCredentialSignerWithKey", "getIssuer", "createCredentialSignerWithChain", "CredentialGenerator", "constructor", "_signer", "_identityKey", "_deviceKey", "createSpaceGenesis", "spaceKey", "controlKey", "creatorProfile", "role", "SpaceMember", "Role", "ADMIN", "profile", "genesisFeedKey", "createFeedAdmission", "AdmittedFeed", "Designation", "CONTROL", "createMemberInvitation", "dataKey", "MEMBER", "DATA", "createDeviceAuthorization", "createDeviceProfile", "feedKey", "designation", "createProfileCredential", "createEpochCredential", "number", "timeframe", "Promise", "all", "map", "createAdmissionCredentials", "signPresentation", "presentation", "signerKey", "proofs", "verifyPresentation", "credentialsVerifications", "verification", "push", "proofVerification", "chainVerification", "verifyPresentationChain", "signatureVerification", "verifyPresentationSignature", "FeedStateMachine", "_spaceKey", "_feeds", "ComplexMap", "hash", "onFeedAdmitted", "Callback", "feeds", "process", "fromFeed", "info", "parent", "set", "callIfSet", "MemberStateMachine", "_members", "onMemberAdmitted", "creator", "_creator", "members", "getRole", "member", "get", "has", "removed", "log", "space", "warn", "Error", "onRevoked", "revoked", "revocation", "values", "REVOKABLE_CREDENTIALS", "SpaceStateMachine", "_credentials", "_credentialsById", "_processedCredentials", "ComplexSet", "_credentialProcessors", "onCredentialProcessed", "entry", "credentialEntries", "genesisCredential", "_genesisCredential", "addCredentialProcessor", "processor", "find", "p", "consumer", "CredentialConsumer", "_process", "_isReadyForLiveCredentials", "filter", "open", "removeCredentialProcessor", "close", "getCredentialsOfType", "sourceFeed", "skipVerification", "add", "join", "_canRevokeCredentials", "toBeRevoked", "_credentialCanBeRevoked", "_canInviteNewMembers", "_canAdmitFeeds", "newEntry", "includes", "_onOpen", "_onClose", "_ctx", "Context", "runInContextAsync", "processCredential", "disposed", "dispose", "DeviceStateMachine", "_params", "authorizedDeviceKeys", "deviceChainReady", "Trigger", "deviceCredentialChain", "wake", "localDeviceKey", "size", "onUpdate", "trace", "ProfileStateMachine", "expectedIdentity"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/core/halo/credentials/src/invitations.ts":{"bytes":1745,"imports":[],"format":"esm"},"packages/core/halo/credentials/src/passcode.ts":{"bytes":1420,"imports":[],"format":"esm"},"packages/core/halo/credentials/src/credentials/signing.ts":{"bytes":10466,"imports":[{"path":"json-stable-stringify","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/presentations/signing.ts":{"bytes":1805,"imports":[{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"../credentials/signing"}],"format":"esm"},"packages/core/halo/credentials/src/credentials/assertions.ts":{"bytes":3773,"imports":[],"format":"esm"},"packages/core/halo/credentials/src/credentials/verifier.ts":{"bytes":8058,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/assertions.ts","kind":"import-statement","original":"./assertions"},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"}],"format":"esm"},"packages/core/halo/credentials/src/credentials/credential-factory.ts":{"bytes":10807,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/verifier.ts","kind":"import-statement","original":"./verifier"}],"format":"esm"},"packages/core/halo/credentials/src/credentials/credential-generator.ts":{"bytes":19053,"imports":[{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/credential-factory.ts","kind":"import-statement","original":"./credential-factory"}],"format":"esm"},"packages/core/halo/credentials/src/credentials/index.ts":{"bytes":893,"imports":[{"path":"packages/core/halo/credentials/src/credentials/assertions.ts","kind":"import-statement","original":"./assertions"},{"path":"packages/core/halo/credentials/src/credentials/credential-factory.ts","kind":"import-statement","original":"./credential-factory"},{"path":"packages/core/halo/credentials/src/credentials/credential-generator.ts","kind":"import-statement","original":"./credential-generator"},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/verifier.ts","kind":"import-statement","original":"./verifier"}],"format":"esm"},"packages/core/halo/credentials/src/presentations/presentation.ts":{"bytes":3538,"imports":[{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/presentations/verifier.ts":{"bytes":10278,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/presentations/index.ts":{"bytes":671,"imports":[{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/presentations/presentation.ts","kind":"import-statement","original":"./presentation"},{"path":"packages/core/halo/credentials/src/presentations/verifier.ts","kind":"import-statement","original":"./verifier"}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts":{"bytes":5916,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/member-state-machine.ts":{"bytes":11740,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/space-state-machine.ts":{"bytes":36105,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts","kind":"import-statement","original":"./feed-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/member-state-machine.ts","kind":"import-statement","original":"./member-state-machine"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/index.ts":{"bytes":745,"imports":[{"path":"packages/core/halo/credentials/src/state-machine/space-state-machine.ts","kind":"import-statement","original":"./space-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts","kind":"import-statement","original":"./feed-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/member-state-machine.ts","kind":"import-statement","original":"./member-state-machine"}],"format":"esm"},"packages/core/halo/credentials/src/processor/credential-processor.ts":{"bytes":703,"imports":[],"format":"esm"},"packages/core/halo/credentials/src/processor/device-state-machine.ts":{"bytes":10520,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/processor/profile-state-machine.ts":{"bytes":5420,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/processor/index.ts":{"bytes":753,"imports":[{"path":"packages/core/halo/credentials/src/processor/credential-processor.ts","kind":"import-statement","original":"./credential-processor"},{"path":"packages/core/halo/credentials/src/processor/device-state-machine.ts","kind":"import-statement","original":"./device-state-machine"},{"path":"packages/core/halo/credentials/src/processor/profile-state-machine.ts","kind":"import-statement","original":"./profile-state-machine"}],"format":"esm"},"packages/core/halo/credentials/src/index.ts":{"bytes":1056,"imports":[{"path":"packages/core/halo/credentials/src/invitations.ts","kind":"import-statement","original":"./invitations"},{"path":"packages/core/halo/credentials/src/passcode.ts","kind":"import-statement","original":"./passcode"},{"path":"packages/core/halo/credentials/src/presentations/index.ts","kind":"import-statement","original":"./presentations"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"./credentials"},{"path":"packages/core/halo/credentials/src/state-machine/index.ts","kind":"import-statement","original":"./state-machine"},{"path":"packages/core/halo/credentials/src/processor/index.ts","kind":"import-statement","original":"./processor"}],"format":"esm"}},"outputs":{"packages/core/halo/credentials/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":66216},"packages/core/halo/credentials/dist/lib/node/index.cjs":{"imports":[{"path":"json-stable-stringify","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["CredentialGenerator","DeviceStateMachine","FeedStateMachine","MemberStateMachine","ProfileStateMachine","SIGNATURE_TYPE_ED25519","SpaceStateMachine","canonicalStringify","checkCredentialType","createAdmissionCredentials","createCredential","createCredentialMessage","createCredentialSignerWithChain","createCredentialSignerWithKey","createDeviceAuthorization","credentialTypeFilter","defaultSecretProvider","defaultSecretValidator","generatePasscode","getCredentialAssertion","getCredentialProofPayload","getPresentationProofPayload","isValidAuthorizedDeviceCredential","signPresentation","verifyChain","verifyCredential","verifyCredentialSignature","verifyPresentation","verifyPresentationChain","verifyPresentationSignature"],"entryPoint":"packages/core/halo/credentials/src/index.ts","inputs":{"packages/core/halo/credentials/src/invitations.ts":{"bytesInOutput":126},"packages/core/halo/credentials/src/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/passcode.ts":{"bytesInOutput":178},"packages/core/halo/credentials/src/credentials/signing.ts":{"bytesInOutput":1948},"packages/core/halo/credentials/src/presentations/signing.ts":{"bytesInOutput":236},"packages/core/halo/credentials/src/presentations/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/credentials/assertions.ts":{"bytesInOutput":648},"packages/core/halo/credentials/src/credentials/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/credentials/credential-factory.ts":{"bytesInOutput":2455},"packages/core/halo/credentials/src/credentials/verifier.ts":{"bytesInOutput":1661},"packages/core/halo/credentials/src/credentials/credential-generator.ts":{"bytesInOutput":4550},"packages/core/halo/credentials/src/presentations/presentation.ts":{"bytesInOutput":578},"packages/core/halo/credentials/src/presentations/verifier.ts":{"bytesInOutput":2302},"packages/core/halo/credentials/src/state-machine/space-state-machine.ts":{"bytesInOutput":8945},"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts":{"bytesInOutput":1545},"packages/core/halo/credentials/src/state-machine/member-state-machine.ts":{"bytesInOutput":2956},"packages/core/halo/credentials/src/state-machine/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/processor/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/processor/device-state-machine.ts":{"bytesInOutput":2782},"packages/core/halo/credentials/src/processor/profile-state-machine.ts":{"bytesInOutput":1204}},"bytes":34082}}}
|
|
1
|
+
{"inputs":{"packages/core/halo/credentials/src/invitations.ts":{"bytes":1745,"imports":[],"format":"esm"},"packages/core/halo/credentials/src/passcode.ts":{"bytes":1420,"imports":[],"format":"esm"},"packages/core/halo/credentials/src/credentials/signing.ts":{"bytes":10466,"imports":[{"path":"json-stable-stringify","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/halo/credentials/src/presentations/signing.ts":{"bytes":1805,"imports":[{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"../credentials/signing"}],"format":"esm"},"packages/core/halo/credentials/src/credentials/assertions.ts":{"bytes":3773,"imports":[],"format":"esm"},"packages/core/halo/credentials/src/credentials/verifier.ts":{"bytes":8058,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/assertions.ts","kind":"import-statement","original":"./assertions"},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"}],"format":"esm"},"packages/core/halo/credentials/src/credentials/credential-factory.ts":{"bytes":10807,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/verifier.ts","kind":"import-statement","original":"./verifier"}],"format":"esm"},"packages/core/halo/credentials/src/credentials/credential-generator.ts":{"bytes":19097,"imports":[{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/credential-factory.ts","kind":"import-statement","original":"./credential-factory"}],"format":"esm"},"packages/core/halo/credentials/src/credentials/index.ts":{"bytes":893,"imports":[{"path":"packages/core/halo/credentials/src/credentials/assertions.ts","kind":"import-statement","original":"./assertions"},{"path":"packages/core/halo/credentials/src/credentials/credential-factory.ts","kind":"import-statement","original":"./credential-factory"},{"path":"packages/core/halo/credentials/src/credentials/credential-generator.ts","kind":"import-statement","original":"./credential-generator"},{"path":"packages/core/halo/credentials/src/credentials/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/verifier.ts","kind":"import-statement","original":"./verifier"}],"format":"esm"},"packages/core/halo/credentials/src/presentations/presentation.ts":{"bytes":3538,"imports":[{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/presentations/verifier.ts":{"bytes":10278,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/presentations/index.ts":{"bytes":671,"imports":[{"path":"packages/core/halo/credentials/src/presentations/signing.ts","kind":"import-statement","original":"./signing"},{"path":"packages/core/halo/credentials/src/presentations/presentation.ts","kind":"import-statement","original":"./presentation"},{"path":"packages/core/halo/credentials/src/presentations/verifier.ts","kind":"import-statement","original":"./verifier"}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts":{"bytes":5928,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/member-state-machine.ts":{"bytes":11748,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/space-state-machine.ts":{"bytes":36169,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts","kind":"import-statement","original":"./feed-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/member-state-machine.ts","kind":"import-statement","original":"./member-state-machine"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/state-machine/index.ts":{"bytes":745,"imports":[{"path":"packages/core/halo/credentials/src/state-machine/space-state-machine.ts","kind":"import-statement","original":"./space-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts","kind":"import-statement","original":"./feed-state-machine"},{"path":"packages/core/halo/credentials/src/state-machine/member-state-machine.ts","kind":"import-statement","original":"./member-state-machine"}],"format":"esm"},"packages/core/halo/credentials/src/processor/credential-processor.ts":{"bytes":703,"imports":[],"format":"esm"},"packages/core/halo/credentials/src/processor/device-state-machine.ts":{"bytes":10524,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/processor/profile-state-machine.ts":{"bytes":5432,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"../credentials"}],"format":"esm"},"packages/core/halo/credentials/src/processor/index.ts":{"bytes":753,"imports":[{"path":"packages/core/halo/credentials/src/processor/credential-processor.ts","kind":"import-statement","original":"./credential-processor"},{"path":"packages/core/halo/credentials/src/processor/device-state-machine.ts","kind":"import-statement","original":"./device-state-machine"},{"path":"packages/core/halo/credentials/src/processor/profile-state-machine.ts","kind":"import-statement","original":"./profile-state-machine"}],"format":"esm"},"packages/core/halo/credentials/src/index.ts":{"bytes":1056,"imports":[{"path":"packages/core/halo/credentials/src/invitations.ts","kind":"import-statement","original":"./invitations"},{"path":"packages/core/halo/credentials/src/passcode.ts","kind":"import-statement","original":"./passcode"},{"path":"packages/core/halo/credentials/src/presentations/index.ts","kind":"import-statement","original":"./presentations"},{"path":"packages/core/halo/credentials/src/credentials/index.ts","kind":"import-statement","original":"./credentials"},{"path":"packages/core/halo/credentials/src/state-machine/index.ts","kind":"import-statement","original":"./state-machine"},{"path":"packages/core/halo/credentials/src/processor/index.ts","kind":"import-statement","original":"./processor"}],"format":"esm"}},"outputs":{"packages/core/halo/credentials/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":66271},"packages/core/halo/credentials/dist/lib/node/index.cjs":{"imports":[{"path":"json-stable-stringify","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["CredentialGenerator","DeviceStateMachine","FeedStateMachine","MemberStateMachine","ProfileStateMachine","SIGNATURE_TYPE_ED25519","SpaceStateMachine","canonicalStringify","checkCredentialType","createAdmissionCredentials","createCredential","createCredentialMessage","createCredentialSignerWithChain","createCredentialSignerWithKey","createDeviceAuthorization","credentialTypeFilter","defaultSecretProvider","defaultSecretValidator","generatePasscode","getCredentialAssertion","getCredentialProofPayload","getPresentationProofPayload","isValidAuthorizedDeviceCredential","signPresentation","verifyChain","verifyCredential","verifyCredentialSignature","verifyPresentation","verifyPresentationChain","verifyPresentationSignature"],"entryPoint":"packages/core/halo/credentials/src/index.ts","inputs":{"packages/core/halo/credentials/src/invitations.ts":{"bytesInOutput":126},"packages/core/halo/credentials/src/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/passcode.ts":{"bytesInOutput":178},"packages/core/halo/credentials/src/credentials/signing.ts":{"bytesInOutput":1948},"packages/core/halo/credentials/src/presentations/signing.ts":{"bytesInOutput":236},"packages/core/halo/credentials/src/presentations/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/credentials/assertions.ts":{"bytesInOutput":648},"packages/core/halo/credentials/src/credentials/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/credentials/credential-factory.ts":{"bytesInOutput":2455},"packages/core/halo/credentials/src/credentials/verifier.ts":{"bytesInOutput":1661},"packages/core/halo/credentials/src/credentials/credential-generator.ts":{"bytesInOutput":4550},"packages/core/halo/credentials/src/presentations/presentation.ts":{"bytesInOutput":578},"packages/core/halo/credentials/src/presentations/verifier.ts":{"bytesInOutput":2302},"packages/core/halo/credentials/src/state-machine/space-state-machine.ts":{"bytesInOutput":8945},"packages/core/halo/credentials/src/state-machine/feed-state-machine.ts":{"bytesInOutput":1545},"packages/core/halo/credentials/src/state-machine/member-state-machine.ts":{"bytesInOutput":2956},"packages/core/halo/credentials/src/state-machine/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/processor/index.ts":{"bytesInOutput":0},"packages/core/halo/credentials/src/processor/device-state-machine.ts":{"bytesInOutput":2782},"packages/core/halo/credentials/src/processor/profile-state-machine.ts":{"bytesInOutput":1204}},"bytes":34082}}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/credentials",
|
|
3
|
-
"version": "0.3.11-next.
|
|
3
|
+
"version": "0.3.11-next.ee2b64c",
|
|
4
4
|
"description": "DXOS Credentials",
|
|
5
5
|
"homepage": "https://github.com/dxos/dxos/tree/main/packages/core/halo/credentials#readme",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -25,20 +25,20 @@
|
|
|
25
25
|
"performance-now": "^2.1.0",
|
|
26
26
|
"pump": "^3.0.0",
|
|
27
27
|
"stream-to-array": "^2.3.0",
|
|
28
|
-
"@dxos/async": "0.3.11-next.
|
|
29
|
-
"@dxos/
|
|
30
|
-
"@dxos/
|
|
31
|
-
"@dxos/crypto": "0.3.11-next.
|
|
32
|
-
"@dxos/feed-store": "0.3.11-next.
|
|
33
|
-
"@dxos/debug": "0.3.11-next.
|
|
34
|
-
"@dxos/
|
|
35
|
-
"@dxos/
|
|
36
|
-
"@dxos/keys": "0.3.11-next.
|
|
37
|
-
"@dxos/log": "0.3.11-next.
|
|
38
|
-
"@dxos/node-std": "0.3.11-next.
|
|
39
|
-
"@dxos/
|
|
40
|
-
"@dxos/util": "0.3.11-next.
|
|
41
|
-
"@dxos/
|
|
28
|
+
"@dxos/async": "0.3.11-next.ee2b64c",
|
|
29
|
+
"@dxos/codec-protobuf": "0.3.11-next.ee2b64c",
|
|
30
|
+
"@dxos/context": "0.3.11-next.ee2b64c",
|
|
31
|
+
"@dxos/crypto": "0.3.11-next.ee2b64c",
|
|
32
|
+
"@dxos/feed-store": "0.3.11-next.ee2b64c",
|
|
33
|
+
"@dxos/debug": "0.3.11-next.ee2b64c",
|
|
34
|
+
"@dxos/keyring": "0.3.11-next.ee2b64c",
|
|
35
|
+
"@dxos/invariant": "0.3.11-next.ee2b64c",
|
|
36
|
+
"@dxos/keys": "0.3.11-next.ee2b64c",
|
|
37
|
+
"@dxos/log": "0.3.11-next.ee2b64c",
|
|
38
|
+
"@dxos/node-std": "0.3.11-next.ee2b64c",
|
|
39
|
+
"@dxos/timeframe": "0.3.11-next.ee2b64c",
|
|
40
|
+
"@dxos/util": "0.3.11-next.ee2b64c",
|
|
41
|
+
"@dxos/protocols": "0.3.11-next.ee2b64c"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/encoding-down": "^5.0.0",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"@types/pify": "^3.0.2",
|
|
51
51
|
"@types/pump": "^1.1.0",
|
|
52
52
|
"@types/stream-to-array": "^2.3.0",
|
|
53
|
-
"@dxos/random-access-storage": "0.3.11-next.
|
|
53
|
+
"@dxos/random-access-storage": "0.3.11-next.ee2b64c"
|
|
54
54
|
},
|
|
55
55
|
"publishConfig": {
|
|
56
56
|
"access": "public"
|