@ocfl/ocfl 0.4.0 → 1.0.0-beta.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/LICENSE +674 -0
- package/README.md +24 -9
- package/dist/constants.d.ts +15 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +14 -0
- package/dist/constants.js.map +1 -0
- package/dist/digest.d.ts +58 -0
- package/dist/digest.d.ts.map +1 -0
- package/dist/digest.js +204 -0
- package/dist/digest.js.map +1 -0
- package/dist/error.d.ts +5 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +9 -0
- package/dist/error.js.map +1 -0
- package/dist/extension.d.ts +83 -0
- package/dist/extension.d.ts.map +1 -0
- package/dist/extension.js +170 -0
- package/dist/extension.js.map +1 -0
- package/dist/extensions/0002-flat-direct-storage-layout.d.ts +12 -0
- package/dist/extensions/0002-flat-direct-storage-layout.d.ts.map +1 -0
- package/dist/extensions/0002-flat-direct-storage-layout.js +34 -0
- package/dist/extensions/0002-flat-direct-storage-layout.js.map +1 -0
- package/dist/extensions/0003-hash-and-id-n-tuple-storage-layout.d.ts +15 -0
- package/dist/extensions/0003-hash-and-id-n-tuple-storage-layout.d.ts.map +1 -0
- package/dist/extensions/0003-hash-and-id-n-tuple-storage-layout.js +49 -0
- package/dist/extensions/0003-hash-and-id-n-tuple-storage-layout.js.map +1 -0
- package/dist/extensions/0004-hashed-n-tuple-storage-layout.d.ts +17 -0
- package/dist/extensions/0004-hashed-n-tuple-storage-layout.d.ts.map +1 -0
- package/dist/extensions/0004-hashed-n-tuple-storage-layout.js +54 -0
- package/dist/extensions/0004-hashed-n-tuple-storage-layout.js.map +1 -0
- package/dist/extensions/0006-flat-omit-prefix-storage-layout.d.ts +6 -0
- package/dist/extensions/0006-flat-omit-prefix-storage-layout.d.ts.map +1 -0
- package/dist/extensions/0006-flat-omit-prefix-storage-layout.js +8 -0
- package/dist/extensions/0006-flat-omit-prefix-storage-layout.js.map +1 -0
- package/dist/extensions/0007-n-tuple-omit-prefix-storage-layout.d.ts +6 -0
- package/dist/extensions/0007-n-tuple-omit-prefix-storage-layout.d.ts.map +1 -0
- package/dist/extensions/0007-n-tuple-omit-prefix-storage-layout.js +8 -0
- package/dist/extensions/0007-n-tuple-omit-prefix-storage-layout.js.map +1 -0
- package/dist/extensions/0009-digest-algorithms.d.ts +9 -0
- package/dist/extensions/0009-digest-algorithms.d.ts.map +1 -0
- package/dist/extensions/0009-digest-algorithms.js +11 -0
- package/dist/extensions/0009-digest-algorithms.js.map +1 -0
- package/dist/extensions/000N-path-direct-storage-layout.d.ts +16 -0
- package/dist/extensions/000N-path-direct-storage-layout.d.ts.map +1 -0
- package/dist/extensions/000N-path-direct-storage-layout.js +46 -0
- package/dist/extensions/000N-path-direct-storage-layout.js.map +1 -0
- package/dist/extensions/index.d.ts +23 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +8 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/file.d.ts +87 -0
- package/dist/file.d.ts.map +1 -0
- package/dist/file.js +118 -0
- package/dist/file.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/inventory.d.ts +155 -0
- package/dist/inventory.d.ts.map +1 -0
- package/dist/inventory.js +591 -0
- package/dist/inventory.js.map +1 -0
- package/dist/object.d.ts +188 -0
- package/dist/object.d.ts.map +1 -0
- package/dist/object.js +425 -0
- package/dist/object.js.map +1 -0
- package/dist/storage.d.ts +94 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +302 -0
- package/dist/storage.js.map +1 -0
- package/dist/store.d.ts +100 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +157 -0
- package/dist/store.js.map +1 -0
- package/dist/transaction.d.ts +155 -0
- package/dist/transaction.d.ts.map +1 -0
- package/dist/transaction.js +395 -0
- package/dist/transaction.js.map +1 -0
- package/dist/types.d.ts +107 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +24 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +85 -0
- package/dist/utils.js.map +1 -0
- package/dist/validation.d.ts +32 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +31 -0
- package/dist/validation.js.map +1 -0
- package/package.json +31 -51
- package/src/constants.ts +16 -0
- package/src/digest.ts +258 -0
- package/src/error.ts +9 -0
- package/src/extension.ts +206 -0
- package/{lib/extensions/0002-flat-direct-storage-layout.js → src/extensions/0002-flat-direct-storage-layout.ts} +15 -22
- package/src/extensions/0003-hash-and-id-n-tuple-storage-layout.ts +56 -0
- package/src/extensions/0004-hashed-n-tuple-storage-layout.ts +59 -0
- package/src/extensions/0006-flat-omit-prefix-storage-layout.ts +9 -0
- package/src/extensions/0007-n-tuple-omit-prefix-storage-layout.ts +9 -0
- package/src/extensions/0009-digest-algorithms.ts +12 -0
- package/src/extensions/000N-path-direct-storage-layout.ts +51 -0
- package/src/extensions/index.ts +24 -0
- package/src/file.ts +161 -0
- package/src/index.ts +92 -0
- package/src/inventory.ts +634 -0
- package/src/object.ts +473 -0
- package/src/storage.ts +342 -0
- package/src/store.ts +199 -0
- package/src/transaction.ts +456 -0
- package/{lib/types.d.ts → src/types.ts} +28 -74
- package/src/utils.ts +94 -0
- package/src/validation.ts +46 -0
- package/index.js +0 -129
- package/index.mjs +0 -18
- package/lib/constants.js +0 -24
- package/lib/digest.js +0 -307
- package/lib/enum.js +0 -90
- package/lib/error.js +0 -19
- package/lib/extension.js +0 -194
- package/lib/extensions/0003-hash-and-id-n-tuple-storage-layout.js +0 -60
- package/lib/extensions/0004-hashed-n-tuple-storage-layout.js +0 -63
- package/lib/extensions/0005-mutable-head.js +0 -0
- package/lib/extensions/0006-flat-omit-prefix-storage-layout.js +0 -7
- package/lib/extensions/0007-n-tuple-omit-prefix-storage-layout.js +0 -7
- package/lib/extensions/0008-schema-registry.js +0 -0
- package/lib/extensions/0009-digest-algorithms.js +0 -18
- package/lib/extensions/000N-path-direct-storage-layout.js +0 -61
- package/lib/extensions/index.js +0 -13
- package/lib/file.js +0 -147
- package/lib/index.js +0 -13
- package/lib/inventory.js +0 -564
- package/lib/object.js +0 -499
- package/lib/storage.js +0 -338
- package/lib/store.js +0 -191
- package/lib/transaction.js +0 -448
- package/lib/utils.js +0 -122
- package/lib/validation.js +0 -174
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ocfl
|
|
3
|
+
*/
|
|
4
|
+
import { OcflStorageLayout } from './extension.ts';
|
|
5
|
+
import * as extensions from './extensions/index.ts';
|
|
6
|
+
import { OcflObject } from './object.ts';
|
|
7
|
+
import { type OcflStorage } from './storage.ts';
|
|
8
|
+
import type { OcflStore } from './store.ts';
|
|
9
|
+
import type { OcflExtensionConfig, OcflObjectConfig, OcflStorageConfig } from './types.ts';
|
|
10
|
+
export { OcflConstants } from './constants.ts';
|
|
11
|
+
export { OcflDigest } from './digest.ts';
|
|
12
|
+
export { OcflExtension, OcflStorageLayout } from './extension.ts';
|
|
13
|
+
export type { PathDirectStorageLayoutConfig } from './extensions/000N-path-direct-storage-layout.ts';
|
|
14
|
+
export type { HashedNTupleStorageLayoutConfig } from './extensions/0004-hashed-n-tuple-storage-layout.ts';
|
|
15
|
+
export type { StorageLayout } from './extensions/index.ts';
|
|
16
|
+
export type { FileRef, FileStat, OcflObjectFile } from './file.ts';
|
|
17
|
+
export type { InventoryFile, OcflObjectInventoryMut, VersionNumber } from './inventory.ts';
|
|
18
|
+
export { OcflObjectInventory } from './inventory.ts';
|
|
19
|
+
export type { UpdateMode } from './object.ts';
|
|
20
|
+
export { OcflObject } from './object.ts';
|
|
21
|
+
export { OcflStorage, OcflStorageImpl } from './storage.ts';
|
|
22
|
+
export type { ListedFile, ListOptions, WriteFileData } from './store.ts';
|
|
23
|
+
export { OcflStore } from './store.ts';
|
|
24
|
+
export type { CommitOptions, RemoveOptions } from './transaction.ts';
|
|
25
|
+
export { OcflObjectTransaction, OcflObjectTransactionImpl } from './transaction.ts';
|
|
26
|
+
export type * from './types.ts';
|
|
27
|
+
export { extensions };
|
|
28
|
+
/**
|
|
29
|
+
* Creates a new OCFL core API with a specific backend store.
|
|
30
|
+
* Any backend store implementation module must return the result of this method.
|
|
31
|
+
* @returns Top level OCFL API interface that provides storage and object creation.
|
|
32
|
+
*/
|
|
33
|
+
export declare function implementOcfl<SO extends object>(store: {
|
|
34
|
+
getInstance(options?: SO): OcflStore;
|
|
35
|
+
}, defaultOptions?: SO): {
|
|
36
|
+
OCFL_VERSIONS: readonly ["1.1", "1.0"];
|
|
37
|
+
/** Built-in storage layout classes */
|
|
38
|
+
StorageLayout: extensions.StorageLayout;
|
|
39
|
+
/**
|
|
40
|
+
* Instantiate a storage layout from extension name or config
|
|
41
|
+
* @param config - Layout name or config
|
|
42
|
+
*/
|
|
43
|
+
storageLayout(config: string | OcflExtensionConfig): OcflStorageLayout;
|
|
44
|
+
/**
|
|
45
|
+
* Instantiate an OCFL Object
|
|
46
|
+
*/
|
|
47
|
+
object(config: OcflObjectConfig, storeOptions?: SO | undefined): OcflObject;
|
|
48
|
+
/**
|
|
49
|
+
* Instantiate an OCFL Storage root
|
|
50
|
+
*/
|
|
51
|
+
storage(config: OcflStorageConfig, storeOptions?: SO | undefined): OcflStorage;
|
|
52
|
+
/**
|
|
53
|
+
* Create a new OCFL Storage
|
|
54
|
+
*/
|
|
55
|
+
createStorage(config: OcflStorageConfig, storeOptions?: SO | undefined): Promise<OcflStorage>;
|
|
56
|
+
/**
|
|
57
|
+
* Load an existing OCFL Storage
|
|
58
|
+
*/
|
|
59
|
+
loadStorage(config: OcflStorageConfig, storeOptions?: SO | undefined): Promise<OcflStorage>;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAClE,YAAY,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AACrG,YAAY,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AAC1G,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AACpF,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,EAAE;IAAE,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAA;CAAE,EAAE,cAAc,CAAC,EAAE,EAAE;IAEjH,aAAa;IAEb,sCAAsC;IACtC,aAAa;IAEb;;;OAGG;IACH,aAAa,SAAS,MAAM,GAAG,mBAAmB,GAAG,iBAAiB;IAYtE;;OAEG;IACH,MAAM,SAAS,gBAAgB,iBAAgB,EAAE,GAAG,SAAS,GAAoB,UAAU;IAI3F;;OAEG;IACH,OAAO,SAAS,iBAAiB,iBAAgB,EAAE,GAAG,SAAS,GAAoB,WAAW;IAI9F;;OAEG;IACG,aAAa,SAAS,iBAAiB,iBAAgB,EAAE,GAAG,SAAS,GAAoB,OAAO,CAAC,WAAW,CAAC;IAInH;;OAEG;IACG,WAAW,SAAS,iBAAiB,iBAAgB,EAAE,GAAG,SAAS,GAAoB,OAAO,CAAC,WAAW,CAAC;EAIpH"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ocfl
|
|
3
|
+
*/
|
|
4
|
+
import { OcflConstants } from './constants.js';
|
|
5
|
+
import { createByName, OcflStorageLayout } from './extension.js';
|
|
6
|
+
import * as extensions from './extensions/index.js';
|
|
7
|
+
import { OcflObject } from './object.js';
|
|
8
|
+
import { OcflStorageImpl } from './storage.js';
|
|
9
|
+
export { OcflConstants } from './constants.js';
|
|
10
|
+
export { OcflDigest } from './digest.js';
|
|
11
|
+
export { OcflExtension, OcflStorageLayout } from './extension.js';
|
|
12
|
+
export { OcflObjectInventory } from './inventory.js';
|
|
13
|
+
export { OcflObject } from './object.js';
|
|
14
|
+
export { OcflStorage, OcflStorageImpl } from './storage.js';
|
|
15
|
+
export { OcflStore } from './store.js';
|
|
16
|
+
export { OcflObjectTransaction, OcflObjectTransactionImpl } from './transaction.js';
|
|
17
|
+
export { extensions };
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new OCFL core API with a specific backend store.
|
|
20
|
+
* Any backend store implementation module must return the result of this method.
|
|
21
|
+
* @returns Top level OCFL API interface that provides storage and object creation.
|
|
22
|
+
*/
|
|
23
|
+
export function implementOcfl(store, defaultOptions) {
|
|
24
|
+
return {
|
|
25
|
+
OCFL_VERSIONS: OcflConstants.OCFL_VERSIONS,
|
|
26
|
+
/** Built-in storage layout classes */
|
|
27
|
+
StorageLayout: OcflStorageLayout.layout,
|
|
28
|
+
/**
|
|
29
|
+
* Instantiate a storage layout from extension name or config
|
|
30
|
+
* @param config - Layout name or config
|
|
31
|
+
*/
|
|
32
|
+
storageLayout(config) {
|
|
33
|
+
let name;
|
|
34
|
+
let c;
|
|
35
|
+
if (typeof config === 'string') {
|
|
36
|
+
name = config;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
name = config.extensionName;
|
|
40
|
+
c = config;
|
|
41
|
+
}
|
|
42
|
+
return createByName(OcflStorageLayout, 'Layout', name, c);
|
|
43
|
+
},
|
|
44
|
+
/**
|
|
45
|
+
* Instantiate an OCFL Object
|
|
46
|
+
*/
|
|
47
|
+
object(config, storeOptions = defaultOptions) {
|
|
48
|
+
return new OcflObject(config, store.getInstance(storeOptions));
|
|
49
|
+
},
|
|
50
|
+
/**
|
|
51
|
+
* Instantiate an OCFL Storage root
|
|
52
|
+
*/
|
|
53
|
+
storage(config, storeOptions = defaultOptions) {
|
|
54
|
+
return new OcflStorageImpl(config, store.getInstance(storeOptions));
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* Create a new OCFL Storage
|
|
58
|
+
*/
|
|
59
|
+
async createStorage(config, storeOptions = defaultOptions) {
|
|
60
|
+
return new OcflStorageImpl(config, store.getInstance(storeOptions)).create();
|
|
61
|
+
},
|
|
62
|
+
/**
|
|
63
|
+
* Load an existing OCFL Storage
|
|
64
|
+
*/
|
|
65
|
+
async loadStorage(config, storeOptions = defaultOptions) {
|
|
66
|
+
return new OcflStorageImpl(config, store.getInstance(storeOptions)).load();
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
for (const ext of Object.values(extensions)) {
|
|
71
|
+
ext.register();
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAoB,eAAe,EAAE,MAAM,cAAc,CAAC;AAIjE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAoB,KAA+C,EAAE,cAAmB;IACnH,OAAO;QACL,aAAa,EAAE,aAAa,CAAC,aAAa;QAE1C,sCAAsC;QACtC,aAAa,EAAE,iBAAiB,CAAC,MAAM;QAEvC;;;WAGG;QACH,aAAa,CAAC,MAAoC;YAChD,IAAI,IAAwB,CAAC;YAC7B,IAAI,CAAkC,CAAC;YACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,IAAI,GAAG,MAAM,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC;gBAC5B,CAAC,GAAG,MAAM,CAAC;YACb,CAAC;YACD,OAAO,YAAY,CAAoB,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED;;WAEG;QACH,MAAM,CAAC,MAAwB,EAAE,YAAY,GAAmB,cAAc;YAC5E,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QACjE,CAAC;QAED;;WAEG;QACH,OAAO,CAAC,MAAyB,EAAE,YAAY,GAAmB,cAAc;YAC9E,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QACtE,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,aAAa,CAAC,MAAyB,EAAE,YAAY,GAAmB,cAAc;YAC1F,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/E,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,WAAW,CAAC,MAAyB,EAAE,YAAY,GAAmB,cAAc;YACxF,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7E,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5C,GAAG,CAAC,QAAQ,EAAE,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { Inventory, InventoryDigests, InventoryVersion } from './types.ts';
|
|
2
|
+
/** Digest values keyed by algorithm name */
|
|
3
|
+
type Digests = {
|
|
4
|
+
[algorithm: string]: string;
|
|
5
|
+
};
|
|
6
|
+
export interface InventoryFile {
|
|
7
|
+
logicalPath: string;
|
|
8
|
+
version: string;
|
|
9
|
+
digest: string;
|
|
10
|
+
contentPath: string;
|
|
11
|
+
fixity: Digests;
|
|
12
|
+
size?: number;
|
|
13
|
+
lastModified?: number;
|
|
14
|
+
}
|
|
15
|
+
declare class VersionNumber {
|
|
16
|
+
value: number;
|
|
17
|
+
zeroPaddingLength: number | undefined;
|
|
18
|
+
constructor(num: number, zeroPaddingLength?: number);
|
|
19
|
+
valueOf(): number;
|
|
20
|
+
toString(): string;
|
|
21
|
+
next(): VersionNumber;
|
|
22
|
+
previous(): VersionNumber | undefined;
|
|
23
|
+
static fromInt(num: number, zeroPaddingLength: number): VersionNumber;
|
|
24
|
+
static fromString(versionLabel: string): VersionNumber;
|
|
25
|
+
static next(versionLabel: string): VersionNumber;
|
|
26
|
+
static previous(versionLabel: string): VersionNumber | undefined;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Wrapper class for inventory data
|
|
30
|
+
*/
|
|
31
|
+
declare class OcflObjectInventory {
|
|
32
|
+
#private;
|
|
33
|
+
metadata: {
|
|
34
|
+
[contentPath: string]: {
|
|
35
|
+
size: number;
|
|
36
|
+
lastModified: number;
|
|
37
|
+
};
|
|
38
|
+
} | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Helper function to find the digest by logical file path and cached it by indexing
|
|
41
|
+
*/
|
|
42
|
+
_indexGet(logicalPath: string, version: string, onlyUsecache?: boolean): Digests | undefined;
|
|
43
|
+
_indexAdd(logicalPath: string, version: string, digests: Digests): void;
|
|
44
|
+
_indexRemove(logicalPath: string, version?: string): Digests | undefined;
|
|
45
|
+
_indexBuild(): void;
|
|
46
|
+
_indexFindPaths(prefix: string, version?: string): string[];
|
|
47
|
+
/**
|
|
48
|
+
* Create a new mutable OcflObjectInventory from the object config or clone an existing inventory,
|
|
49
|
+
* and increase the inventory version number. If data.head is undefined, starts from v1.
|
|
50
|
+
*/
|
|
51
|
+
static newVersion(data: Partial<Inventory> | OcflObjectInventory, cleanState?: boolean): OcflObjectInventoryMut;
|
|
52
|
+
/**
|
|
53
|
+
* Create a new inventory model
|
|
54
|
+
* @param data - Initial data of the inventory
|
|
55
|
+
* @param version - Set the version, default to data.head
|
|
56
|
+
*/
|
|
57
|
+
constructor(data: Inventory, _version?: string);
|
|
58
|
+
get id(): string;
|
|
59
|
+
get type(): "https://ocfl.io/1.0/spec/#inventory" | "https://ocfl.io/1.1/spec/#inventory";
|
|
60
|
+
get digestAlgorithm(): "sha256" | "sha512";
|
|
61
|
+
get head(): string;
|
|
62
|
+
/** The version number of the current head */
|
|
63
|
+
get versionNumber(): VersionNumber;
|
|
64
|
+
get contentDirectory(): string;
|
|
65
|
+
get manifest(): InventoryDigests;
|
|
66
|
+
get versions(): {
|
|
67
|
+
[key: string]: InventoryVersion;
|
|
68
|
+
};
|
|
69
|
+
/** The current head version. Throws if the head is not in versions. */
|
|
70
|
+
get version(): InventoryVersion;
|
|
71
|
+
get fixity(): Inventory['fixity'];
|
|
72
|
+
set fixity(val: NonNullable<Inventory['fixity']>);
|
|
73
|
+
/** The state of the current version */
|
|
74
|
+
get state(): InventoryDigests;
|
|
75
|
+
get created(): string;
|
|
76
|
+
get message(): InventoryVersion['message'];
|
|
77
|
+
get user(): InventoryVersion['user'];
|
|
78
|
+
/** Return true if there has been actual change to the state of current version compared to the previous version */
|
|
79
|
+
get isChanged(): boolean;
|
|
80
|
+
set created(val: string);
|
|
81
|
+
set message(val: NonNullable<InventoryVersion['message']>);
|
|
82
|
+
set user(val: NonNullable<InventoryVersion['user']>);
|
|
83
|
+
/**
|
|
84
|
+
* Return the state of the specified version
|
|
85
|
+
* @param version - The inventory version, default to the latest
|
|
86
|
+
*/
|
|
87
|
+
versionState(version?: string): InventoryDigests | undefined;
|
|
88
|
+
toString(): string;
|
|
89
|
+
toJSON(): Inventory;
|
|
90
|
+
/**
|
|
91
|
+
* @param version - The version name
|
|
92
|
+
*/
|
|
93
|
+
files(version?: string): Generator<InventoryFile>;
|
|
94
|
+
find(fn: (file: InventoryFile) => boolean, version?: string): Generator<InventoryFile, void, unknown>;
|
|
95
|
+
clone(): OcflObjectInventory;
|
|
96
|
+
/**
|
|
97
|
+
* Get the first content path found with the given digest from the manifest.
|
|
98
|
+
* Also can be used to check the existance of an entry with the specified digest in the manifest.
|
|
99
|
+
* @returns The first content path found in the array
|
|
100
|
+
*/
|
|
101
|
+
getContentPath(digest: string): string | undefined;
|
|
102
|
+
/**
|
|
103
|
+
* Get the digest of a content represented by the logicalPath of the specified version
|
|
104
|
+
*/
|
|
105
|
+
getDigest(logicalPath: string, versionName?: string): string | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* Get the file information by the logicalPath of the specified version
|
|
108
|
+
*/
|
|
109
|
+
getFile(logicalPath: string, versionName?: string): InventoryFile | undefined;
|
|
110
|
+
getFileByDigest(digest: string, versionName?: string): InventoryFile | undefined;
|
|
111
|
+
getFileByContentPath(contentPath: string, versionName?: string): InventoryFile | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* Get the fixity of a content represented by the logicalPath of the specified version
|
|
114
|
+
*/
|
|
115
|
+
getFixity(logicalPath: string, versionName?: string): Digests;
|
|
116
|
+
/**
|
|
117
|
+
* Compare the differences between the state of two versions
|
|
118
|
+
* @returns A tuple of [A, B] where A contains files
|
|
119
|
+
* that are in `version0` but not in `version1` and B contains files
|
|
120
|
+
* that are in `version1` but not in `version0`
|
|
121
|
+
*/
|
|
122
|
+
diffState(version0: string, version1: string): [InventoryDigests, InventoryDigests];
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Wrapper class with mutable methods for inventory data
|
|
126
|
+
*/
|
|
127
|
+
declare class OcflObjectInventoryMut extends OcflObjectInventory {
|
|
128
|
+
#private;
|
|
129
|
+
/**
|
|
130
|
+
* Add a new file to the inventory or update the digest of an existing file
|
|
131
|
+
* @returns true if the state is changed
|
|
132
|
+
*/
|
|
133
|
+
add(logicalPath: string, digest: string, fixity?: {
|
|
134
|
+
[x: string]: string;
|
|
135
|
+
}): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Low-level method to add a set of digest entries associated to file into the fixity block
|
|
138
|
+
*/
|
|
139
|
+
addFixity(contentPath: string, digestName: string, digestValue: string): void;
|
|
140
|
+
/**
|
|
141
|
+
* Rename a logical path. This will overwrite dest if exists
|
|
142
|
+
*/
|
|
143
|
+
rename(srcLogicalPath: string, destLogicalPath: string): void;
|
|
144
|
+
/**
|
|
145
|
+
* Create an alias or reference of a logical path
|
|
146
|
+
*/
|
|
147
|
+
copy(srcLogicalPath: string, destLogicalPath: string): void;
|
|
148
|
+
/**
|
|
149
|
+
* Delete a file
|
|
150
|
+
*/
|
|
151
|
+
delete(logicalPath: string, version?: string): number;
|
|
152
|
+
reinstate(logicalPath: string, versionName: string): number;
|
|
153
|
+
}
|
|
154
|
+
export { OcflObjectInventory, OcflObjectInventoryMut, VersionNumber };
|
|
155
|
+
//# sourceMappingURL=inventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../src/inventory.ts"],"names":[],"mappings":"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"}
|