@safe-vanity-blockie/core 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/blo.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"blo.d.ts","sourceRoot":"","sources":["../src/blo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAW,MAAM,YAAY,CAAA;AAQxD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAS/D;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAIlD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAOrD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAQnD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CASlD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAIhG;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAInD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CA2BzD"}
1
+ {"version":3,"file":"blo.d.ts","sourceRoot":"","sources":["../src/blo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAW,MAAM,YAAY,CAAA;AAQxD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAS/D;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAIlD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAOrD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAQnD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CASlD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAIhG;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAInD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CA6BzD"}
package/dist/blo.js CHANGED
@@ -72,11 +72,13 @@ export function bloSvg(address, size = 64) {
72
72
  paths[data[i] - 1] += 'M' + x + square + 'M' + (7 - x) + square;
73
73
  }
74
74
  const path = (color, d) => '<path fill="hsl(' + color[0] + ' ' + color[1] + '% ' + color[2] + '%)" d="' + d + '"/>';
75
+ const numericSize = Number(size);
76
+ const safeSize = Number.isFinite(numericSize) && numericSize >= 0 ? numericSize : 64;
75
77
  return ('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8" shape-rendering="optimizeSpeed" ' +
76
78
  'width="' +
77
- size +
79
+ safeSize +
78
80
  '" height="' +
79
- size +
81
+ safeSize +
80
82
  '">' +
81
83
  path(b, 'M0,0H8V8H0z') +
82
84
  path(c, paths[0]) +
package/dist/blo.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"blo.js","sourceRoot":"","sources":["../src/blo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blo.js","sourceRoot":"","sources":["../src/blo.ts"],"names":[],"mappings":"AAEA,0FAA0F;AAC1F,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;AAE1C,8FAA8F;AAC9F,MAAM,WAAW,GAAG,EAAE,CAAA;AAEtB,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,KAAkB;IACvD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACZ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACZ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACZ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IACrE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACrB,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACrC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACnB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACnB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACnB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC7D,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAkB;IAC5C,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK,CACR,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CACrF;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC7C,4EAA4E;IAC5E,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAC5B,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAC5B,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAC5B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAA;IAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAY,EAAE,CAAA;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,gBAAwB,EAAE,IAAgB,EAAE,KAAkB;IACxF,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;QAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAA;AAC5E,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAC/B,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5D,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,IAAI,GAAG,EAAE;IAC/C,MAAM,EACJ,IAAI,EACJ,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IACrB,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,SAAQ;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACf,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChB,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,UAAU,CAAA;QACnC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAA;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,KAAU,EAAE,CAAS,EAAE,EAAE,CACrC,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,KAAK,CAAA;IAC1F,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACpF,OAAO,CACL,4FAA4F;QAC5F,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,IAAI;QACJ,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC;QACtB,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,QAAQ,CACT,CAAA;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,6 @@ export { createKeccak256, type Keccak256 } from './keccak.js';
5
5
  export { type Candidate, compareCandidates, createMiner, Leaderboard, type MineOptions, type MineResult, } from './miner.js';
6
6
  export { apportion, colorContrast, compileFace, describeMatch, hslToRgb, isTwoColor, makeScorer, } from './scoring.js';
7
7
  export { filterCandidates, formatScore, type SelectReportedResult, scorePercent, selectReported, } from './select.js';
8
- export { BASE_TARGET, BASE_WEIGHTS, faceWithMouths, getTemplate, MOUTH_BG_WEIGHT, MOUTH_BUDGET, MOUTH_INDICES, MOUTH_STROKE_WEIGHT, MOUTHS, parseFaceSpec, TEMPLATES, } from './templates.js';
8
+ export { BASE_TARGET, BASE_WEIGHTS, faceSpecForTarget, faceWithMouths, getTemplate, MOUTH_BG_WEIGHT, MOUTH_BUDGET, MOUTH_INDICES, MOUTH_STROKE_WEIGHT, MOUTHS, parseFaceSpec, TEMPLATES, targetNameForMouths, } from './templates.js';
9
9
  export type { BloImage, CompiledFace, FaceRegion, FaceSpec, FixedCell, Hsl, Palette, RegionAlternative, } from './types.js';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5F,OAAO,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EACL,KAAK,SAAS,EACd,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,KAAK,oBAAoB,EACzB,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,aAAa,EACb,SAAS,GACV,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,GAAG,EACH,OAAO,EACP,iBAAiB,GAClB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5F,OAAO,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EACL,KAAK,SAAS,EACd,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,KAAK,oBAAoB,EACzB,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,aAAa,EACb,SAAS,EACT,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,GAAG,EACH,OAAO,EACP,iBAAiB,GAClB,MAAM,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -5,5 +5,5 @@ export { createKeccak256 } from './keccak.js';
5
5
  export { compareCandidates, createMiner, Leaderboard, } from './miner.js';
6
6
  export { apportion, colorContrast, compileFace, describeMatch, hslToRgb, isTwoColor, makeScorer, } from './scoring.js';
7
7
  export { filterCandidates, formatScore, scorePercent, selectReported, } from './select.js';
8
- export { BASE_TARGET, BASE_WEIGHTS, faceWithMouths, getTemplate, MOUTH_BG_WEIGHT, MOUTH_BUDGET, MOUTH_INDICES, MOUTH_STROKE_WEIGHT, MOUTHS, parseFaceSpec, TEMPLATES, } from './templates.js';
8
+ export { BASE_TARGET, BASE_WEIGHTS, faceSpecForTarget, faceWithMouths, getTemplate, MOUTH_BG_WEIGHT, MOUTH_BUDGET, MOUTH_INDICES, MOUTH_STROKE_WEIGHT, MOUTHS, parseFaceSpec, TEMPLATES, targetNameForMouths, } from './templates.js';
9
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,oBAAoB,EAAsB,MAAM,cAAc,CAAA;AAC5F,OAAO,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,eAAe,EAAkB,MAAM,aAAa,CAAA;AAC7D,OAAO,EAEL,iBAAiB,EACjB,WAAW,EACX,WAAW,GAGZ,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,gBAAgB,EAChB,WAAW,EAEX,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,aAAa,EACb,SAAS,GACV,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,oBAAoB,EAAsB,MAAM,cAAc,CAAA;AAC5F,OAAO,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,eAAe,EAAkB,MAAM,aAAa,CAAA;AAC7D,OAAO,EAEL,iBAAiB,EACjB,WAAW,EACX,WAAW,GAGZ,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,gBAAgB,EAChB,WAAW,EAEX,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,aAAa,EACb,SAAS,EACT,mBAAmB,GACpB,MAAM,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"miner.d.ts","sourceRoot":"","sources":["../src/miner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAEvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,WAAW,SAAS;IACxB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,yGAAyG;AACzG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAMpE;AAED,qBAAa,WAAW;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,IAAI,CAAoB;gBAEpB,QAAQ,EAAE,MAAM;IAO5B,qFAAqF;IACrF,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAWpC,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAIpC,OAAO,IAAI,SAAS,EAAE;CAGvB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yEAAyE;IAEzE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,OAAO,GAAG,IAAI,CAAA;CACpE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,SAAS,GACnB;IAAE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CAAA;CAAE,CA+C5C"}
1
+ {"version":3,"file":"miner.d.ts","sourceRoot":"","sources":["../src/miner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAEvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,WAAW,SAAS;IACxB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,yGAAyG;AACzG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAMpE;AAED,qBAAa,WAAW;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,IAAI,CAAoB;IAEhC,YAAY,QAAQ,EAAE,MAAM,EAK3B;IAED,qFAAqF;IACrF,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CASnC;IAED,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAEnC;IAED,OAAO,IAAI,SAAS,EAAE,CAErB;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yEAAyE;IAEzE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,OAAO,GAAG,IAAI,CAAA;CACpE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,SAAS,GACnB;IAAE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CAAA;CAAE,CA+C5C"}
@@ -13,6 +13,35 @@ export declare const MOUTHS: readonly RegionAlternative[];
13
13
  export declare function faceWithMouths(name: string, mouthNames: string[]): FaceSpec;
14
14
  export declare const TEMPLATES: Record<string, FaceSpec>;
15
15
  export declare function getTemplate(name: string): FaceSpec;
16
+ /**
17
+ * The name a set of accepted expressions is known by, both as a FaceSpec name and as a `--target`
18
+ * value: the builtin `faces` when it is all of them, otherwise the names joined by commas.
19
+ *
20
+ * Commas because that is the one list separator the CLI already has — `--owners 0x..,0x..` — and a
21
+ * second convention for a second list is one more thing to remember at the prompt for no gain.
22
+ *
23
+ * Lives beside TEMPLATES rather than in the app that needs it, because it is one half of a
24
+ * round-trip whose other half is `faceSpecForTarget` below — the app names a selection with this,
25
+ * hands that name to the CLI, and the CLI resolves it back to the same set of expressions. Split
26
+ * across two packages, the two halves would be free to drift apart with nothing failing.
27
+ *
28
+ * Validates nothing: the caller builds the spec from the same names, and `faceWithMouths` is where
29
+ * an unknown one is caught, with the error that lists the expressions.
30
+ */
31
+ export declare function targetNameForMouths(mouthNames: string[]): string;
32
+ /**
33
+ * A `--target` name: a builtin template, or a comma-separated list of expressions — so
34
+ * `smile,frown` accepts either of those two mouths and nothing else.
35
+ *
36
+ * The list form exists because the builtins name only the two ends of the range, one expression or
37
+ * all five, while the browser app accepts any subset of them. A narrowed selection therefore had no
38
+ * name to be handed to the CLI at all, and the command the app offered for "run this same search
39
+ * natively" quietly searched a wider target than the screen it was copied from.
40
+ *
41
+ * A repeat is deduped rather than rejected: it names the same expression twice, which is not
42
+ * ambiguous, and a second identical alternative is scoring work for no wider target.
43
+ */
44
+ export declare function faceSpecForTarget(target: string): FaceSpec;
16
45
  /** Validates untrusted JSON (a `--target file.json`, or a future web designer export). */
17
46
  export declare function parseFaceSpec(input: unknown): FaceSpec;
18
47
  //# sourceMappingURL=templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,QAAQ,EAAa,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEpF,eAAO,MAAM,YAAY,KAAK,CAAA;AAC9B,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,eAAO,MAAM,eAAe,IAAI,CAAA;AAEhC,iGAAiG;AACjG,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAEzC,CAAA;AAED,mHAAmH;AACnH,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAEzC,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAqD,CAAA;AAEhG,eAAO,MAAM,MAAM,EAAE,SAAS,iBAAiB,EAO9C,CAAA;AAiBD,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,QAAQ,CAW3E;AAKD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAQ7C,CAAA;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAKlD;AAkBD,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAoEtD"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,QAAQ,EAAa,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEpF,eAAO,MAAM,YAAY,KAAK,CAAA;AAC9B,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,eAAO,MAAM,eAAe,IAAI,CAAA;AAEhC,iGAAiG;AACjG,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAEzC,CAAA;AAED,mHAAmH;AACnH,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAEzC,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAqD,CAAA;AAEhG,eAAO,MAAM,MAAM,EAAE,SAAS,iBAAiB,EAO9C,CAAA;AAiBD,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,QAAQ,CAW3E;AAKD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAQ7C,CAAA;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAKlD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAKhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAyB1D;AAkBD,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAoEtD"}
package/dist/templates.js CHANGED
@@ -56,6 +56,60 @@ export function getTemplate(name) {
56
56
  }
57
57
  return TEMPLATES[name];
58
58
  }
59
+ /**
60
+ * The name a set of accepted expressions is known by, both as a FaceSpec name and as a `--target`
61
+ * value: the builtin `faces` when it is all of them, otherwise the names joined by commas.
62
+ *
63
+ * Commas because that is the one list separator the CLI already has — `--owners 0x..,0x..` — and a
64
+ * second convention for a second list is one more thing to remember at the prompt for no gain.
65
+ *
66
+ * Lives beside TEMPLATES rather than in the app that needs it, because it is one half of a
67
+ * round-trip whose other half is `faceSpecForTarget` below — the app names a selection with this,
68
+ * hands that name to the CLI, and the CLI resolves it back to the same set of expressions. Split
69
+ * across two packages, the two halves would be free to drift apart with nothing failing.
70
+ *
71
+ * Validates nothing: the caller builds the spec from the same names, and `faceWithMouths` is where
72
+ * an unknown one is caught, with the error that lists the expressions.
73
+ */
74
+ export function targetNameForMouths(mouthNames) {
75
+ const unique = [...new Set(mouthNames)];
76
+ const isEveryMouth = unique.length === MOUTHS.length && MOUTHS.every((mouth) => unique.includes(mouth.name));
77
+ return isEveryMouth ? 'faces' : unique.join(',');
78
+ }
79
+ /**
80
+ * A `--target` name: a builtin template, or a comma-separated list of expressions — so
81
+ * `smile,frown` accepts either of those two mouths and nothing else.
82
+ *
83
+ * The list form exists because the builtins name only the two ends of the range, one expression or
84
+ * all five, while the browser app accepts any subset of them. A narrowed selection therefore had no
85
+ * name to be handed to the CLI at all, and the command the app offered for "run this same search
86
+ * natively" quietly searched a wider target than the screen it was copied from.
87
+ *
88
+ * A repeat is deduped rather than rejected: it names the same expression twice, which is not
89
+ * ambiguous, and a second identical alternative is scoring work for no wider target.
90
+ */
91
+ export function faceSpecForTarget(target) {
92
+ // Same null-prototype reasoning as TEMPLATES: `hasOwn`, so a URL- or argv-supplied
93
+ // "constructor" cannot resolve to an inherited key.
94
+ if (Object.hasOwn(TEMPLATES, target))
95
+ return TEMPLATES[target];
96
+ const known = new Set(MOUTHS.map((mouth) => mouth.name));
97
+ const names = [
98
+ ...new Set(target
99
+ .split(',')
100
+ .map((name) => name.trim())
101
+ .filter((name) => name.length > 0)),
102
+ ];
103
+ if (names.length === 0 || names.some((name) => !known.has(name))) {
104
+ // One error for every way of getting this wrong, naming both alphabets: a template is a legal
105
+ // target and an expression is a legal list entry, so a value like "faces,smile" is a plausible
106
+ // confusion of the two and neither list alone would explain it. It is also what a `+` between
107
+ // two otherwise valid expressions lands on, which is the whole message a wrong separator needs.
108
+ throw new Error(`unknown target "${target}"; expected a template (${Object.keys(TEMPLATES).join(', ')}) ` +
109
+ `or a comma-separated list of expressions (${MOUTHS.map((mouth) => mouth.name).join(', ')})`);
110
+ }
111
+ return faceWithMouths(targetNameForMouths(names), names);
112
+ }
59
113
  /** Guards the `entry as Record<string, unknown>` casts below: a null or primitive entry would
60
114
  * otherwise surface as a raw TypeError from the first property read. */
61
115
  function requireObject(value, label) {
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@safe-vanity-blockie/core",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "Isomorphic blo identicon, CREATE2 address derivation and mining primitives for Safe vanity blockies",
5
5
  "engines": {
6
6
  "node": ">=22"
@@ -42,7 +42,7 @@
42
42
  "devDependencies": {
43
43
  "@noble/hashes": "^2.3.0",
44
44
  "blo": "2.0.0",
45
- "viem": "^2.55.11"
45
+ "viem": "^2.55.16"
46
46
  },
47
47
  "scripts": {
48
48
  "build": "tsc -p tsconfig.json",
package/src/blo.ts CHANGED
@@ -85,12 +85,14 @@ export function bloSvg(address: string, size = 64): string {
85
85
  }
86
86
  const path = (color: Hsl, d: string) =>
87
87
  '<path fill="hsl(' + color[0] + ' ' + color[1] + '% ' + color[2] + '%)" d="' + d + '"/>'
88
+ const numericSize = Number(size)
89
+ const safeSize = Number.isFinite(numericSize) && numericSize >= 0 ? numericSize : 64
88
90
  return (
89
91
  '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8" shape-rendering="optimizeSpeed" ' +
90
92
  'width="' +
91
- size +
93
+ safeSize +
92
94
  '" height="' +
93
- size +
95
+ safeSize +
94
96
  '">' +
95
97
  path(b, 'M0,0H8V8H0z') +
96
98
  path(c, paths[0]) +
package/src/index.ts CHANGED
@@ -38,6 +38,7 @@ export {
38
38
  export {
39
39
  BASE_TARGET,
40
40
  BASE_WEIGHTS,
41
+ faceSpecForTarget,
41
42
  faceWithMouths,
42
43
  getTemplate,
43
44
  MOUTH_BG_WEIGHT,
@@ -47,6 +48,7 @@ export {
47
48
  MOUTHS,
48
49
  parseFaceSpec,
49
50
  TEMPLATES,
51
+ targetNameForMouths,
50
52
  } from './templates.js'
51
53
  export type {
52
54
  BloImage,
package/src/templates.ts CHANGED
@@ -75,6 +75,67 @@ export function getTemplate(name: string): FaceSpec {
75
75
  return TEMPLATES[name]
76
76
  }
77
77
 
78
+ /**
79
+ * The name a set of accepted expressions is known by, both as a FaceSpec name and as a `--target`
80
+ * value: the builtin `faces` when it is all of them, otherwise the names joined by commas.
81
+ *
82
+ * Commas because that is the one list separator the CLI already has — `--owners 0x..,0x..` — and a
83
+ * second convention for a second list is one more thing to remember at the prompt for no gain.
84
+ *
85
+ * Lives beside TEMPLATES rather than in the app that needs it, because it is one half of a
86
+ * round-trip whose other half is `faceSpecForTarget` below — the app names a selection with this,
87
+ * hands that name to the CLI, and the CLI resolves it back to the same set of expressions. Split
88
+ * across two packages, the two halves would be free to drift apart with nothing failing.
89
+ *
90
+ * Validates nothing: the caller builds the spec from the same names, and `faceWithMouths` is where
91
+ * an unknown one is caught, with the error that lists the expressions.
92
+ */
93
+ export function targetNameForMouths(mouthNames: string[]): string {
94
+ const unique = [...new Set(mouthNames)]
95
+ const isEveryMouth =
96
+ unique.length === MOUTHS.length && MOUTHS.every((mouth) => unique.includes(mouth.name))
97
+ return isEveryMouth ? 'faces' : unique.join(',')
98
+ }
99
+
100
+ /**
101
+ * A `--target` name: a builtin template, or a comma-separated list of expressions — so
102
+ * `smile,frown` accepts either of those two mouths and nothing else.
103
+ *
104
+ * The list form exists because the builtins name only the two ends of the range, one expression or
105
+ * all five, while the browser app accepts any subset of them. A narrowed selection therefore had no
106
+ * name to be handed to the CLI at all, and the command the app offered for "run this same search
107
+ * natively" quietly searched a wider target than the screen it was copied from.
108
+ *
109
+ * A repeat is deduped rather than rejected: it names the same expression twice, which is not
110
+ * ambiguous, and a second identical alternative is scoring work for no wider target.
111
+ */
112
+ export function faceSpecForTarget(target: string): FaceSpec {
113
+ // Same null-prototype reasoning as TEMPLATES: `hasOwn`, so a URL- or argv-supplied
114
+ // "constructor" cannot resolve to an inherited key.
115
+ if (Object.hasOwn(TEMPLATES, target)) return TEMPLATES[target]
116
+
117
+ const known = new Set(MOUTHS.map((mouth) => mouth.name))
118
+ const names = [
119
+ ...new Set(
120
+ target
121
+ .split(',')
122
+ .map((name) => name.trim())
123
+ .filter((name) => name.length > 0),
124
+ ),
125
+ ]
126
+ if (names.length === 0 || names.some((name) => !known.has(name))) {
127
+ // One error for every way of getting this wrong, naming both alphabets: a template is a legal
128
+ // target and an expression is a legal list entry, so a value like "faces,smile" is a plausible
129
+ // confusion of the two and neither list alone would explain it. It is also what a `+` between
130
+ // two otherwise valid expressions lands on, which is the whole message a wrong separator needs.
131
+ throw new Error(
132
+ `unknown target "${target}"; expected a template (${Object.keys(TEMPLATES).join(', ')}) ` +
133
+ `or a comma-separated list of expressions (${MOUTHS.map((mouth) => mouth.name).join(', ')})`,
134
+ )
135
+ }
136
+ return faceWithMouths(targetNameForMouths(names), names)
137
+ }
138
+
78
139
  /** Guards the `entry as Record<string, unknown>` casts below: a null or primitive entry would
79
140
  * otherwise surface as a raw TypeError from the first property read. */
80
141
  function requireObject(value: unknown, label: string): Record<string, unknown> {