@walkeros/server-store-s3 3.0.0-next-1773136823705 → 3.0.0

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/README.md CHANGED
@@ -10,7 +10,7 @@ MinIO, and any S3-compatible provider. Uses
10
10
 
11
11
  ```json
12
12
  {
13
- "version": 1,
13
+ "version": 3,
14
14
  "flows": {
15
15
  "default": {
16
16
  "server": {},
package/dist/dev.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _walkeros_core_dev from '@walkeros/core/dev';
2
2
  import { z } from '@walkeros/core/dev';
3
- import { Store } from '@walkeros/core';
3
+ import { Flow, Store } from '@walkeros/core';
4
4
 
5
5
  declare const SettingsSchema: z.ZodObject<{
6
6
  bucket: z.ZodString;
@@ -21,6 +21,17 @@ declare namespace index$1 {
21
21
  export { type index$1_Settings as Settings, index$1_SettingsSchema as SettingsSchema, index$1_settings as settings };
22
22
  }
23
23
 
24
+ /** Read an object from an AWS S3 bucket. */
25
+ declare const readAwsS3: Flow.StepExample;
26
+ /** Key is scoped to the configured prefix subdirectory. */
27
+ declare const prefixScoping: Flow.StepExample;
28
+
29
+ declare const step_prefixScoping: typeof prefixScoping;
30
+ declare const step_readAwsS3: typeof readAwsS3;
31
+ declare namespace step {
32
+ export { step_prefixScoping as prefixScoping, step_readAwsS3 as readAwsS3 };
33
+ }
34
+
24
35
  /** AWS S3 bucket for serving static files */
25
36
  declare const awsAssets: Store.Config;
26
37
  /** Cloudflare R2 bucket — no egress fees */
@@ -28,8 +39,9 @@ declare const r2Bucket: Store.Config;
28
39
 
29
40
  declare const index_awsAssets: typeof awsAssets;
30
41
  declare const index_r2Bucket: typeof r2Bucket;
42
+ declare const index_step: typeof step;
31
43
  declare namespace index {
32
- export { index_awsAssets as awsAssets, index_r2Bucket as r2Bucket };
44
+ export { index_awsAssets as awsAssets, index_r2Bucket as r2Bucket, index_step as step };
33
45
  }
34
46
 
35
47
  export { index as examples, index$1 as schemas };
package/dist/dev.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _walkeros_core_dev from '@walkeros/core/dev';
2
2
  import { z } from '@walkeros/core/dev';
3
- import { Store } from '@walkeros/core';
3
+ import { Flow, Store } from '@walkeros/core';
4
4
 
5
5
  declare const SettingsSchema: z.ZodObject<{
6
6
  bucket: z.ZodString;
@@ -21,6 +21,17 @@ declare namespace index$1 {
21
21
  export { type index$1_Settings as Settings, index$1_SettingsSchema as SettingsSchema, index$1_settings as settings };
22
22
  }
23
23
 
24
+ /** Read an object from an AWS S3 bucket. */
25
+ declare const readAwsS3: Flow.StepExample;
26
+ /** Key is scoped to the configured prefix subdirectory. */
27
+ declare const prefixScoping: Flow.StepExample;
28
+
29
+ declare const step_prefixScoping: typeof prefixScoping;
30
+ declare const step_readAwsS3: typeof readAwsS3;
31
+ declare namespace step {
32
+ export { step_prefixScoping as prefixScoping, step_readAwsS3 as readAwsS3 };
33
+ }
34
+
24
35
  /** AWS S3 bucket for serving static files */
25
36
  declare const awsAssets: Store.Config;
26
37
  /** Cloudflare R2 bucket — no egress fees */
@@ -28,8 +39,9 @@ declare const r2Bucket: Store.Config;
28
39
 
29
40
  declare const index_awsAssets: typeof awsAssets;
30
41
  declare const index_r2Bucket: typeof r2Bucket;
42
+ declare const index_step: typeof step;
31
43
  declare namespace index {
32
- export { index_awsAssets as awsAssets, index_r2Bucket as r2Bucket };
44
+ export { index_awsAssets as awsAssets, index_r2Bucket as r2Bucket, index_step as step };
33
45
  }
34
46
 
35
47
  export { index as examples, index$1 as schemas };
package/dist/dev.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e,s=Object.defineProperty,t=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,n=(e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:!0})},o={};n(o,{examples:()=>b,schemas:()=>i}),module.exports=(e=o,((e,n,o,i)=>{if(n&&"object"==typeof n||"function"==typeof n)for(let a of r(n))c.call(e,a)||a===o||s(e,a,{get:()=>n[a],enumerable:!(i=t(n,a))||i.enumerable});return e})(s({},"__esModule",{value:!0}),e));var i={};n(i,{SettingsSchema:()=>u,settings:()=>d});var a=require("@walkeros/core/dev"),p=require("@walkeros/core/dev"),u=p.z.object({bucket:p.z.string().min(1).describe("S3 bucket name"),endpoint:p.z.string().url().describe("S3-compatible endpoint URL (like https://s3.eu-west-1.amazonaws.com)"),accessKeyId:p.z.string().min(1).describe("S3 access key ID"),secretAccessKey:p.z.string().min(1).describe("S3 secret access key"),region:p.z.string().default("auto").describe("AWS region for SigV4 signing"),prefix:p.z.string().optional().describe("Key prefix prepended to all store keys for scoping")}),d=(0,a.zodToSchema)(u),b={};n(b,{awsAssets:()=>g,r2Bucket:()=>l});var g={settings:{bucket:"my-assets",endpoint:"https://s3.eu-west-1.amazonaws.com",accessKeyId:"$env.S3_ACCESS_KEY",secretAccessKey:"$env.S3_SECRET_KEY",region:"eu-west-1",prefix:"public"}},l={settings:{bucket:"my-bucket",endpoint:"https://ACCOUNT_ID.r2.cloudflarestorage.com",accessKeyId:"$env.R2_ACCESS_KEY",secretAccessKey:"$env.R2_SECRET_KEY"}};//# sourceMappingURL=dev.js.map
1
+ "use strict";var e,s=Object.defineProperty,t=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,i=(e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:!0})},o={};i(o,{examples:()=>b,schemas:()=>n}),module.exports=(e=o,((e,i,o,n)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let a of r(i))c.call(e,a)||a===o||s(e,a,{get:()=>i[a],enumerable:!(n=t(i,a))||n.enumerable});return e})(s({},"__esModule",{value:!0}),e));var n={};i(n,{SettingsSchema:()=>u,settings:()=>l});var a=require("@walkeros/core/dev"),p=require("@walkeros/core/dev"),u=p.z.object({bucket:p.z.string().min(1).describe("S3 bucket name"),endpoint:p.z.string().url().describe("S3-compatible endpoint URL (like https://s3.eu-west-1.amazonaws.com)"),accessKeyId:p.z.string().min(1).describe("S3 access key ID"),secretAccessKey:p.z.string().min(1).describe("S3 secret access key"),region:p.z.string().default("auto").describe("AWS region for SigV4 signing"),prefix:p.z.string().optional().describe("Key prefix prepended to all store keys for scoping")}),l=(0,a.zodToSchema)(u),b={};i(b,{awsAssets:()=>m,r2Bucket:()=>y,step:()=>d});var d={};i(d,{prefixScoping:()=>g,readAwsS3:()=>f});var f={description:"Read object from S3 and receive its contents as a Buffer",in:{operation:"get",key:"walker.js"},out:{value:"Buffer<(function(){...})()>"}},g={description:'Key "walker.js" with prefix "public/" resolves to S3 path "public/walker.js"',in:{operation:"get",key:"walker.js",settings:{bucket:"my-assets",prefix:"public"}},out:{s3Path:"public/walker.js",value:"Buffer<...>"}},m={settings:{bucket:"my-assets",endpoint:"https://s3.eu-west-1.amazonaws.com",accessKeyId:"$env.S3_ACCESS_KEY",secretAccessKey:"$env.S3_SECRET_KEY",region:"eu-west-1",prefix:"public"}},y={settings:{bucket:"my-bucket",endpoint:"https://ACCOUNT_ID.r2.cloudflarestorage.com",accessKeyId:"$env.R2_ACCESS_KEY",secretAccessKey:"$env.R2_SECRET_KEY"}};//# sourceMappingURL=dev.js.map
package/dist/dev.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dev.ts","../src/schemas/index.ts","../src/schemas/settings.ts","../src/examples/index.ts"],"sourcesContent":["export * as schemas from './schemas';\nexport * as examples from './examples';\n","import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\n\nexport { SettingsSchema, type Settings } from './settings';\n\nexport const settings = zodToSchema(SettingsSchema);\n","import { z } from '@walkeros/core/dev';\n\nexport const SettingsSchema = z.object({\n bucket: z.string().min(1).describe('S3 bucket name'),\n endpoint: z\n .string()\n .url()\n .describe(\n 'S3-compatible endpoint URL (like https://s3.eu-west-1.amazonaws.com)',\n ),\n accessKeyId: z.string().min(1).describe('S3 access key ID'),\n secretAccessKey: z.string().min(1).describe('S3 secret access key'),\n region: z.string().default('auto').describe('AWS region for SigV4 signing'),\n prefix: z\n .string()\n .optional()\n .describe('Key prefix prepended to all store keys for scoping'),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import type { Store } from '@walkeros/core';\n\n/** AWS S3 bucket for serving static files */\nexport const awsAssets: Store.Config = {\n settings: {\n bucket: 'my-assets',\n endpoint: 'https://s3.eu-west-1.amazonaws.com',\n accessKeyId: '$env.S3_ACCESS_KEY',\n secretAccessKey: '$env.S3_SECRET_KEY',\n region: 'eu-west-1',\n prefix: 'public',\n },\n};\n\n/** Cloudflare R2 bucket — no egress fees */\nexport const r2Bucket: Store.Config = {\n settings: {\n bucket: 'my-bucket',\n endpoint: 'https://ACCOUNT_ID.r2.cloudflarestorage.com',\n accessKeyId: '$env.R2_ACCESS_KEY',\n secretAccessKey: '$env.R2_SECRET_KEY',\n },\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,cAA4B;;;ACA5B,iBAAkB;AAEX,IAAM,iBAAiB,aAAE,OAAO;AAAA,EACrC,QAAQ,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,gBAAgB;AAAA,EACnD,UAAU,aACP,OAAO,EACP,IAAI,EACJ;AAAA,IACC;AAAA,EACF;AAAA,EACF,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,kBAAkB;AAAA,EAC1D,iBAAiB,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,sBAAsB;AAAA,EAClE,QAAQ,aAAE,OAAO,EAAE,QAAQ,MAAM,EAAE,SAAS,8BAA8B;AAAA,EAC1E,QAAQ,aACL,OAAO,EACP,SAAS,EACT,SAAS,oDAAoD;AAClE,CAAC;;;ADZM,IAAM,eAAW,yBAAY,cAAc;;;AELlD;AAAA;AAAA;AAAA;AAAA;AAGO,IAAM,YAA0B;AAAA,EACrC,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAGO,IAAM,WAAyB;AAAA,EACpC,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,EACnB;AACF;","names":["import_dev"]}
1
+ {"version":3,"sources":["../src/dev.ts","../src/schemas/index.ts","../src/schemas/settings.ts","../src/examples/index.ts","../src/examples/step.ts"],"sourcesContent":["export * as schemas from './schemas';\nexport * as examples from './examples';\n","import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\n\nexport { SettingsSchema, type Settings } from './settings';\n\nexport const settings = zodToSchema(SettingsSchema);\n","import { z } from '@walkeros/core/dev';\n\nexport const SettingsSchema = z.object({\n bucket: z.string().min(1).describe('S3 bucket name'),\n endpoint: z\n .string()\n .url()\n .describe(\n 'S3-compatible endpoint URL (like https://s3.eu-west-1.amazonaws.com)',\n ),\n accessKeyId: z.string().min(1).describe('S3 access key ID'),\n secretAccessKey: z.string().min(1).describe('S3 secret access key'),\n region: z.string().default('auto').describe('AWS region for SigV4 signing'),\n prefix: z\n .string()\n .optional()\n .describe('Key prefix prepended to all store keys for scoping'),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import type { Store } from '@walkeros/core';\n\n/** AWS S3 bucket for serving static files */\nexport const awsAssets: Store.Config = {\n settings: {\n bucket: 'my-assets',\n endpoint: 'https://s3.eu-west-1.amazonaws.com',\n accessKeyId: '$env.S3_ACCESS_KEY',\n secretAccessKey: '$env.S3_SECRET_KEY',\n region: 'eu-west-1',\n prefix: 'public',\n },\n};\n\n/** Cloudflare R2 bucket — no egress fees */\nexport const r2Bucket: Store.Config = {\n settings: {\n bucket: 'my-bucket',\n endpoint: 'https://ACCOUNT_ID.r2.cloudflarestorage.com',\n accessKeyId: '$env.R2_ACCESS_KEY',\n secretAccessKey: '$env.R2_SECRET_KEY',\n },\n};\n\nexport * as step from './step';\n","import type { Flow } from '@walkeros/core';\n\n/** Read an object from an AWS S3 bucket. */\nexport const readAwsS3: Flow.StepExample = {\n description: 'Read object from S3 and receive its contents as a Buffer',\n in: { operation: 'get', key: 'walker.js' },\n out: { value: 'Buffer<(function(){...})()>' },\n};\n\n/** Key is scoped to the configured prefix subdirectory. */\nexport const prefixScoping: Flow.StepExample = {\n description:\n 'Key \"walker.js\" with prefix \"public/\" resolves to S3 path \"public/walker.js\"',\n in: {\n operation: 'get',\n key: 'walker.js',\n settings: { bucket: 'my-assets', prefix: 'public' },\n },\n out: { s3Path: 'public/walker.js', value: 'Buffer<...>' },\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,cAA4B;;;ACA5B,iBAAkB;AAEX,IAAM,iBAAiB,aAAE,OAAO;AAAA,EACrC,QAAQ,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,gBAAgB;AAAA,EACnD,UAAU,aACP,OAAO,EACP,IAAI,EACJ;AAAA,IACC;AAAA,EACF;AAAA,EACF,aAAa,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,kBAAkB;AAAA,EAC1D,iBAAiB,aAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,sBAAsB;AAAA,EAClE,QAAQ,aAAE,OAAO,EAAE,QAAQ,MAAM,EAAE,SAAS,8BAA8B;AAAA,EAC1E,QAAQ,aACL,OAAO,EACP,SAAS,EACT,SAAS,oDAAoD;AAClE,CAAC;;;ADZM,IAAM,eAAW,yBAAY,cAAc;;;AELlD;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAGO,IAAM,YAA8B;AAAA,EACzC,aAAa;AAAA,EACb,IAAI,EAAE,WAAW,OAAO,KAAK,YAAY;AAAA,EACzC,KAAK,EAAE,OAAO,8BAA8B;AAC9C;AAGO,IAAM,gBAAkC;AAAA,EAC7C,aACE;AAAA,EACF,IAAI;AAAA,IACF,WAAW;AAAA,IACX,KAAK;AAAA,IACL,UAAU,EAAE,QAAQ,aAAa,QAAQ,SAAS;AAAA,EACpD;AAAA,EACA,KAAK,EAAE,QAAQ,oBAAoB,OAAO,cAAc;AAC1D;;;ADhBO,IAAM,YAA0B;AAAA,EACrC,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAGO,IAAM,WAAyB;AAAA,EACpC,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,EACnB;AACF;","names":["import_dev"]}
package/dist/dev.mjs CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,s=(s,t)=>{for(var r in t)e(s,r,{get:t[r],enumerable:!0})},t={};s(t,{SettingsSchema:()=>i,settings:()=>n});import{zodToSchema as r}from"@walkeros/core/dev";import{z as c}from"@walkeros/core/dev";var i=c.object({bucket:c.string().min(1).describe("S3 bucket name"),endpoint:c.string().url().describe("S3-compatible endpoint URL (like https://s3.eu-west-1.amazonaws.com)"),accessKeyId:c.string().min(1).describe("S3 access key ID"),secretAccessKey:c.string().min(1).describe("S3 secret access key"),region:c.string().default("auto").describe("AWS region for SigV4 signing"),prefix:c.string().optional().describe("Key prefix prepended to all store keys for scoping")}),n=r(i),o={};s(o,{awsAssets:()=>a,r2Bucket:()=>p});var a={settings:{bucket:"my-assets",endpoint:"https://s3.eu-west-1.amazonaws.com",accessKeyId:"$env.S3_ACCESS_KEY",secretAccessKey:"$env.S3_SECRET_KEY",region:"eu-west-1",prefix:"public"}},p={settings:{bucket:"my-bucket",endpoint:"https://ACCOUNT_ID.r2.cloudflarestorage.com",accessKeyId:"$env.R2_ACCESS_KEY",secretAccessKey:"$env.R2_SECRET_KEY"}};export{o as examples,t as schemas};//# sourceMappingURL=dev.mjs.map
1
+ var e=Object.defineProperty,s=(s,t)=>{for(var r in t)e(s,r,{get:t[r],enumerable:!0})},t={};s(t,{SettingsSchema:()=>c,settings:()=>n});import{zodToSchema as r}from"@walkeros/core/dev";import{z as i}from"@walkeros/core/dev";var c=i.object({bucket:i.string().min(1).describe("S3 bucket name"),endpoint:i.string().url().describe("S3-compatible endpoint URL (like https://s3.eu-west-1.amazonaws.com)"),accessKeyId:i.string().min(1).describe("S3 access key ID"),secretAccessKey:i.string().min(1).describe("S3 secret access key"),region:i.string().default("auto").describe("AWS region for SigV4 signing"),prefix:i.string().optional().describe("Key prefix prepended to all store keys for scoping")}),n=r(c),a={};s(a,{awsAssets:()=>l,r2Bucket:()=>d,step:()=>o});var o={};s(o,{prefixScoping:()=>u,readAwsS3:()=>p});var p={description:"Read object from S3 and receive its contents as a Buffer",in:{operation:"get",key:"walker.js"},out:{value:"Buffer<(function(){...})()>"}},u={description:'Key "walker.js" with prefix "public/" resolves to S3 path "public/walker.js"',in:{operation:"get",key:"walker.js",settings:{bucket:"my-assets",prefix:"public"}},out:{s3Path:"public/walker.js",value:"Buffer<...>"}},l={settings:{bucket:"my-assets",endpoint:"https://s3.eu-west-1.amazonaws.com",accessKeyId:"$env.S3_ACCESS_KEY",secretAccessKey:"$env.S3_SECRET_KEY",region:"eu-west-1",prefix:"public"}},d={settings:{bucket:"my-bucket",endpoint:"https://ACCOUNT_ID.r2.cloudflarestorage.com",accessKeyId:"$env.R2_ACCESS_KEY",secretAccessKey:"$env.R2_SECRET_KEY"}};export{a as examples,t as schemas};//# sourceMappingURL=dev.mjs.map
package/dist/dev.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schemas/index.ts","../src/schemas/settings.ts","../src/examples/index.ts"],"sourcesContent":["import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\n\nexport { SettingsSchema, type Settings } from './settings';\n\nexport const settings = zodToSchema(SettingsSchema);\n","import { z } from '@walkeros/core/dev';\n\nexport const SettingsSchema = z.object({\n bucket: z.string().min(1).describe('S3 bucket name'),\n endpoint: z\n .string()\n .url()\n .describe(\n 'S3-compatible endpoint URL (like https://s3.eu-west-1.amazonaws.com)',\n ),\n accessKeyId: z.string().min(1).describe('S3 access key ID'),\n secretAccessKey: z.string().min(1).describe('S3 secret access key'),\n region: z.string().default('auto').describe('AWS region for SigV4 signing'),\n prefix: z\n .string()\n .optional()\n .describe('Key prefix prepended to all store keys for scoping'),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import type { Store } from '@walkeros/core';\n\n/** AWS S3 bucket for serving static files */\nexport const awsAssets: Store.Config = {\n settings: {\n bucket: 'my-assets',\n endpoint: 'https://s3.eu-west-1.amazonaws.com',\n accessKeyId: '$env.S3_ACCESS_KEY',\n secretAccessKey: '$env.S3_SECRET_KEY',\n region: 'eu-west-1',\n prefix: 'public',\n },\n};\n\n/** Cloudflare R2 bucket — no egress fees */\nexport const r2Bucket: Store.Config = {\n settings: {\n bucket: 'my-bucket',\n endpoint: 'https://ACCOUNT_ID.r2.cloudflarestorage.com',\n accessKeyId: '$env.R2_ACCESS_KEY',\n secretAccessKey: '$env.R2_SECRET_KEY',\n },\n};\n"],"mappings":";;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,mBAAmB;;;ACA5B,SAAS,SAAS;AAEX,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,gBAAgB;AAAA,EACnD,UAAU,EACP,OAAO,EACP,IAAI,EACJ;AAAA,IACC;AAAA,EACF;AAAA,EACF,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,kBAAkB;AAAA,EAC1D,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,sBAAsB;AAAA,EAClE,QAAQ,EAAE,OAAO,EAAE,QAAQ,MAAM,EAAE,SAAS,8BAA8B;AAAA,EAC1E,QAAQ,EACL,OAAO,EACP,SAAS,EACT,SAAS,oDAAoD;AAClE,CAAC;;;ADZM,IAAM,WAAW,YAAY,cAAc;;;AELlD;AAAA;AAAA;AAAA;AAAA;AAGO,IAAM,YAA0B;AAAA,EACrC,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAGO,IAAM,WAAyB;AAAA,EACpC,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,EACnB;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/schemas/index.ts","../src/schemas/settings.ts","../src/examples/index.ts","../src/examples/step.ts"],"sourcesContent":["import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\n\nexport { SettingsSchema, type Settings } from './settings';\n\nexport const settings = zodToSchema(SettingsSchema);\n","import { z } from '@walkeros/core/dev';\n\nexport const SettingsSchema = z.object({\n bucket: z.string().min(1).describe('S3 bucket name'),\n endpoint: z\n .string()\n .url()\n .describe(\n 'S3-compatible endpoint URL (like https://s3.eu-west-1.amazonaws.com)',\n ),\n accessKeyId: z.string().min(1).describe('S3 access key ID'),\n secretAccessKey: z.string().min(1).describe('S3 secret access key'),\n region: z.string().default('auto').describe('AWS region for SigV4 signing'),\n prefix: z\n .string()\n .optional()\n .describe('Key prefix prepended to all store keys for scoping'),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import type { Store } from '@walkeros/core';\n\n/** AWS S3 bucket for serving static files */\nexport const awsAssets: Store.Config = {\n settings: {\n bucket: 'my-assets',\n endpoint: 'https://s3.eu-west-1.amazonaws.com',\n accessKeyId: '$env.S3_ACCESS_KEY',\n secretAccessKey: '$env.S3_SECRET_KEY',\n region: 'eu-west-1',\n prefix: 'public',\n },\n};\n\n/** Cloudflare R2 bucket — no egress fees */\nexport const r2Bucket: Store.Config = {\n settings: {\n bucket: 'my-bucket',\n endpoint: 'https://ACCOUNT_ID.r2.cloudflarestorage.com',\n accessKeyId: '$env.R2_ACCESS_KEY',\n secretAccessKey: '$env.R2_SECRET_KEY',\n },\n};\n\nexport * as step from './step';\n","import type { Flow } from '@walkeros/core';\n\n/** Read an object from an AWS S3 bucket. */\nexport const readAwsS3: Flow.StepExample = {\n description: 'Read object from S3 and receive its contents as a Buffer',\n in: { operation: 'get', key: 'walker.js' },\n out: { value: 'Buffer<(function(){...})()>' },\n};\n\n/** Key is scoped to the configured prefix subdirectory. */\nexport const prefixScoping: Flow.StepExample = {\n description:\n 'Key \"walker.js\" with prefix \"public/\" resolves to S3 path \"public/walker.js\"',\n in: {\n operation: 'get',\n key: 'walker.js',\n settings: { bucket: 'my-assets', prefix: 'public' },\n },\n out: { s3Path: 'public/walker.js', value: 'Buffer<...>' },\n};\n"],"mappings":";;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,mBAAmB;;;ACA5B,SAAS,SAAS;AAEX,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,gBAAgB;AAAA,EACnD,UAAU,EACP,OAAO,EACP,IAAI,EACJ;AAAA,IACC;AAAA,EACF;AAAA,EACF,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,kBAAkB;AAAA,EAC1D,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,sBAAsB;AAAA,EAClE,QAAQ,EAAE,OAAO,EAAE,QAAQ,MAAM,EAAE,SAAS,8BAA8B;AAAA,EAC1E,QAAQ,EACL,OAAO,EACP,SAAS,EACT,SAAS,oDAAoD;AAClE,CAAC;;;ADZM,IAAM,WAAW,YAAY,cAAc;;;AELlD;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAGO,IAAM,YAA8B;AAAA,EACzC,aAAa;AAAA,EACb,IAAI,EAAE,WAAW,OAAO,KAAK,YAAY;AAAA,EACzC,KAAK,EAAE,OAAO,8BAA8B;AAC9C;AAGO,IAAM,gBAAkC;AAAA,EAC7C,aACE;AAAA,EACF,IAAI;AAAA,IACF,WAAW;AAAA,IACX,KAAK;AAAA,IACL,UAAU,EAAE,QAAQ,aAAa,QAAQ,SAAS;AAAA,EACpD;AAAA,EACA,KAAK,EAAE,QAAQ,oBAAoB,OAAO,cAAc;AAC1D;;;ADhBO,IAAM,YAA0B;AAAA,EACrC,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAGO,IAAM,WAAyB;AAAA,EACpC,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,EACnB;AACF;","names":[]}
@@ -3,7 +3,9 @@
3
3
  "package": "@walkeros/server-store-s3",
4
4
  "version": "2.1.0",
5
5
  "type": "store",
6
- "platform": "server"
6
+ "platform": "server",
7
+ "docs": "https://www.walkeros.io/docs/stores/server/s3",
8
+ "source": "https://github.com/elbwalker/walkerOS/tree/main/packages/server/stores/s3/src"
7
9
  },
8
10
  "schemas": {
9
11
  "settings": {
@@ -68,6 +70,33 @@
68
70
  "accessKeyId": "$env.R2_ACCESS_KEY",
69
71
  "secretAccessKey": "$env.R2_SECRET_KEY"
70
72
  }
73
+ },
74
+ "step": {
75
+ "prefixScoping": {
76
+ "description": "Key \"walker.js\" with prefix \"public/\" resolves to S3 path \"public/walker.js\"",
77
+ "in": {
78
+ "operation": "get",
79
+ "key": "walker.js",
80
+ "settings": {
81
+ "bucket": "my-assets",
82
+ "prefix": "public"
83
+ }
84
+ },
85
+ "out": {
86
+ "s3Path": "public/walker.js",
87
+ "value": "Buffer<...>"
88
+ }
89
+ },
90
+ "readAwsS3": {
91
+ "description": "Read object from S3 and receive its contents as a Buffer",
92
+ "in": {
93
+ "operation": "get",
94
+ "key": "walker.js"
95
+ },
96
+ "out": {
97
+ "value": "Buffer<(function(){...})()>"
98
+ }
99
+ }
71
100
  }
72
101
  }
73
102
  }
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "@walkeros/server-store-s3",
3
3
  "description": "S3-compatible object storage for walkerOS server flows",
4
- "version": "3.0.0-next-1773136823705",
4
+ "version": "3.0.0",
5
5
  "license": "MIT",
6
- "sideEffects": false,
7
6
  "main": "./dist/index.js",
8
7
  "module": "./dist/index.mjs",
9
8
  "types": "./dist/index.d.ts",
@@ -35,10 +34,10 @@
35
34
  "s3mini": "^0.9.1"
36
35
  },
37
36
  "peerDependencies": {
38
- "@walkeros/core": "2.2.0-next-1773136823705"
37
+ "@walkeros/core": "^3.0.0"
39
38
  },
40
39
  "devDependencies": {
41
- "@walkeros/core": "2.2.0-next-1773136823705"
40
+ "@walkeros/core": "^3.0.0"
42
41
  },
43
42
  "repository": {
44
43
  "url": "git+https://github.com/elbwalker/walkerOS.git",
@@ -51,7 +50,8 @@
51
50
  },
52
51
  "walkerOS": {
53
52
  "type": "store",
54
- "platform": "server"
53
+ "platform": "server",
54
+ "docs": "https://www.walkeros.io/docs/stores/server/s3"
55
55
  },
56
56
  "keywords": [
57
57
  "walkerOS",