@_linked/s3 1.2.2 → 1.3.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/CHANGELOG.md +27 -0
- package/lib/esm/shapes/S3Bucket.d.ts +24 -3
- package/lib/esm/shapes/S3Bucket.js +25 -23
- package/lib/esm/shapes/S3Bucket.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# @\_linked/s3
|
|
2
2
|
|
|
3
|
+
## 1.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#21](https://github.com/linked-fw/s3/pull/21) [`b5c6464`](https://github.com/linked-fw/s3/commit/b5c6464b0c93b09161f8c476aaf9e480eb4a45a3) Thanks [@flyon](https://github.com/flyon)! - `S3Bucket` no longer extends `Shape`, and drops `@linkedShape` with its
|
|
8
|
+
`static targetClass`.
|
|
9
|
+
|
|
10
|
+
Completes what `S3FileStore` started. The class used nothing from `Shape`: no
|
|
11
|
+
`this.id`, no `this.uri`, no `nodeShape`, no Shape statics, no property
|
|
12
|
+
decorators. `label` is its own field. The only inherited behaviour was a
|
|
13
|
+
`super()` call that deliberately passed `undefined` for the string form — doing
|
|
14
|
+
nothing — and both construction sites pass a string.
|
|
15
|
+
|
|
16
|
+
**One observable change, unlike the earlier store migrations.** Those three never
|
|
17
|
+
carried `@linkedShape`, so removing `extends Shape` was inert. This one does, and
|
|
18
|
+
`linkedShape` is typed `<T extends typeof Shape>`, so the decorator has to go too.
|
|
19
|
+
That means S3Bucket's auto-minted NodeShape disappears from `getAllShapeClasses()`,
|
|
20
|
+
and therefore from `indexShapesIntoMemory` and from `syncShapes` materialization.
|
|
21
|
+
Since `syncShapes` prunes orphans, a dataset that already holds that NodeShape
|
|
22
|
+
will have it removed on the next sync.
|
|
23
|
+
|
|
24
|
+
That shape was propertyless, and `s3:Bucket` has no RDF definition in this
|
|
25
|
+
package's ontology data (`src/data/s3.json` defines only the scaffold's
|
|
26
|
+
`s3:ExampleClass`), so nothing described it and no reader of it was found. Bumped
|
|
27
|
+
`minor` rather than `patch` because it is a registration change, not purely
|
|
28
|
+
internal.
|
|
29
|
+
|
|
3
30
|
## 1.2.2
|
|
4
31
|
|
|
5
32
|
### Patch Changes
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeleteObjectCommandInput, HeadObjectCommandOutput, S3Client } from '@aws-sdk/client-s3';
|
|
2
2
|
import { PutObjectCommandInput, PutObjectCommandOutput } from '@aws-sdk/client-s3/dist-types/commands/PutObjectCommand';
|
|
3
3
|
import { StreamingBlobPayloadInputTypes } from '@smithy/types';
|
|
4
|
-
import { Shape } from '@_linked/core/shapes/Shape';
|
|
5
4
|
export interface S3ClientConfigInput {
|
|
6
5
|
endpoint?: string;
|
|
7
6
|
accessKeyId?: string;
|
|
@@ -19,11 +18,33 @@ export declare const createS3Client: (config?: S3ClientConfigInput) => S3Client;
|
|
|
19
18
|
* per-instance clients by passing config into S3Bucket/S3FileStore.
|
|
20
19
|
*/
|
|
21
20
|
export declare const s3Client: S3Client;
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
/**
|
|
22
|
+
* A bucket is not a Shape.
|
|
23
|
+
*
|
|
24
|
+
* This class used to `extends Shape` and carry `@linkedShape` with
|
|
25
|
+
* `static targetClass = s3.Bucket`, but used nothing from `Shape`: no `this.id`,
|
|
26
|
+
* no `this.uri`, no `nodeShape`, no Shape statics, no property decorators.
|
|
27
|
+
* `label` is its own field. The only inherited behaviour was a `super()` call
|
|
28
|
+
* that deliberately passed `undefined` for the string form — i.e. did nothing at
|
|
29
|
+
* all — and both construction sites pass a string.
|
|
30
|
+
*
|
|
31
|
+
* Dropping `extends Shape` forces dropping the decorator with it, since
|
|
32
|
+
* `linkedShape` is typed `<T extends typeof Shape>`. That removes S3Bucket's
|
|
33
|
+
* auto-minted NodeShape from the shape index, which is the one observable
|
|
34
|
+
* change — see the changeset. The shape was propertyless and `s3:Bucket` has no
|
|
35
|
+
* RDF definition in this package's ontology data, so nothing described it.
|
|
36
|
+
*
|
|
37
|
+
* Follows `S3FileStore`, `LocalFileStore` and `FusekiStore`, and core `0e8c86e`
|
|
38
|
+
* ("datasets are not shapes").
|
|
39
|
+
*/
|
|
40
|
+
export declare class S3Bucket {
|
|
24
41
|
protected _client: S3Client;
|
|
25
42
|
label: string;
|
|
26
43
|
private ensureKeyPromise;
|
|
44
|
+
/**
|
|
45
|
+
* `n` names the bucket. The `{id}` form is still accepted so existing callers
|
|
46
|
+
* keep compiling, but it is no longer stored as a node id — nothing read it.
|
|
47
|
+
*/
|
|
27
48
|
constructor(n?: string | {
|
|
28
49
|
id: string;
|
|
29
50
|
}, clientConfig?: S3ClientConfigInput);
|
|
@@ -1,16 +1,4 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
1
|
import { CopyObjectCommand, CreateBucketCommand, DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, ListObjectsCommand, PutObjectCommand, S3Client, } from '@aws-sdk/client-s3';
|
|
11
|
-
import { Shape } from '@_linked/core/shapes/Shape';
|
|
12
|
-
import { s3 } from '../ontologies/s3.js';
|
|
13
|
-
import { linkedShape } from '../package.js';
|
|
14
2
|
export const endpoint = process.env.S3_BUCKET_ENDPOINT;
|
|
15
3
|
/**
|
|
16
4
|
* Builds an S3 client from explicit config, falling back to legacy env vars.
|
|
@@ -33,11 +21,31 @@ export const createS3Client = (config = {}) => {
|
|
|
33
21
|
* per-instance clients by passing config into S3Bucket/S3FileStore.
|
|
34
22
|
*/
|
|
35
23
|
export const s3Client = createS3Client();
|
|
36
|
-
|
|
24
|
+
/**
|
|
25
|
+
* A bucket is not a Shape.
|
|
26
|
+
*
|
|
27
|
+
* This class used to `extends Shape` and carry `@linkedShape` with
|
|
28
|
+
* `static targetClass = s3.Bucket`, but used nothing from `Shape`: no `this.id`,
|
|
29
|
+
* no `this.uri`, no `nodeShape`, no Shape statics, no property decorators.
|
|
30
|
+
* `label` is its own field. The only inherited behaviour was a `super()` call
|
|
31
|
+
* that deliberately passed `undefined` for the string form — i.e. did nothing at
|
|
32
|
+
* all — and both construction sites pass a string.
|
|
33
|
+
*
|
|
34
|
+
* Dropping `extends Shape` forces dropping the decorator with it, since
|
|
35
|
+
* `linkedShape` is typed `<T extends typeof Shape>`. That removes S3Bucket's
|
|
36
|
+
* auto-minted NodeShape from the shape index, which is the one observable
|
|
37
|
+
* change — see the changeset. The shape was propertyless and `s3:Bucket` has no
|
|
38
|
+
* RDF definition in this package's ontology data, so nothing described it.
|
|
39
|
+
*
|
|
40
|
+
* Follows `S3FileStore`, `LocalFileStore` and `FusekiStore`, and core `0e8c86e`
|
|
41
|
+
* ("datasets are not shapes").
|
|
42
|
+
*/
|
|
43
|
+
export class S3Bucket {
|
|
44
|
+
/**
|
|
45
|
+
* `n` names the bucket. The `{id}` form is still accepted so existing callers
|
|
46
|
+
* keep compiling, but it is no longer stored as a node id — nothing read it.
|
|
47
|
+
*/
|
|
37
48
|
constructor(n, clientConfig) {
|
|
38
|
-
// `undefined`, not `null`: Shape only skips assigning an id for undefined,
|
|
39
|
-
// and would read `.id` off null otherwise.
|
|
40
|
-
super(typeof n === 'string' ? undefined : n);
|
|
41
49
|
this.ensureKeyPromise = new Map();
|
|
42
50
|
if (typeof n === 'string') {
|
|
43
51
|
this.label = n;
|
|
@@ -268,11 +276,5 @@ let S3Bucket = class S3Bucket extends Shape {
|
|
|
268
276
|
console.log('Could not create bucket: ', err);
|
|
269
277
|
}
|
|
270
278
|
}
|
|
271
|
-
}
|
|
272
|
-
S3Bucket.targetClass = s3.Bucket;
|
|
273
|
-
S3Bucket = __decorate([
|
|
274
|
-
linkedShape,
|
|
275
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
276
|
-
], S3Bucket);
|
|
277
|
-
export { S3Bucket };
|
|
279
|
+
}
|
|
278
280
|
//# sourceMappingURL=S3Bucket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S3Bucket.js","sourceRoot":"","sources":["../../../src/shapes/S3Bucket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"S3Bucket.js","sourceRoot":"","sources":["../../../src/shapes/S3Bucket.ts"],"names":[],"mappings":"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"}
|