@arcblock/did-connect-service 4.1.30 → 4.1.32

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.
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/og/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/og/worker.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,6 @@
3
3
  *
4
4
  * Flow: handleLogoFile() → validate → SVG bypass or openCropper() → crop → upload
5
5
  */
6
- export declare const CROPPER_SCRIPT = "\n// \u2500\u2500\u2500 Crop aspect ratios per logo type \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nvar CROP_RATIOS = {\n 'square': 1, 'square-dark': 1, 'favicon': 1,\n 'rect': NaN, 'rect-dark': NaN,\n 'splash-portrait': 9/16, 'splash-landscape': 16/9,\n 'og-image': 40/21\n};\n// Target dimensions and output format per logo type\nvar CROP_OUTPUT = {\n 'square': { maxW: 512, maxH: 512, fmt: 'image/webp', q: 0.9, ext: 'webp' },\n 'square-dark': { maxW: 512, maxH: 512, fmt: 'image/webp', q: 0.9, ext: 'webp' },\n 'favicon': { maxW: 128, maxH: 128, fmt: 'image/png', q: 1, ext: 'png' },\n 'rect': { maxW: 800, maxH: 400, fmt: 'image/webp', q: 0.9, ext: 'webp' },\n 'rect-dark': { maxW: 800, maxH: 400, fmt: 'image/webp', q: 0.9, ext: 'webp' },\n 'og-image': { maxW: 1200, maxH: 630, fmt: 'image/jpeg', q: 0.85, ext: 'jpg' },\n 'splash-portrait': { maxW: 1080, maxH: 1920, fmt: 'image/webp', q: 0.85, ext: 'webp' },\n 'splash-landscape': { maxW: 1920, maxH: 1080, fmt: 'image/webp', q: 0.85, ext: 'webp' }\n};\nvar MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB\nvar ALLOWED_TYPES = ['image/png', 'image/jpeg', 'image/webp', 'image/svg+xml'];\n\n// \u2500\u2500\u2500 Lazy-load cropperjs from CDN \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nvar __cropperLoaded = false;\nfunction loadCropperJS() {\n if (__cropperLoaded) return Promise.resolve();\n return new Promise(function(resolve, reject) {\n var link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = 'https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.6.2/cropper.min.css';\n document.head.appendChild(link);\n var script = document.createElement('script');\n script.src = 'https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.6.2/cropper.min.js';\n script.onload = function() { __cropperLoaded = true; resolve(); };\n script.onerror = function() { reject(new Error('CDN load failed')); };\n document.head.appendChild(script);\n });\n}\n\n// \u2500\u2500\u2500 Cropper state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nvar __cropper = null;\nvar __cropType = null;\n\n// \u2500\u2500\u2500 Handle file selection (entry point from branding tab) \u2500\u2500\u2500\u2500\u2500\nfunction handleLogoFile(type, input) {\n var file = input.files && input.files[0];\n input.value = ''; // reset so same file can be re-selected\n if (!file) return;\n\n // Validate file size\n if (file.size > MAX_FILE_SIZE) {\n showToast(__t('branding.fileTooLarge'), 'error');\n return;\n }\n\n // Validate file type\n if (ALLOWED_TYPES.indexOf(file.type) === -1) {\n showToast(__t('branding.invalidFormat'), 'error');\n return;\n }\n\n // SVG: skip cropper, upload directly\n if (file.type === 'image/svg+xml' || file.name.toLowerCase().endsWith('.svg')) {\n doUploadLogo(type, file);\n return;\n }\n\n // Open cropper\n openCropper(type, file);\n}\n\nfunction openCropper(type, file) {\n __cropType = type;\n\n loadCropperJS().then(function() {\n var reader = new FileReader();\n reader.onload = function(e) {\n var dialog = document.getElementById('crop-dialog');\n var img = document.getElementById('crop-image');\n if (!dialog || !img) return;\n\n img.src = e.target.result;\n\n // Destroy previous cropper instance if any\n if (__cropper) { __cropper.destroy(); __cropper = null; }\n\n dialog.showModal();\n\n // Initialize cropperjs after dialog is visible (needs layout)\n setTimeout(function() {\n var ratio = CROP_RATIOS[type];\n __cropper = new Cropper(img, {\n aspectRatio: isNaN(ratio) ? NaN : ratio,\n viewMode: 1,\n autoCrop: true,\n autoCropArea: 1,\n responsive: true,\n background: false,\n guides: true,\n center: true,\n highlight: true,\n cropBoxMovable: true,\n cropBoxResizable: true,\n toggleDragModeOnDblclick: false,\n });\n }, 100);\n };\n reader.readAsDataURL(file);\n }).catch(function(err) {\n // CDN load failed \u2014 fallback to direct upload\n console.warn('Cropper load failed:', err);\n showToast(__t('branding.cropperLoadFailed'), 'error');\n doUploadLogo(type, file);\n });\n}\n\nfunction confirmCrop() {\n if (!__cropper || !__cropType) return;\n var output = CROP_OUTPUT[__cropType] || { maxW: 512, maxH: 512, fmt: 'image/webp', q: 0.9, ext: 'webp' };\n\n // Get cropped canvas at target dimensions (resize during crop for best quality)\n var canvas = __cropper.getCroppedCanvas({\n maxWidth: output.maxW,\n maxHeight: output.maxH,\n imageSmoothingEnabled: true,\n imageSmoothingQuality: 'high',\n });\n if (!canvas) {\n showToast(__t('branding.uploadError'), 'error');\n closeCropDialog();\n return;\n }\n\n // Show uploading state in dialog\n var actions = document.querySelector('#crop-dialog .dialog-actions');\n var content = document.querySelector('#crop-dialog .crop-toolbar');\n if (actions) actions.innerHTML = '<div style=\"display:flex;align-items:center;gap:12px;width:100%;justify-content:center;\"><div class=\"crop-progress\" style=\"flex:1;max-width:200px;\"><div class=\"crop-progress-bar\"></div></div><span style=\"font-size:13px;color:var(--text-secondary);\">' + __t('common.upload') + '...</span></div>';\n if (content) content.style.opacity = '0.5';\n\n canvas.toBlob(function(blob) {\n if (!blob) {\n showToast(__t('branding.uploadError'), 'error');\n closeCropDialog();\n return;\n }\n var file = new File([blob], __cropType + '.' + output.ext, { type: output.fmt });\n doUploadLogo(__cropType, file).then(function() {\n closeCropDialog();\n }).catch(function() {\n closeCropDialog();\n });\n }, output.fmt, output.q);\n}\n\nfunction cancelCrop() {\n closeCropDialog();\n}\n\nfunction closeCropDialog() {\n var dialog = document.getElementById('crop-dialog');\n if (dialog && dialog.open) dialog.close();\n if (__cropper) { __cropper.destroy(); __cropper = null; }\n __cropType = null;\n // Restore dialog actions and toolbar to initial state\n var actions = document.querySelector('#crop-dialog .dialog-actions');\n if (actions) actions.innerHTML = '<button class=\"btn btn-secondary\" onclick=\"cancelCrop()\">' + __t('branding.cropCancel') + '</button><button class=\"btn\" onclick=\"confirmCrop()\">' + __t('branding.cropConfirm') + '</button>';\n var toolbar = document.querySelector('#crop-dialog .crop-toolbar');\n if (toolbar) toolbar.style.opacity = '';\n}\n\n// \u2500\u2500\u2500 Toolbar actions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction cropZoomIn() { if (__cropper) __cropper.zoom(0.1); }\nfunction cropZoomOut() { if (__cropper) __cropper.zoom(-0.1); }\nfunction cropRotateLeft() { if (__cropper) __cropper.rotate(-90); }\nfunction cropRotateRight() { if (__cropper) __cropper.rotate(90); }\nfunction cropFlipH() {\n if (!__cropper) return;\n var d = __cropper.getData();\n __cropper.scaleX(d.scaleX === -1 ? 1 : -1);\n}\nfunction cropFlipV() {\n if (!__cropper) return;\n var d = __cropper.getData();\n __cropper.scaleY(d.scaleY === -1 ? 1 : -1);\n}\n";
6
+ export declare const CROPPER_SCRIPT = "\n// \u2500\u2500\u2500 Crop aspect ratios per logo type \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nvar CROP_RATIOS = {\n 'square': 1, 'square-dark': 1, 'favicon': 1,\n 'rect': NaN, 'rect-dark': NaN,\n 'splash-portrait': 9/16, 'splash-landscape': 16/9,\n 'og-image': 40/21\n};\n// Target dimensions and output format per logo type.\n// 'square'/'square-dark' output PNG, not WebP (arc/did#220): they are the\n// only logo variants the og-worker Cloudflare Worker renderer embeds\n// directly into the OG card, and satori/resvg's <img> handling accepts\n// PNG/JPEG/SVG data URIs \u2014 NOT WebP. The Worker has no image-transcoding\n// library (no sharp/libwebp), so a WebP upload can never be repaired at\n// render time; producing PNG here, in the browser, at crop time is the only\n// place in this pipeline where a format conversion is actually free (canvas\n// decodes WebP natively; encoding non-WebP output is what avoids needing\n// the missing decoder later). Every other logo type still ships WebP.\nvar CROP_OUTPUT = {\n 'square': { maxW: 512, maxH: 512, fmt: 'image/png', q: 1, ext: 'png' },\n 'square-dark': { maxW: 512, maxH: 512, fmt: 'image/png', q: 1, ext: 'png' },\n 'favicon': { maxW: 128, maxH: 128, fmt: 'image/png', q: 1, ext: 'png' },\n 'rect': { maxW: 800, maxH: 400, fmt: 'image/webp', q: 0.9, ext: 'webp' },\n 'rect-dark': { maxW: 800, maxH: 400, fmt: 'image/webp', q: 0.9, ext: 'webp' },\n 'og-image': { maxW: 1200, maxH: 630, fmt: 'image/jpeg', q: 0.85, ext: 'jpg' },\n 'splash-portrait': { maxW: 1080, maxH: 1920, fmt: 'image/webp', q: 0.85, ext: 'webp' },\n 'splash-landscape': { maxW: 1920, maxH: 1080, fmt: 'image/webp', q: 0.85, ext: 'webp' }\n};\nvar MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB\nvar ALLOWED_TYPES = ['image/png', 'image/jpeg', 'image/webp', 'image/svg+xml'];\n\n// \u2500\u2500\u2500 Lazy-load cropperjs from CDN \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nvar __cropperLoaded = false;\nfunction loadCropperJS() {\n if (__cropperLoaded) return Promise.resolve();\n return new Promise(function(resolve, reject) {\n var link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = 'https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.6.2/cropper.min.css';\n document.head.appendChild(link);\n var script = document.createElement('script');\n script.src = 'https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.6.2/cropper.min.js';\n script.onload = function() { __cropperLoaded = true; resolve(); };\n script.onerror = function() { reject(new Error('CDN load failed')); };\n document.head.appendChild(script);\n });\n}\n\n// \u2500\u2500\u2500 Cropper state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nvar __cropper = null;\nvar __cropType = null;\n\n// \u2500\u2500\u2500 Handle file selection (entry point from branding tab) \u2500\u2500\u2500\u2500\u2500\nfunction handleLogoFile(type, input) {\n var file = input.files && input.files[0];\n input.value = ''; // reset so same file can be re-selected\n if (!file) return;\n\n // Validate file size\n if (file.size > MAX_FILE_SIZE) {\n showToast(__t('branding.fileTooLarge'), 'error');\n return;\n }\n\n // Validate file type\n if (ALLOWED_TYPES.indexOf(file.type) === -1) {\n showToast(__t('branding.invalidFormat'), 'error');\n return;\n }\n\n // SVG: skip cropper, upload directly\n if (file.type === 'image/svg+xml' || file.name.toLowerCase().endsWith('.svg')) {\n doUploadLogo(type, file);\n return;\n }\n\n // Open cropper\n openCropper(type, file);\n}\n\nfunction openCropper(type, file) {\n __cropType = type;\n\n loadCropperJS().then(function() {\n var reader = new FileReader();\n reader.onload = function(e) {\n var dialog = document.getElementById('crop-dialog');\n var img = document.getElementById('crop-image');\n if (!dialog || !img) return;\n\n img.src = e.target.result;\n\n // Destroy previous cropper instance if any\n if (__cropper) { __cropper.destroy(); __cropper = null; }\n\n dialog.showModal();\n\n // Initialize cropperjs after dialog is visible (needs layout)\n setTimeout(function() {\n var ratio = CROP_RATIOS[type];\n __cropper = new Cropper(img, {\n aspectRatio: isNaN(ratio) ? NaN : ratio,\n viewMode: 1,\n autoCrop: true,\n autoCropArea: 1,\n responsive: true,\n background: false,\n guides: true,\n center: true,\n highlight: true,\n cropBoxMovable: true,\n cropBoxResizable: true,\n toggleDragModeOnDblclick: false,\n });\n }, 100);\n };\n reader.readAsDataURL(file);\n }).catch(function(err) {\n // CDN load failed \u2014 fallback to direct upload\n console.warn('Cropper load failed:', err);\n showToast(__t('branding.cropperLoadFailed'), 'error');\n doUploadLogo(type, file);\n });\n}\n\nfunction confirmCrop() {\n if (!__cropper || !__cropType) return;\n var output = CROP_OUTPUT[__cropType] || { maxW: 512, maxH: 512, fmt: 'image/webp', q: 0.9, ext: 'webp' };\n\n // Get cropped canvas at target dimensions (resize during crop for best quality)\n var canvas = __cropper.getCroppedCanvas({\n maxWidth: output.maxW,\n maxHeight: output.maxH,\n imageSmoothingEnabled: true,\n imageSmoothingQuality: 'high',\n });\n if (!canvas) {\n showToast(__t('branding.uploadError'), 'error');\n closeCropDialog();\n return;\n }\n\n // Show uploading state in dialog\n var actions = document.querySelector('#crop-dialog .dialog-actions');\n var content = document.querySelector('#crop-dialog .crop-toolbar');\n if (actions) actions.innerHTML = '<div style=\"display:flex;align-items:center;gap:12px;width:100%;justify-content:center;\"><div class=\"crop-progress\" style=\"flex:1;max-width:200px;\"><div class=\"crop-progress-bar\"></div></div><span style=\"font-size:13px;color:var(--text-secondary);\">' + __t('common.upload') + '...</span></div>';\n if (content) content.style.opacity = '0.5';\n\n canvas.toBlob(function(blob) {\n if (!blob) {\n showToast(__t('branding.uploadError'), 'error');\n closeCropDialog();\n return;\n }\n var file = new File([blob], __cropType + '.' + output.ext, { type: output.fmt });\n doUploadLogo(__cropType, file).then(function() {\n closeCropDialog();\n }).catch(function() {\n closeCropDialog();\n });\n }, output.fmt, output.q);\n}\n\nfunction cancelCrop() {\n closeCropDialog();\n}\n\nfunction closeCropDialog() {\n var dialog = document.getElementById('crop-dialog');\n if (dialog && dialog.open) dialog.close();\n if (__cropper) { __cropper.destroy(); __cropper = null; }\n __cropType = null;\n // Restore dialog actions and toolbar to initial state\n var actions = document.querySelector('#crop-dialog .dialog-actions');\n if (actions) actions.innerHTML = '<button class=\"btn btn-secondary\" onclick=\"cancelCrop()\">' + __t('branding.cropCancel') + '</button><button class=\"btn\" onclick=\"confirmCrop()\">' + __t('branding.cropConfirm') + '</button>';\n var toolbar = document.querySelector('#crop-dialog .crop-toolbar');\n if (toolbar) toolbar.style.opacity = '';\n}\n\n// \u2500\u2500\u2500 Toolbar actions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction cropZoomIn() { if (__cropper) __cropper.zoom(0.1); }\nfunction cropZoomOut() { if (__cropper) __cropper.zoom(-0.1); }\nfunction cropRotateLeft() { if (__cropper) __cropper.rotate(-90); }\nfunction cropRotateRight() { if (__cropper) __cropper.rotate(90); }\nfunction cropFlipH() {\n if (!__cropper) return;\n var d = __cropper.getData();\n __cropper.scaleX(d.scaleX === -1 ? 1 : -1);\n}\nfunction cropFlipV() {\n if (!__cropper) return;\n var d = __cropper.getData();\n __cropper.scaleY(d.scaleY === -1 ? 1 : -1);\n}\n";
7
7
  export declare function cropDialogHTML(t: (key: string) => string): string;
