You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
3.3 KiB
117 lines
3.3 KiB
"use strict"; |
|
var __defProp = Object.defineProperty; |
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor; |
|
var __getOwnPropNames = Object.getOwnPropertyNames; |
|
var __hasOwnProp = Object.prototype.hasOwnProperty; |
|
var __export = (target, all) => { |
|
for (var name in all) |
|
__defProp(target, name, { get: all[name], enumerable: true }); |
|
}; |
|
var __copyProps = (to, from, except, desc) => { |
|
if (from && typeof from === "object" || typeof from === "function") { |
|
for (let key of __getOwnPropNames(from)) |
|
if (!__hasOwnProp.call(to, key) && key !== except) |
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); |
|
} |
|
return to; |
|
}; |
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); |
|
|
|
// nip58.ts |
|
var nip58_exports = {}; |
|
__export(nip58_exports, { |
|
generateBadgeAwardEventTemplate: () => generateBadgeAwardEventTemplate, |
|
generateBadgeDefinitionEventTemplate: () => generateBadgeDefinitionEventTemplate, |
|
generateProfileBadgesEventTemplate: () => generateProfileBadgesEventTemplate, |
|
validateBadgeAwardEvent: () => validateBadgeAwardEvent, |
|
validateBadgeDefinitionEvent: () => validateBadgeDefinitionEvent, |
|
validateProfileBadgesEvent: () => validateProfileBadgesEvent |
|
}); |
|
module.exports = __toCommonJS(nip58_exports); |
|
|
|
// kinds.ts |
|
var BadgeAward = 8; |
|
var ProfileBadges = 30008; |
|
var BadgeDefinition = 30009; |
|
|
|
// nip58.ts |
|
function generateBadgeDefinitionEventTemplate({ |
|
d, |
|
description, |
|
image, |
|
name, |
|
thumbs |
|
}) { |
|
const tags = [["d", d]]; |
|
name && tags.push(["name", name]); |
|
description && tags.push(["description", description]); |
|
image && tags.push(["image", ...image]); |
|
if (thumbs) { |
|
for (const thumb of thumbs) { |
|
tags.push(["thumb", ...thumb]); |
|
} |
|
} |
|
const eventTemplate = { |
|
content: "", |
|
created_at: Math.floor(Date.now() / 1e3), |
|
kind: BadgeDefinition, |
|
tags |
|
}; |
|
return eventTemplate; |
|
} |
|
function validateBadgeDefinitionEvent(event) { |
|
if (event.kind !== BadgeDefinition) |
|
return false; |
|
const requiredTags = ["d"]; |
|
for (const tag of requiredTags) { |
|
if (!event.tags.find(([t]) => t == tag)) |
|
return false; |
|
} |
|
return true; |
|
} |
|
function generateBadgeAwardEventTemplate({ a, p }) { |
|
const tags = [["a", a]]; |
|
for (const _p of p) { |
|
tags.push(["p", ..._p]); |
|
} |
|
const eventTemplate = { |
|
content: "", |
|
created_at: Math.floor(Date.now() / 1e3), |
|
kind: BadgeAward, |
|
tags |
|
}; |
|
return eventTemplate; |
|
} |
|
function validateBadgeAwardEvent(event) { |
|
if (event.kind !== BadgeAward) |
|
return false; |
|
const requiredTags = ["a", "p"]; |
|
for (const tag of requiredTags) { |
|
if (!event.tags.find(([t]) => t == tag)) |
|
return false; |
|
} |
|
return true; |
|
} |
|
function generateProfileBadgesEventTemplate({ badges }) { |
|
const tags = [["d", "profile_badges"]]; |
|
for (const badge of badges) { |
|
tags.push(["a", badge.a], ["e", ...badge.e]); |
|
} |
|
const eventTemplate = { |
|
content: "", |
|
created_at: Math.floor(Date.now() / 1e3), |
|
kind: ProfileBadges, |
|
tags |
|
}; |
|
return eventTemplate; |
|
} |
|
function validateProfileBadgesEvent(event) { |
|
if (event.kind !== ProfileBadges) |
|
return false; |
|
const requiredTags = ["d"]; |
|
for (const tag of requiredTags) { |
|
if (!event.tags.find(([t]) => t == tag)) |
|
return false; |
|
} |
|
return true; |
|
}
|
|
|