@ez4/local-storage 0.40.0 → 0.41.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/main.cjs +29 -25
- package/dist/main.mjs +27 -22
- package/dist/service/tester.d.ts +1 -0
- package/dist/test.cjs +16 -15
- package/dist/test.mjs +15 -15
- package/package.json +7 -6
package/dist/main.cjs
CHANGED
|
@@ -1,26 +1,30 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof
|
|
3
|
-
|
|
4
|
-
y=require("@ez4/project/library"),g=require("@ez4/logger");var f=
|
|
5
|
-
|
|
6
|
-
(0,d.existsSync)(
|
|
7
|
-
|
|
8
|
-
uploaded.`)}async read(r){let
|
|
9
|
-
debug(`\u2B07\uFE0F File ${r} downloaded.`),
|
|
10
|
-
o,r);await(0,
|
|
11
|
-
return Promise.resolve(`http://${
|
|
12
|
-
return Promise.resolve(`http://${
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
1
|
+
"use strict";var l=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var s=(t,e)=>l(t,"name",{value:e,configurable:!0});var F=(t,e)=>{for(var i in e)l(t,i,{get:e[i],enumerable:!0})},$=(t,e,i,o)=>{if(e&&
|
|
2
|
+
typeof e=="object"||typeof e=="function")for(let r of P(e))!b.call(t,r)&&r!==i&&
|
|
3
|
+
l(t,r,{get:()=>e[r],enumerable:!(o=C(e,r))||o.enumerable});return t};var z=t=>$(l({},"__esModule",{value:!0}),t);var q={};F(q,{registerTriggers:()=>B});module.exports=z(q);var u=require("@ez4/storage/library"),v=require("@ez4/project/library");var w=require("@ez4/project/library");var c=require("node:fs/promises"),m=require("node:path"),d=require("node:fs"),p=require("@ez4/utils"),
|
|
4
|
+
y=require("@ez4/project/library"),g=require("@ez4/logger"),S=require("file-type");var f=s((t,e)=>{let i=(0,y.getServiceName)(t,e),o=(0,m.join)(".ez4",(0,p.toKebabCase)(
|
|
5
|
+
t));return new class{async exists(r){let n=(0,m.join)(o,r);return Promise.resolve(
|
|
6
|
+
(0,d.existsSync)(n))}async write(r,n){let a=(0,m.join)(o,r);await(0,c.mkdir)((0,m.dirname)(
|
|
7
|
+
a),{recursive:!0}),await(0,c.writeFile)(a,n),g.Logger.debug(`\u2B06\uFE0F File ${r}\
|
|
8
|
+
uploaded.`)}async read(r){let n=(0,m.join)(o,r),a=await(0,c.readFile)(n);return g.Logger.
|
|
9
|
+
debug(`\u2B07\uFE0F File ${r} downloaded.`),a}async delete(r){let n=(0,m.join)(
|
|
10
|
+
o,r);await(0,c.unlink)(n),g.Logger.debug(`\u2139\uFE0F File ${r} deleted.`)}async getWriteUrl(r,n){
|
|
11
|
+
return Promise.resolve(`http://${e.serviceHost}/${i}/${r}`)}async getReadUrl(r,n){
|
|
12
|
+
return Promise.resolve(`http://${e.serviceHost}/${i}/${r}`)}async getStatsUrl(r,n){
|
|
13
|
+
return Promise.resolve(`http://${e.serviceHost}/${i}/${r}`)}async getStats(r){let n=(0,m.join)(
|
|
14
|
+
o,r);try{let a=await(0,S.fileTypeFromFile)(n),E=await(0,c.stat)(n);return{type:a?.
|
|
15
|
+
mime??"application/octet-stream",size:E.size}}catch(a){if(!(0,p.isAnyObject)(a)||
|
|
16
|
+
a.code!=="ENOENT")throw a;return}}}},"createServiceClient");var h=s((t,e)=>{let i=f(t.name,e);return{type:"Storage",name:t.name,identifier:(0,w.getServiceName)(
|
|
17
|
+
t.name,e),exportHandler:s(()=>f(t.name,e),"exportHandler"),requestHandler:s(o=>O(
|
|
18
|
+
i,o),"requestHandler")}},"registerBucketEmulator"),O=s(async(t,e)=>{let{method:i,
|
|
19
|
+
path:o,body:r}=e;if(!o||o==="/")throw new Error("File path wasn't given.");switch(i){case"\
|
|
20
|
+
GET":return R(t,o);case"PUT":{if(!r)throw new Error("File content wasn't given.");
|
|
21
|
+
return T(t,o,r)}case"HEAD":return x(t,o);default:throw new Error("Unsupported st\
|
|
22
|
+
orage request.")}},"handleRequest"),R=s(async(t,e)=>{let[i,o]=await Promise.all(
|
|
23
|
+
[t.read(e),t.getStats(e)]);return{status:200,body:i,headers:{"content-type":o?.type??
|
|
24
|
+
"application/octet-stream"}}},"loadFile"),T=s(async(t,e,i)=>(await t.write(e,i),
|
|
25
|
+
{status:204}),"storeFile"),x=s(async(t,e)=>{let i=await t.getStats(e);return{status:200,
|
|
26
|
+
headers:{"content-type":i?.type??"application/octet-stream","content-length":i?.
|
|
27
|
+
size.toString()??"0"}}},"headFile");var B=s(()=>{(0,u.registerTriggers)(),(0,v.tryCreateTrigger)("@ez4/local-storage",
|
|
28
|
+
{"emulator:getServices":s(({service:t,options:e})=>(0,u.isBucketService)(t)?h(t,
|
|
29
|
+
e):null,"emulator:getServices")})},"registerTriggers");0&&(module.exports={registerTriggers});
|
|
26
30
|
//# sourceMappingURL=main.cjs.map
|
package/dist/main.mjs
CHANGED
|
@@ -1,23 +1,28 @@
|
|
|
1
|
-
var u=Object.defineProperty;var
|
|
2
|
-
tryCreateTrigger as B}from"@ez4/project/library";import{getServiceName as
|
|
3
|
-
import{dirname as
|
|
4
|
-
import{isAnyObject as E,toKebabCase as
|
|
5
|
-
import{Logger as
|
|
6
|
-
|
|
7
|
-
await
|
|
8
|
-
|
|
9
|
-
let
|
|
10
|
-
return Promise.resolve(`http://${
|
|
11
|
-
return Promise.resolve(`http://${
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return
|
|
21
|
-
|
|
22
|
-
e)
|
|
1
|
+
var u=Object.defineProperty;var s=(t,e)=>u(t,"name",{value:e,configurable:!0});import{isBucketService as T,registerTriggers as x}from"@ez4/storage/library";import{
|
|
2
|
+
tryCreateTrigger as B}from"@ez4/project/library";import{getServiceName as F}from"@ez4/project/library";import{mkdir as f,readFile as d,stat as y,unlink as S,writeFile as w}from"node:fs/promises";
|
|
3
|
+
import{dirname as h,join as c}from"node:path";import{existsSync as v}from"node:fs";
|
|
4
|
+
import{isAnyObject as E,toKebabCase as C}from"@ez4/utils";import{getServiceName as P}from"@ez4/project/library";
|
|
5
|
+
import{Logger as m}from"@ez4/logger";import{fileTypeFromFile as b}from"file-type";var l=s((t,e)=>{let o=P(t,e),i=c(".ez4",C(t));return new class{async exists(r){let n=c(
|
|
6
|
+
i,r);return Promise.resolve(v(n))}async write(r,n){let a=c(i,r);await f(h(a),{recursive:!0}),
|
|
7
|
+
await w(a,n),m.debug(`\u2B06\uFE0F File ${r} uploaded.`)}async read(r){let n=c(
|
|
8
|
+
i,r),a=await d(n);return m.debug(`\u2B07\uFE0F File ${r} downloaded.`),a}async delete(r){
|
|
9
|
+
let n=c(i,r);await S(n),m.debug(`\u2139\uFE0F File ${r} deleted.`)}async getWriteUrl(r,n){
|
|
10
|
+
return Promise.resolve(`http://${e.serviceHost}/${o}/${r}`)}async getReadUrl(r,n){
|
|
11
|
+
return Promise.resolve(`http://${e.serviceHost}/${o}/${r}`)}async getStatsUrl(r,n){
|
|
12
|
+
return Promise.resolve(`http://${e.serviceHost}/${o}/${r}`)}async getStats(r){let n=c(
|
|
13
|
+
i,r);try{let a=await b(n),p=await y(n);return{type:a?.mime??"application/octet-s\
|
|
14
|
+
tream",size:p.size}}catch(a){if(!E(a)||a.code!=="ENOENT")throw a;return}}}},"cre\
|
|
15
|
+
ateServiceClient");var g=s((t,e)=>{let o=l(t.name,e);return{type:"Storage",name:t.name,identifier:F(
|
|
16
|
+
t.name,e),exportHandler:s(()=>l(t.name,e),"exportHandler"),requestHandler:s(i=>$(
|
|
17
|
+
o,i),"requestHandler")}},"registerBucketEmulator"),$=s(async(t,e)=>{let{method:o,
|
|
18
|
+
path:i,body:r}=e;if(!i||i==="/")throw new Error("File path wasn't given.");switch(o){case"\
|
|
19
|
+
GET":return z(t,i);case"PUT":{if(!r)throw new Error("File content wasn't given.");
|
|
20
|
+
return O(t,i,r)}case"HEAD":return R(t,i);default:throw new Error("Unsupported st\
|
|
21
|
+
orage request.")}},"handleRequest"),z=s(async(t,e)=>{let[o,i]=await Promise.all(
|
|
22
|
+
[t.read(e),t.getStats(e)]);return{status:200,body:o,headers:{"content-type":i?.type??
|
|
23
|
+
"application/octet-stream"}}},"loadFile"),O=s(async(t,e,o)=>(await t.write(e,o),
|
|
24
|
+
{status:204}),"storeFile"),R=s(async(t,e)=>{let o=await t.getStats(e);return{status:200,
|
|
25
|
+
headers:{"content-type":o?.type??"application/octet-stream","content-length":o?.
|
|
26
|
+
size.toString()??"0"}}},"headFile");var X=s(()=>{x(),B("@ez4/local-storage",{"emulator:getServices":s(({service:t,options:e})=>T(
|
|
27
|
+
t)?g(t,e):null,"emulator:getServices")})},"registerTriggers");export{X as registerTriggers};
|
|
23
28
|
//# sourceMappingURL=main.mjs.map
|
package/dist/service/tester.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export declare namespace BucketTester {
|
|
|
10
10
|
delete: Mock<Client['delete']>;
|
|
11
11
|
getWriteUrl: Mock<Client['getWriteUrl']>;
|
|
12
12
|
getReadUrl: Mock<Client['getReadUrl']>;
|
|
13
|
+
getStatsUrl: Mock<Client['getStatsUrl']>;
|
|
13
14
|
getStats: Mock<Client['getStats']>;
|
|
14
15
|
};
|
|
15
16
|
const getClient: (resourceName: string) => Client;
|
package/dist/test.cjs
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof r=="object"||typeof r=="function")for(let e of
|
|
3
|
-
|
|
4
|
-
let t=o[e]??r?.default;return Promise.resolve(!!t)}async write(e,t){return
|
|
5
|
-
debug(`\u2B06\uFE0F File ${e} uploaded.`),t instanceof
|
|
1
|
+
"use strict";var a=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var l=(i,r)=>a(i,"name",{value:r,configurable:!0});var k=(i,r)=>{for(var n in r)a(i,n,{get:r[n],enumerable:!0})},h=(i,r,n,o)=>{if(r&&
|
|
2
|
+
typeof r=="object"||typeof r=="function")for(let e of M(r))!y.call(i,e)&&e!==n&&
|
|
3
|
+
a(i,e,{get:()=>r[e],enumerable:!(o=C(r,e))||o.enumerable});return i};var S=i=>h(a({},"__esModule",{value:!0}),i);var x={};k(x,{BucketTester:()=>u});module.exports=S(x);var f=require("@ez4/project/library"),s=require("node:test");var c=require("node:stream"),g=require("@ez4/utils"),m=require("@ez4/logger"),d=require("file-type");var p=l((i,r)=>{let n=(0,g.toKebabCase)(i),o=r?.keys??{};return new class{async exists(e){
|
|
4
|
+
let t=o[e]??r?.default;return Promise.resolve(!!t)}async write(e,t){return m.Logger.
|
|
5
|
+
debug(`\u2B06\uFE0F File ${e} uploaded.`),t instanceof c.Readable?o[e]=t.read():
|
|
6
6
|
o[e]=Buffer.from(t),Promise.resolve()}async read(e){let t=o[e]??r?.default;if(!t)
|
|
7
|
-
throw new Error(`Key ${e} not found.`);return
|
|
7
|
+
throw new Error(`Key ${e} not found.`);return m.Logger.debug(`\u2B07\uFE0F File ${e}\
|
|
8
8
|
downloaded.`),Promise.resolve(Buffer.from(t))}async delete(e){if(!o[e]){if(!r?.
|
|
9
|
-
default)throw new Error(`Key ${e} not found.`);return Promise.resolve()}return
|
|
10
|
-
debug(`\u2139\uFE0F File ${e} deleted.`),delete o[e],Promise.resolve()}async getWriteUrl(e){
|
|
11
|
-
return Promise.resolve(`http://${
|
|
12
|
-
`http://${
|
|
13
|
-
|
|
14
|
-
byteLength}
|
|
15
|
-
l(
|
|
9
|
+
default)throw new Error(`Key ${e} not found.`);return Promise.resolve()}return m.Logger.
|
|
10
|
+
debug(`\u2139\uFE0F File ${e} deleted.`),delete o[e],Promise.resolve()}async getWriteUrl(e,t){
|
|
11
|
+
return Promise.resolve(`http://${n}/${e}`)}async getReadUrl(e,t){return Promise.
|
|
12
|
+
resolve(`http://${n}/${e}`)}async getStatsUrl(e,t){return Promise.resolve(`http:\
|
|
13
|
+
//${n}/${e}`)}async getStats(e){let t=o[e]??r?.default;return t?{type:(await(0,d.fileTypeFromBuffer)(
|
|
14
|
+
t))?.mime??"application/octet-stream",size:t.byteLength}:void 0}}},"createClient\
|
|
15
|
+
Mock");var u;(n=>(n.getClient=l(o=>f.Tester.getServiceClient(o),"getClient"),n.getClientMock=
|
|
16
|
+
l((o,e)=>{let t=p(o,e);return s.mock.method(t,"exists"),s.mock.method(t,"write"),
|
|
16
17
|
s.mock.method(t,"read"),s.mock.method(t,"delete"),s.mock.method(t,"getWriteUrl"),
|
|
17
|
-
s.mock.method(t,"getReadUrl"),s.mock.method(t,"
|
|
18
|
-
|
|
18
|
+
s.mock.method(t,"getReadUrl"),s.mock.method(t,"getStatsUrl"),s.mock.method(t,"ge\
|
|
19
|
+
tStats"),t},"getClientMock")))(u||={});0&&(module.exports={BucketTester});
|
|
19
20
|
//# sourceMappingURL=test.cjs.map
|
package/dist/test.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
var
|
|
2
|
-
import{Logger as
|
|
3
|
-
o?.default;return Promise.resolve(!!
|
|
4
|
-
${
|
|
5
|
-
let
|
|
6
|
-
`\u2B07\uFE0F File ${
|
|
7
|
-
if(!r[
|
|
8
|
-
return
|
|
9
|
-
return Promise.resolve(`http://${
|
|
10
|
-
`http://${
|
|
11
|
-
`
|
|
12
|
-
byteLength}
|
|
13
|
-
(r,
|
|
14
|
-
"read"),
|
|
15
|
-
|
|
1
|
+
var c=Object.defineProperty;var s=(l,o)=>c(l,"name",{value:o,configurable:!0});import{Tester as f}from"@ez4/project/library";import{mock as i}from"node:test";import{Readable as g}from"node:stream";import{toKebabCase as d}from"@ez4/utils";
|
|
2
|
+
import{Logger as a}from"@ez4/logger";import{fileTypeFromBuffer as p}from"file-type";var m=s((l,o)=>{let n=d(l),r=o?.keys??{};return new class{async exists(t){let e=r[t]??
|
|
3
|
+
o?.default;return Promise.resolve(!!e)}async write(t,e){return a.debug(`\u2B06\uFE0F File\
|
|
4
|
+
${t} uploaded.`),e instanceof g?r[t]=e.read():r[t]=Buffer.from(e),Promise.resolve()}async read(t){
|
|
5
|
+
let e=r[t]??o?.default;if(!e)throw new Error(`Key ${t} not found.`);return a.debug(
|
|
6
|
+
`\u2B07\uFE0F File ${t} downloaded.`),Promise.resolve(Buffer.from(e))}async delete(t){
|
|
7
|
+
if(!r[t]){if(!o?.default)throw new Error(`Key ${t} not found.`);return Promise.resolve()}
|
|
8
|
+
return a.debug(`\u2139\uFE0F File ${t} deleted.`),delete r[t],Promise.resolve()}async getWriteUrl(t,e){
|
|
9
|
+
return Promise.resolve(`http://${n}/${t}`)}async getReadUrl(t,e){return Promise.
|
|
10
|
+
resolve(`http://${n}/${t}`)}async getStatsUrl(t,e){return Promise.resolve(`http:\
|
|
11
|
+
//${n}/${t}`)}async getStats(t){let e=r[t]??o?.default;return e?{type:(await p(e))?.
|
|
12
|
+
mime??"application/octet-stream",size:e.byteLength}:void 0}}},"createClientMock");var u;(n=>(n.getClient=s(r=>f.getServiceClient(r),"getClient"),n.getClientMock=s(
|
|
13
|
+
(r,t)=>{let e=m(r,t);return i.method(e,"exists"),i.method(e,"write"),i.method(e,
|
|
14
|
+
"read"),i.method(e,"delete"),i.method(e,"getWriteUrl"),i.method(e,"getReadUrl"),
|
|
15
|
+
i.method(e,"getStatsUrl"),i.method(e,"getStats"),e},"getClientMock")))(u||={});export{u as BucketTester};
|
|
16
16
|
//# sourceMappingURL=test.mjs.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ez4/local-storage",
|
|
3
3
|
"description": "EZ4: Local storage emulator",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.41.1",
|
|
5
5
|
"author": "Silas B.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -43,10 +43,11 @@
|
|
|
43
43
|
"live:publish": "npm run build && npm publish --access public"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@ez4/
|
|
47
|
-
"@ez4/
|
|
48
|
-
"@ez4/project": "^0.
|
|
49
|
-
"@ez4/storage": "^0.
|
|
50
|
-
"@ez4/utils": "^0.
|
|
46
|
+
"@ez4/local-common": "^0.41.0",
|
|
47
|
+
"@ez4/logger": "^0.41.0",
|
|
48
|
+
"@ez4/project": "^0.41.0",
|
|
49
|
+
"@ez4/storage": "^0.41.1",
|
|
50
|
+
"@ez4/utils": "^0.41.0",
|
|
51
|
+
"file-type": "^21.3.0"
|
|
51
52
|
}
|
|
52
53
|
}
|