8
8
  //# sourceMappingURL=cropper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cropper.d.ts","sourceRoot":"","sources":["../../../../src/pages/admin/scripts/cropper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,eAAO,MAAM,cAAc,swPAyL1B,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAsBjE"}
1
+ {"version":3,"file":"cropper.d.ts","sourceRoot":"","sources":["../../../../src/pages/admin/scripts/cropper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,eAAO,MAAM,cAAc,46QAkM1B,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAsBjE"}
@@ -18,10 +18,19 @@ var CROP_RATIOS = {
18
18
  'splash-portrait': 9/16, 'splash-landscape': 16/9,
19
19
  'og-image': 40/21
20
20
  };
21
- // Target dimensions and output format per logo type
21
+ // Target dimensions and output format per logo type.
22
+ // 'square'/'square-dark' output PNG, not WebP (arc/did#220): they are the
23
+ // only logo variants the og-worker Cloudflare Worker renderer embeds
24
+ // directly into the OG card, and satori/resvg's <img> handling accepts
25
+ // PNG/JPEG/SVG data URIs — NOT WebP. The Worker has no image-transcoding
26
+ // library (no sharp/libwebp), so a WebP upload can never be repaired at
27
+ // render time; producing PNG here, in the browser, at crop time is the only
28
+ // place in this pipeline where a format conversion is actually free (canvas
29
+ // decodes WebP natively; encoding non-WebP output is what avoids needing
30
+ // the missing decoder later). Every other logo type still ships WebP.
22
31
  var CROP_OUTPUT = {
23
- 'square': { maxW: 512, maxH: 512, fmt: 'image/webp', q: 0.9, ext: 'webp' },
24
- 'square-dark': { maxW: 512, maxH: 512, fmt: 'image/webp', q: 0.9, ext: 'webp' },
32
+ 'square': { maxW: 512, maxH: 512, fmt: 'image/png', q: 1, ext: 'png' },
33
+ 'square-dark': { maxW: 512, maxH: 512, fmt: 'image/png', q: 1, ext: 'png' },
25
34
  'favicon': { maxW: 128, maxH: 128, fmt: 'image/png', q: 1, ext: 'png' },
26
35
  'rect': { maxW: 800, maxH: 400, fmt: 'image/webp', q: 0.9, ext: 'webp' },
27
36
  'rect-dark': { maxW: 800, maxH: 400, fmt: 'image/webp', q: 0.9, ext: 'webp' },
@@ -1 +1 @@
1
- {"version":3,"file":"cropper.js","sourceRoot":"","sources":["../../../../src/pages/admin/scripts/cropper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2CAA2C;AAC3C,MAAM,YAAY,GAAG,4OAA4O,CAAC;AAClQ,MAAM,aAAa,GAAG,sMAAsM,CAAC;AAC7N,MAAM,gBAAgB,GAAG,mKAAmK,CAAC;AAC7L,MAAM,iBAAiB,GAAG,wKAAwK,CAAC;AACnM,MAAM,WAAW,GAAG,iMAAiM,CAAC;AACtN,MAAM,WAAW,GAAG,iMAAiM,CAAC;AAEtN,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyLtC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,CAA0B;IACvD,OAAO,UAAU,CAAC;;;sCAGkB,CAAC,CAAC,oBAAoB,CAAC;;;;;2FAK8B,YAAY;6FACV,aAAa;mGACP,gBAAgB;qGACd,iBAAiB;kGACpB,WAAW;gGACb,WAAW;;;;+DAI5C,CAAC,CAAC,qBAAqB,CAAC;kDACrC,CAAC,CAAC,sBAAsB,CAAC;;UAEjE,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"cropper.js","sourceRoot":"","sources":["../../../../src/pages/admin/scripts/cropper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2CAA2C;AAC3C,MAAM,YAAY,GAAG,4OAA4O,CAAC;AAClQ,MAAM,aAAa,GAAG,sMAAsM,CAAC;AAC7N,MAAM,gBAAgB,GAAG,mKAAmK,CAAC;AAC7L,MAAM,iBAAiB,GAAG,wKAAwK,CAAC;AACnM,MAAM,WAAW,GAAG,iMAAiM,CAAC;AACtN,MAAM,WAAW,GAAG,iMAAiM,CAAC;AAEtN,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkMtC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,CAA0B;IACvD,OAAO,UAAU,CAAC;;;sCAGkB,CAAC,CAAC,oBAAoB,CAAC;;;;;2FAK8B,YAAY;6FACV,aAAa;mGACP,gBAAgB;qGACd,iBAAiB;kGACpB,WAAW;gGACb,WAAW;;;;+DAI5C,CAAC,CAAC,qBAAqB,CAAC;kDACrC,CAAC,CAAC,sBAAsB,CAAC;;UAEjE,CAAC;AACX,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcblock/did-connect-service",
3
- "version": "4.1.30",
3
+ "version": "4.1.32",
4
4
  "description": "Multi-runtime authentication service framework — Passkey, DID Connect, OAuth, Email, Team, RBAC",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -61,8 +61,8 @@
61
61
  "sharp": "^0.35.4",
62
62
  "ufo": "^1.6.4",
63
63
  "valibot": "^1.4.2",
64
- "@arcblock/did-connect-core": "^4.1.30",
65
- "@arcblock/did-connect-js": "^4.1.30"
64
+ "@arcblock/did-connect-js": "^4.1.32",
65
+ "@arcblock/did-connect-core": "^4.1.32"
66
66
  },
67
67
  "optionalDependencies": {
68
68
  "@aigne/afs": "^1.11.0-beta.13"
@@ -72,6 +72,7 @@
72
72
  "@types/better-sqlite3": "^7.6.13",
73
73
  "better-sqlite3": "^12.8.0",
74
74
  "esbuild": "^0.28.1",
75
+ "miniflare": "^4.20260317.0",
75
76
  "ultrahtml": "^1.6.0",
76
77
  "vitest": "^4.1.11"
77
78
  },