@imbricate/core 1.20.1 → 1.24.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.
Files changed (47) hide show
  1. package/binary-storage/base.d.ts +18 -0
  2. package/binary-storage/base.js +30 -0
  3. package/binary-storage/definition.d.ts +3 -3
  4. package/binary-storage/definition.js +4 -10
  5. package/binary-storage/interface.d.ts +5 -0
  6. package/capability/builder.d.ts +12 -0
  7. package/capability/builder.js +26 -0
  8. package/capability/create.d.ts +7 -0
  9. package/capability/create.js +16 -0
  10. package/capability/definition.d.ts +4 -0
  11. package/capability/definition.js +13 -1
  12. package/capability/validate.d.ts +2 -2
  13. package/collection/base.d.ts +31 -0
  14. package/collection/base.js +54 -0
  15. package/collection/definition.d.ts +2 -2
  16. package/collection/definition.js +9 -25
  17. package/collection/interface.d.ts +7 -7
  18. package/collection/interface.js +1 -1
  19. package/error/not-implemented.d.ts +2 -2
  20. package/error/not-implemented.js +7 -7
  21. package/function/base.d.ts +18 -0
  22. package/function/base.js +30 -0
  23. package/function/definition.d.ts +7 -0
  24. package/function/definition.js +17 -0
  25. package/function/interface.d.ts +5 -1
  26. package/index.d.ts +11 -0
  27. package/index.js +11 -0
  28. package/origin/base.d.ts +44 -0
  29. package/origin/base.js +78 -0
  30. package/origin/definition.d.ts +4 -0
  31. package/origin/definition.js +29 -1
  32. package/origin/interface.d.ts +6 -6
  33. package/package.json +1 -1
  34. package/page/base.d.ts +32 -0
  35. package/page/base.js +48 -0
  36. package/page/definition.d.ts +1 -0
  37. package/page/definition.js +9 -1
  38. package/script/base.d.ts +35 -0
  39. package/script/base.js +51 -0
  40. package/script/definition.d.ts +1 -0
  41. package/script/definition.js +10 -1
  42. package/trash/base.d.ts +20 -0
  43. package/trash/base.js +36 -0
  44. package/trash/definition.d.ts +26 -0
  45. package/trash/definition.js +39 -0
  46. package/trash/interface.d.ts +17 -0
  47. package/trash/interface.js +7 -0
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @namespace BinaryStorage
4
+ * @description Base
5
+ */
6
+ import { ImbricateCapabilityBuilder } from "../capability/builder";
7
+ import { ImbricateCapability } from "../capability/definition";
8
+ import type { PromiseOr } from "../definition/promise";
9
+ import { IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY, ImbricateBinaryStorageCapability } from "./definition";
10
+ import type { IImbricateBinaryStorage } from "./interface";
11
+ export declare abstract class ImbricateBaseBinaryStorage implements IImbricateBinaryStorage {
12
+ static buildCapability(initial?: ImbricateCapability): ImbricateCapabilityBuilder<IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY>;
13
+ static allAllowCapability(): ImbricateBinaryStorageCapability;
14
+ static allDenyCapability(): ImbricateBinaryStorageCapability;
15
+ abstract readonly capabilities: ImbricateBinaryStorageCapability;
16
+ putBinaryBase64(_binary: string, _fileName: string): PromiseOr<string>;
17
+ validateBinaryBase64(_binary: string): PromiseOr<boolean>;
18
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * @author WMXPY
4
+ * @namespace BinaryStorage
5
+ * @description Base
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ImbricateBaseBinaryStorage = void 0;
9
+ const builder_1 = require("../capability/builder");
10
+ const definition_1 = require("../capability/definition");
11
+ const not_implemented_1 = require("../error/not-implemented");
12
+ const definition_2 = require("./definition");
13
+ class ImbricateBaseBinaryStorage {
14
+ static buildCapability(initial = (0, definition_1.createDenyImbricateCapability)()) {
15
+ return builder_1.ImbricateCapabilityBuilder.create(definition_2.ImbricateBinaryStorageCapabilityList, initial);
16
+ }
17
+ static allAllowCapability() {
18
+ return this.buildCapability((0, definition_1.createAllowImbricateCapability)()).build();
19
+ }
20
+ static allDenyCapability() {
21
+ return this.buildCapability((0, definition_1.createDenyImbricateCapability)()).build();
22
+ }
23
+ putBinaryBase64(_binary, _fileName) {
24
+ throw not_implemented_1.ImbricateNotImplemented.create("PutBinaryBase64", definition_2.IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY.UPLOAD_FILE);
25
+ }
26
+ validateBinaryBase64(_binary) {
27
+ throw not_implemented_1.ImbricateNotImplemented.create("ValidateBinaryBase64", definition_2.IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY.UPLOAD_FILE);
28
+ }
29
+ }
30
+ exports.ImbricateBaseBinaryStorage = ImbricateBaseBinaryStorage;
@@ -3,9 +3,9 @@
3
3
  * @namespace BinaryStorage
4
4
  * @description Definition
5
5
  */
6
- import { ImbricateCapability } from "../capability/definition";
7
- export type ImbricateBinaryStorageCapability = Record<IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY, ImbricateCapability>;
6
+ import type { ImbricateCapabilityRecord } from "../capability/definition";
7
+ export type ImbricateBinaryStorageCapability = ImbricateCapabilityRecord<IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY>;
8
8
  export declare enum IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY {
9
9
  UPLOAD_FILE = "imbricate.binary.storage.upload"
10
10
  }
11
- export declare const createAllAllowImbricateBinaryStorageCapability: () => ImbricateBinaryStorageCapability;
11
+ export declare const ImbricateBinaryStorageCapabilityList: IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY[];
@@ -5,17 +5,11 @@
5
5
  * @description Definition
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.createAllAllowImbricateBinaryStorageCapability = exports.IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY = void 0;
9
- const definition_1 = require("../capability/definition");
8
+ exports.ImbricateBinaryStorageCapabilityList = exports.IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY = void 0;
10
9
  var IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY;
11
10
  (function (IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY) {
12
11
  IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY["UPLOAD_FILE"] = "imbricate.binary.storage.upload";
13
12
  })(IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY || (exports.IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY = IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY = {}));
14
- const createAllAllowImbricateBinaryStorageCapability = () => {
15
- return {
16
- [IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY.UPLOAD_FILE]: {
17
- effect: definition_1.IMBRICATE_CAPABILITY_EFFECT.ALLOW,
18
- },
19
- };
20
- };
21
- exports.createAllAllowImbricateBinaryStorageCapability = createAllAllowImbricateBinaryStorageCapability;
13
+ exports.ImbricateBinaryStorageCapabilityList = [
14
+ IMBRICATE_BINARY_STORAGE_CAPABILITY_KEY.UPLOAD_FILE,
15
+ ];
@@ -4,7 +4,12 @@
4
4
  * @description Interface
5
5
  */
6
6
  import { PromiseOr } from "../definition/promise";
7
+ import { ImbricateBinaryStorageCapability } from "./definition";
7
8
  export interface IImbricateBinaryStorage {
9
+ /**
10
+ * Capabilities of the binary storage
11
+ */
12
+ readonly capabilities: ImbricateBinaryStorageCapability;
8
13
  /**
9
14
  * Store a binary file
10
15
  *
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @namespace Capability
4
+ * @description Builder
5
+ */
6
+ import type { ImbricateCapability, ImbricateCapabilityKey, ImbricateCapabilityRecord } from "./definition";
7
+ export declare class ImbricateCapabilityBuilder<T extends ImbricateCapabilityKey> {
8
+ static create<T extends ImbricateCapabilityKey>(list: T[], initialValue: ImbricateCapability): ImbricateCapabilityBuilder<T>;
9
+ private readonly _capabilities;
10
+ private constructor();
11
+ build(): ImbricateCapabilityRecord<T>;
12
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * @author WMXPY
4
+ * @namespace Capability
5
+ * @description Builder
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ImbricateCapabilityBuilder = void 0;
9
+ const create_1 = require("./create");
10
+ class ImbricateCapabilityBuilder {
11
+ static create(list, initialValue) {
12
+ const capabilities = (0, create_1.createImbricateCapabilityRecord)(list, initialValue);
13
+ return new ImbricateCapabilityBuilder(capabilities);
14
+ }
15
+ constructor(capabilities) {
16
+ this._capabilities = capabilities;
17
+ }
18
+ build() {
19
+ return Object.keys(this._capabilities).map((key) => {
20
+ return {
21
+ [key]: this._capabilities[key],
22
+ };
23
+ });
24
+ }
25
+ }
26
+ exports.ImbricateCapabilityBuilder = ImbricateCapabilityBuilder;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @namespace Capability
4
+ * @description Create
5
+ */
6
+ import type { ImbricateCapability, ImbricateCapabilityRecord } from "./definition";
7
+ export declare const createImbricateCapabilityRecord: <T extends string>(list: T[], initialValue: ImbricateCapability) => ImbricateCapabilityRecord<T>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ /**
3
+ * @author WMXPY
4
+ * @namespace Capability
5
+ * @description Create
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.createImbricateCapabilityRecord = void 0;
9
+ const createImbricateCapabilityRecord = (list, initialValue) => {
10
+ const record = {};
11
+ for (const key of list) {
12
+ record[key] = Object.assign({}, initialValue);
13
+ }
14
+ return record;
15
+ };
16
+ exports.createImbricateCapabilityRecord = createImbricateCapabilityRecord;
@@ -3,6 +3,7 @@
3
3
  * @namespace Capability
4
4
  * @description Definition
5
5
  */
6
+ export type ImbricateCapabilityKey = string;
6
7
  export declare enum IMBRICATE_CAPABILITY_EFFECT {
7
8
  ALLOW = "ALLOW",
8
9
  DENY = "DENY"
@@ -10,3 +11,6 @@ export declare enum IMBRICATE_CAPABILITY_EFFECT {
10
11
  export type ImbricateCapability = {
11
12
  readonly effect: IMBRICATE_CAPABILITY_EFFECT;
12
13
  };
14
+ export type ImbricateCapabilityRecord<T extends ImbricateCapabilityKey> = Record<T, ImbricateCapability>;
15
+ export declare const createAllowImbricateCapability: () => ImbricateCapability;
16
+ export declare const createDenyImbricateCapability: () => ImbricateCapability;
@@ -5,9 +5,21 @@
5
5
  * @description Definition
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.IMBRICATE_CAPABILITY_EFFECT = void 0;
8
+ exports.createDenyImbricateCapability = exports.createAllowImbricateCapability = exports.IMBRICATE_CAPABILITY_EFFECT = void 0;
9
9
  var IMBRICATE_CAPABILITY_EFFECT;
10
10
  (function (IMBRICATE_CAPABILITY_EFFECT) {
11
11
  IMBRICATE_CAPABILITY_EFFECT["ALLOW"] = "ALLOW";
12
12
  IMBRICATE_CAPABILITY_EFFECT["DENY"] = "DENY";
13
13
  })(IMBRICATE_CAPABILITY_EFFECT || (exports.IMBRICATE_CAPABILITY_EFFECT = IMBRICATE_CAPABILITY_EFFECT = {}));
14
+ const createAllowImbricateCapability = () => {
15
+ return {
16
+ effect: IMBRICATE_CAPABILITY_EFFECT.ALLOW,
17
+ };
18
+ };
19
+ exports.createAllowImbricateCapability = createAllowImbricateCapability;
20
+ const createDenyImbricateCapability = () => {
21
+ return {
22
+ effect: IMBRICATE_CAPABILITY_EFFECT.DENY,
23
+ };
24
+ };
25
+ exports.createDenyImbricateCapability = createDenyImbricateCapability;
@@ -4,7 +4,7 @@
4
4
  * @description Validate
5
5
  */
6
6
  import { IMBRICATE_COLLECTION_CAPABILITY_KEY } from "../collection/definition";
7
- import { IImbricateOriginCollection } from "../collection/interface";
7
+ import type { IImbricateCollection } from "../collection/interface";
8
8
  import { IMBRICATE_ORIGIN_CAPABILITY_KEY } from "../origin/definition";
9
9
  import { IImbricateOrigin } from "../origin/interface";
10
10
  import { IMBRICATE_PAGE_CAPABILITY_KEY } from "../page/definition";
@@ -14,6 +14,6 @@ import { IImbricateScript } from "../script/interface";
14
14
  import { ImbricateCapability } from "./definition";
15
15
  export declare const validateImbricateCapability: <CapabilityRecords extends Record<string, ImbricateCapability>, KeySet extends keyof CapabilityRecords>(capabilities: CapabilityRecords, capability: KeySet) => boolean;
16
16
  export declare const validateImbricateOriginCapability: (origin: IImbricateOrigin, capability: IMBRICATE_ORIGIN_CAPABILITY_KEY) => boolean;
17
- export declare const validateImbricateCollectionCapability: (collection: IImbricateOriginCollection, capability: IMBRICATE_COLLECTION_CAPABILITY_KEY) => boolean;
17
+ export declare const validateImbricateCollectionCapability: (collection: IImbricateCollection, capability: IMBRICATE_COLLECTION_CAPABILITY_KEY) => boolean;
18
18
  export declare const validateImbricatePageCapability: (page: IImbricatePage, capability: IMBRICATE_PAGE_CAPABILITY_KEY) => boolean;
19
19
  export declare const validateImbricateScriptCapability: (script: IImbricateScript, capability: IMBRICATE_SCRIPT_CAPABILITY_KEY) => boolean;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @namespace Collection
4
+ * @description Base
5
+ */
6
+ import { ImbricateCapabilityBuilder } from "../capability/builder";
7
+ import { ImbricateCapability } from "../capability/definition";
8
+ import type { PromiseOr } from "../definition/promise";
9
+ import type { ImbricatePageMetadata, ImbricatePageSearchResult } from "../page/definition";
10
+ import type { IImbricatePage } from "../page/interface";
11
+ import type { ImbricatePageQuery, ImbricatePageQueryConfig, ImbricateSearchPageConfig } from "../query/page";
12
+ import { IMBRICATE_COLLECTION_CAPABILITY_KEY, ImbricateCollectionCapability } from "./definition";
13
+ import type { IImbricateCollection } from "./interface";
14
+ export declare abstract class ImbricateCollectionBase implements IImbricateCollection {
15
+ static buildCapability(initial?: ImbricateCapability): ImbricateCapabilityBuilder<IMBRICATE_COLLECTION_CAPABILITY_KEY>;
16
+ static allAllowCapability(): ImbricateCollectionCapability;
17
+ static allDenyCapability(): ImbricateCollectionCapability;
18
+ abstract readonly collectionName: string;
19
+ abstract readonly uniqueIdentifier: string;
20
+ abstract readonly capabilities: ImbricateCollectionCapability;
21
+ createPage(_directories: string[], _title: string, _initialContent: string): PromiseOr<IImbricatePage>;
22
+ putPage(_pageMetadata: ImbricatePageMetadata, _content: string): PromiseOr<IImbricatePage>;
23
+ retitlePage(_identifier: string, _newTitle: string): PromiseOr<void>;
24
+ deletePage(_identifier: string): PromiseOr<void>;
25
+ hasPage(_directories: string[], _title: string): PromiseOr<boolean>;
26
+ getPage(_identifier: string): PromiseOr<IImbricatePage | null>;
27
+ listPages(_directories: string[], _recursive: boolean): PromiseOr<IImbricatePage[]>;
28
+ listDirectories(_directories: string[]): PromiseOr<string[]>;
29
+ searchPages(_keyword: string, _config: ImbricateSearchPageConfig): PromiseOr<ImbricatePageSearchResult[]>;
30
+ queryPages(_query: ImbricatePageQuery, _config: ImbricatePageQueryConfig): PromiseOr<IImbricatePage[]>;
31
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * @author WMXPY
4
+ * @namespace Collection
5
+ * @description Base
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ImbricateCollectionBase = void 0;
9
+ const builder_1 = require("../capability/builder");
10
+ const definition_1 = require("../capability/definition");
11
+ const not_implemented_1 = require("../error/not-implemented");
12
+ const definition_2 = require("./definition");
13
+ class ImbricateCollectionBase {
14
+ static buildCapability(initial = (0, definition_1.createDenyImbricateCapability)()) {
15
+ return builder_1.ImbricateCapabilityBuilder.create(definition_2.ImbricateCollectionCapabilityList, initial);
16
+ }
17
+ static allAllowCapability() {
18
+ return this.buildCapability((0, definition_1.createAllowImbricateCapability)()).build();
19
+ }
20
+ static allDenyCapability() {
21
+ return this.buildCapability((0, definition_1.createDenyImbricateCapability)()).build();
22
+ }
23
+ createPage(_directories, _title, _initialContent) {
24
+ throw not_implemented_1.ImbricateNotImplemented.create("CreatePage", definition_2.IMBRICATE_COLLECTION_CAPABILITY_KEY.CREATE_PAGE);
25
+ }
26
+ putPage(_pageMetadata, _content) {
27
+ throw not_implemented_1.ImbricateNotImplemented.create("PutPage", definition_2.IMBRICATE_COLLECTION_CAPABILITY_KEY.PUT_PAGE);
28
+ }
29
+ retitlePage(_identifier, _newTitle) {
30
+ throw not_implemented_1.ImbricateNotImplemented.create("RetitlePage", definition_2.IMBRICATE_COLLECTION_CAPABILITY_KEY.RETITLE_PAGE);
31
+ }
32
+ deletePage(_identifier) {
33
+ throw not_implemented_1.ImbricateNotImplemented.create("DeletePage", definition_2.IMBRICATE_COLLECTION_CAPABILITY_KEY.DELETE_PAGE);
34
+ }
35
+ hasPage(_directories, _title) {
36
+ throw not_implemented_1.ImbricateNotImplemented.create("HasPage", definition_2.IMBRICATE_COLLECTION_CAPABILITY_KEY.GET_PAGE);
37
+ }
38
+ getPage(_identifier) {
39
+ throw not_implemented_1.ImbricateNotImplemented.create("GetPage", definition_2.IMBRICATE_COLLECTION_CAPABILITY_KEY.GET_PAGE);
40
+ }
41
+ listPages(_directories, _recursive) {
42
+ throw not_implemented_1.ImbricateNotImplemented.create("ListPages", definition_2.IMBRICATE_COLLECTION_CAPABILITY_KEY.LIST_PAGES);
43
+ }
44
+ listDirectories(_directories) {
45
+ throw not_implemented_1.ImbricateNotImplemented.create("ListDirectories", definition_2.IMBRICATE_COLLECTION_CAPABILITY_KEY.LIST_PAGES);
46
+ }
47
+ searchPages(_keyword, _config) {
48
+ throw not_implemented_1.ImbricateNotImplemented.create("SearchPages", definition_2.IMBRICATE_COLLECTION_CAPABILITY_KEY.LIST_PAGES);
49
+ }
50
+ queryPages(_query, _config) {
51
+ throw not_implemented_1.ImbricateNotImplemented.create("QueryPages", definition_2.IMBRICATE_COLLECTION_CAPABILITY_KEY.LIST_PAGES);
52
+ }
53
+ }
54
+ exports.ImbricateCollectionBase = ImbricateCollectionBase;
@@ -3,7 +3,7 @@
3
3
  * @namespace Collection
4
4
  * @description Definition
5
5
  */
6
- import { ImbricateCapability } from "../capability/definition";
6
+ import type { ImbricateCapability } from "../capability/definition";
7
7
  export type ImbricateCollectionCapability = Record<IMBRICATE_COLLECTION_CAPABILITY_KEY, ImbricateCapability>;
8
8
  export declare enum IMBRICATE_COLLECTION_CAPABILITY_KEY {
9
9
  CREATE_PAGE = "imbricate.collection.page.create",
@@ -13,4 +13,4 @@ export declare enum IMBRICATE_COLLECTION_CAPABILITY_KEY {
13
13
  GET_PAGE = "imbricate.collection.page.get",
14
14
  LIST_PAGES = "imbricate.collection.page.list"
15
15
  }
16
- export declare const createAllAllowImbricateCollectionCapability: () => ImbricateCollectionCapability;
16
+ export declare const ImbricateCollectionCapabilityList: IMBRICATE_COLLECTION_CAPABILITY_KEY[];
@@ -5,8 +5,7 @@
5
5
  * @description Definition
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.createAllAllowImbricateCollectionCapability = exports.IMBRICATE_COLLECTION_CAPABILITY_KEY = void 0;
9
- const definition_1 = require("../capability/definition");
8
+ exports.ImbricateCollectionCapabilityList = exports.IMBRICATE_COLLECTION_CAPABILITY_KEY = void 0;
10
9
  var IMBRICATE_COLLECTION_CAPABILITY_KEY;
11
10
  (function (IMBRICATE_COLLECTION_CAPABILITY_KEY) {
12
11
  IMBRICATE_COLLECTION_CAPABILITY_KEY["CREATE_PAGE"] = "imbricate.collection.page.create";
@@ -16,26 +15,11 @@ var IMBRICATE_COLLECTION_CAPABILITY_KEY;
16
15
  IMBRICATE_COLLECTION_CAPABILITY_KEY["GET_PAGE"] = "imbricate.collection.page.get";
17
16
  IMBRICATE_COLLECTION_CAPABILITY_KEY["LIST_PAGES"] = "imbricate.collection.page.list";
18
17
  })(IMBRICATE_COLLECTION_CAPABILITY_KEY || (exports.IMBRICATE_COLLECTION_CAPABILITY_KEY = IMBRICATE_COLLECTION_CAPABILITY_KEY = {}));
19
- const createAllAllowImbricateCollectionCapability = () => {
20
- return {
21
- [IMBRICATE_COLLECTION_CAPABILITY_KEY.CREATE_PAGE]: {
22
- effect: definition_1.IMBRICATE_CAPABILITY_EFFECT.ALLOW,
23
- },
24
- [IMBRICATE_COLLECTION_CAPABILITY_KEY.PUT_PAGE]: {
25
- effect: definition_1.IMBRICATE_CAPABILITY_EFFECT.ALLOW,
26
- },
27
- [IMBRICATE_COLLECTION_CAPABILITY_KEY.RETITLE_PAGE]: {
28
- effect: definition_1.IMBRICATE_CAPABILITY_EFFECT.ALLOW,
29
- },
30
- [IMBRICATE_COLLECTION_CAPABILITY_KEY.DELETE_PAGE]: {
31
- effect: definition_1.IMBRICATE_CAPABILITY_EFFECT.ALLOW,
32
- },
33
- [IMBRICATE_COLLECTION_CAPABILITY_KEY.GET_PAGE]: {
34
- effect: definition_1.IMBRICATE_CAPABILITY_EFFECT.ALLOW,
35
- },
36
- [IMBRICATE_COLLECTION_CAPABILITY_KEY.LIST_PAGES]: {
37
- effect: definition_1.IMBRICATE_CAPABILITY_EFFECT.ALLOW,
38
- },
39
- };
40
- };
41
- exports.createAllAllowImbricateCollectionCapability = createAllAllowImbricateCollectionCapability;
18
+ exports.ImbricateCollectionCapabilityList = [
19
+ IMBRICATE_COLLECTION_CAPABILITY_KEY.CREATE_PAGE,
20
+ IMBRICATE_COLLECTION_CAPABILITY_KEY.PUT_PAGE,
21
+ IMBRICATE_COLLECTION_CAPABILITY_KEY.RETITLE_PAGE,
22
+ IMBRICATE_COLLECTION_CAPABILITY_KEY.DELETE_PAGE,
23
+ IMBRICATE_COLLECTION_CAPABILITY_KEY.GET_PAGE,
24
+ IMBRICATE_COLLECTION_CAPABILITY_KEY.LIST_PAGES,
25
+ ];
@@ -1,14 +1,14 @@
1
1
  /**
2
2
  * @author WMXPY
3
- * @namespace Origin_Collection
3
+ * @namespace Collection
4
4
  * @description Interface
5
5
  */
6
- import { PromiseOr } from "../definition/promise";
7
- import { ImbricatePageMetadata, ImbricatePageSearchResult, ImbricatePageSnapshot } from "../page/definition";
8
- import { IImbricatePage } from "../page/interface";
9
- import { ImbricatePageQuery, ImbricatePageQueryConfig, ImbricateSearchPageConfig } from "../query/page";
10
- import { ImbricateCollectionCapability } from "./definition";
11
- export interface IImbricateOriginCollection {
6
+ import type { PromiseOr } from "../definition/promise";
7
+ import type { ImbricatePageMetadata, ImbricatePageSearchResult, ImbricatePageSnapshot } from "../page/definition";
8
+ import type { IImbricatePage } from "../page/interface";
9
+ import type { ImbricatePageQuery, ImbricatePageQueryConfig, ImbricateSearchPageConfig } from "../query/page";
10
+ import type { ImbricateCollectionCapability } from "./definition";
11
+ export interface IImbricateCollection {
12
12
  readonly collectionName: string;
13
13
  readonly uniqueIdentifier: string;
14
14
  readonly description?: string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * @author WMXPY
4
- * @namespace Origin_Collection
4
+ * @namespace Collection
5
5
  * @description Interface
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -4,7 +4,7 @@
4
4
  * @description Not Implemented
5
5
  */
6
6
  import { ImbricateError } from "./imbricate-error";
7
- export declare class ImbricateNoteImplemented extends ImbricateError {
8
- static create(originName: string, capabilityIdentifier: string): ImbricateNoteImplemented;
7
+ export declare class ImbricateNotImplemented extends ImbricateError {
8
+ static create(feature: string, capabilityIdentifier: string): ImbricateNotImplemented;
9
9
  protected constructor(message: string, reason?: any);
10
10
  }
@@ -5,15 +5,15 @@
5
5
  * @description Not Implemented
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.ImbricateNoteImplemented = void 0;
8
+ exports.ImbricateNotImplemented = void 0;
9
9
  const imbricate_error_1 = require("./imbricate-error");
10
- class ImbricateNoteImplemented extends imbricate_error_1.ImbricateError {
11
- static create(originName, capabilityIdentifier) {
12
- return new ImbricateNoteImplemented(`Origin: ${originName} Capability: ${capabilityIdentifier} Not Implemented`);
10
+ class ImbricateNotImplemented extends imbricate_error_1.ImbricateError {
11
+ static create(feature, capabilityIdentifier) {
12
+ return new ImbricateNotImplemented(`Feature: [${feature}], which correspond with capability: [${capabilityIdentifier}] is not Implemented`);
13
13
  }
14
14
  constructor(message, reason) {
15
- super(message, "ImbricateNoteImplemented", reason);
16
- Object.setPrototypeOf(this, ImbricateNoteImplemented.prototype);
15
+ super(message, "ImbricateNotImplemented", reason);
16
+ Object.setPrototypeOf(this, ImbricateNotImplemented.prototype);
17
17
  }
18
18
  }
19
- exports.ImbricateNoteImplemented = ImbricateNoteImplemented;
19
+ exports.ImbricateNotImplemented = ImbricateNotImplemented;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @namespace Function
4
+ * @description Base
5
+ */
6
+ import { ImbricateCapabilityBuilder } from "../capability/builder";
7
+ import { ImbricateCapability } from "../capability/definition";
8
+ import type { IImbricateOrigin } from "../origin/interface";
9
+ import { IMBRICATE_FUNCTION_CAPABILITY_KEY, ImbricateFunction, ImbricateFunctionCapability } from "./definition";
10
+ import type { IImbricateFunctionManager } from "./interface";
11
+ export declare abstract class ImbricateFunctionManagerBase implements IImbricateFunctionManager {
12
+ static buildCapability(initial?: ImbricateCapability): ImbricateCapabilityBuilder<IMBRICATE_FUNCTION_CAPABILITY_KEY>;
13
+ static allAllowCapability(): ImbricateFunctionCapability;
14
+ static allDenyCapability(): ImbricateFunctionCapability;
15
+ abstract readonly capabilities: ImbricateFunctionCapability;
16
+ findSynchronousOriginFunctions(): Array<ImbricateFunction<IImbricateOrigin>>;
17
+ findAllOriginFunctions(): Array<ImbricateFunction<IImbricateOrigin>>;
18
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * @author WMXPY
4
+ * @namespace Function
5
+ * @description Base
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ImbricateFunctionManagerBase = void 0;
9
+ const builder_1 = require("../capability/builder");
10
+ const definition_1 = require("../capability/definition");
11
+ const not_implemented_1 = require("../error/not-implemented");
12
+ const definition_2 = require("./definition");
13
+ class ImbricateFunctionManagerBase {
14
+ static buildCapability(initial = (0, definition_1.createDenyImbricateCapability)()) {
15
+ return builder_1.ImbricateCapabilityBuilder.create(definition_2.ImbricateFunctionCapabilityList, initial);
16
+ }
17
+ static allAllowCapability() {
18
+ return this.buildCapability((0, definition_1.createAllowImbricateCapability)()).build();
19
+ }
20
+ static allDenyCapability() {
21
+ return this.buildCapability((0, definition_1.createDenyImbricateCapability)()).build();
22
+ }
23
+ findSynchronousOriginFunctions() {
24
+ throw not_implemented_1.ImbricateNotImplemented.create("FindSynchronousOriginFunctions", definition_2.IMBRICATE_FUNCTION_CAPABILITY_KEY.FIND_ORIGIN_FUNCTIONS);
25
+ }
26
+ findAllOriginFunctions() {
27
+ throw not_implemented_1.ImbricateNotImplemented.create("FindAllOriginFunctions", definition_2.IMBRICATE_FUNCTION_CAPABILITY_KEY.FIND_ORIGIN_FUNCTIONS);
28
+ }
29
+ }
30
+ exports.ImbricateFunctionManagerBase = ImbricateFunctionManagerBase;
@@ -3,6 +3,7 @@
3
3
  * @namespace Function
4
4
  * @description Definition
5
5
  */
6
+ import { ImbricateCapability } from "../capability/definition";
6
7
  import { PromiseOr } from "../definition/promise";
7
8
  export type ImbricateFunction<Target> = {
8
9
  readonly title: string;
@@ -10,3 +11,9 @@ export type ImbricateFunction<Target> = {
10
11
  readonly execute: ImbricateFunctionExecute<Target>;
11
12
  };
12
13
  export type ImbricateFunctionExecute<Target> = (target: Target) => PromiseOr<void>;
14
+ export type ImbricateFunctionCapability = Record<IMBRICATE_FUNCTION_CAPABILITY_KEY, ImbricateCapability>;
15
+ export declare enum IMBRICATE_FUNCTION_CAPABILITY_KEY {
16
+ FIND_ORIGIN_FUNCTIONS = "imbricate.function.origin.find"
17
+ }
18
+ export declare const ImbricateFunctionCapabilityList: IMBRICATE_FUNCTION_CAPABILITY_KEY[];
19
+ export declare const createAllAllowImbricateFunctionCapability: () => ImbricateFunctionCapability;
@@ -5,3 +5,20 @@
5
5
  * @description Definition
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.createAllAllowImbricateFunctionCapability = exports.ImbricateFunctionCapabilityList = exports.IMBRICATE_FUNCTION_CAPABILITY_KEY = void 0;
9
+ const definition_1 = require("../capability/definition");
10
+ var IMBRICATE_FUNCTION_CAPABILITY_KEY;
11
+ (function (IMBRICATE_FUNCTION_CAPABILITY_KEY) {
12
+ IMBRICATE_FUNCTION_CAPABILITY_KEY["FIND_ORIGIN_FUNCTIONS"] = "imbricate.function.origin.find";
13
+ })(IMBRICATE_FUNCTION_CAPABILITY_KEY || (exports.IMBRICATE_FUNCTION_CAPABILITY_KEY = IMBRICATE_FUNCTION_CAPABILITY_KEY = {}));
14
+ exports.ImbricateFunctionCapabilityList = [
15
+ IMBRICATE_FUNCTION_CAPABILITY_KEY.FIND_ORIGIN_FUNCTIONS,
16
+ ];
17
+ const createAllAllowImbricateFunctionCapability = () => {
18
+ return {
19
+ [IMBRICATE_FUNCTION_CAPABILITY_KEY.FIND_ORIGIN_FUNCTIONS]: {
20
+ effect: definition_1.IMBRICATE_CAPABILITY_EFFECT.ALLOW,
21
+ },
22
+ };
23
+ };
24
+ exports.createAllAllowImbricateFunctionCapability = createAllAllowImbricateFunctionCapability;
@@ -5,8 +5,12 @@
5
5
  */
6
6
  import { PromiseOr } from "../definition/promise";
7
7
  import { IImbricateOrigin } from "../origin/interface";
8
- import { ImbricateFunction } from "./definition";
8
+ import { ImbricateFunction, ImbricateFunctionCapability } from "./definition";
9
9
  export interface IImbricateFunctionManager {
10
+ /**
11
+ * Capabilities of the function manager
12
+ */
13
+ readonly capabilities: ImbricateFunctionCapability;
10
14
  findSynchronousOriginFunctions(): Array<ImbricateFunction<IImbricateOrigin>>;
11
15
  findAllOriginFunctions(): PromiseOr<Array<ImbricateFunction<IImbricateOrigin>>>;
12
16
  }
package/index.d.ts CHANGED
@@ -2,10 +2,14 @@
2
2
  * @author WMXPY
3
3
  * @description Index
4
4
  */
5
+ export * from "./binary-storage/base";
5
6
  export * from "./binary-storage/definition";
6
7
  export * from "./binary-storage/interface";
8
+ export * from "./capability/builder";
9
+ export * from "./capability/create";
7
10
  export * from "./capability/definition";
8
11
  export * from "./capability/validate";
12
+ export * from "./collection/base";
9
13
  export * from "./collection/definition";
10
14
  export * from "./collection/interface";
11
15
  export * from "./collection/least-common-identifier";
@@ -13,10 +17,13 @@ export * from "./definition/listable";
13
17
  export * from "./definition/promise";
14
18
  export * from "./error/imbricate-error";
15
19
  export * from "./error/not-implemented";
20
+ export * from "./function/base";
16
21
  export * from "./function/definition";
17
22
  export * from "./function/interface";
23
+ export * from "./origin/base";
18
24
  export * from "./origin/definition";
19
25
  export * from "./origin/interface";
26
+ export * from "./page/base";
20
27
  export * from "./page/definition";
21
28
  export * from "./page/interface";
22
29
  export * from "./query/definition";
@@ -28,7 +35,11 @@ export * from "./sandbox/definition/implementation";
28
35
  export * from "./sandbox/feature/builder";
29
36
  export * from "./sandbox/feature/feature";
30
37
  export * from "./sandbox/sandbox";
38
+ export * from "./script/base";
31
39
  export * from "./script/definition";
32
40
  export * from "./script/interface";
33
41
  export * from "./search/prefix";
34
42
  export * from "./search/snippet";
43
+ export * from "./trash/base";
44
+ export * from "./trash/definition";
45
+ export * from "./trash/interface";
package/index.js CHANGED
@@ -18,10 +18,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
18
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
19
  };
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
+ __exportStar(require("./binary-storage/base"), exports);
21
22
  __exportStar(require("./binary-storage/definition"), exports);
22
23
  __exportStar(require("./binary-storage/interface"), exports);
24
+ __exportStar(require("./capability/builder"), exports);
25
+ __exportStar(require("./capability/create"), exports);
23
26
  __exportStar(require("./capability/definition"), exports);
24
27
  __exportStar(require("./capability/validate"), exports);
28
+ __exportStar(require("./collection/base"), exports);
25
29
  __exportStar(require("./collection/definition"), exports);
26
30
  __exportStar(require("./collection/interface"), exports);
27
31
  __exportStar(require("./collection/least-common-identifier"), exports);
@@ -29,10 +33,13 @@ __exportStar(require("./definition/listable"), exports);
29
33
  __exportStar(require("./definition/promise"), exports);
30
34
  __exportStar(require("./error/imbricate-error"), exports);
31
35
  __exportStar(require("./error/not-implemented"), exports);
36
+ __exportStar(require("./function/base"), exports);
32
37
  __exportStar(require("./function/definition"), exports);
33
38
  __exportStar(require("./function/interface"), exports);
39
+ __exportStar(require("./origin/base"), exports);
34
40
  __exportStar(require("./origin/definition"), exports);
35
41
  __exportStar(require("./origin/interface"), exports);
42
+ __exportStar(require("./page/base"), exports);
36
43
  __exportStar(require("./page/definition"), exports);
37
44
  __exportStar(require("./page/interface"), exports);
38
45
  __exportStar(require("./query/definition"), exports);
@@ -44,7 +51,11 @@ __exportStar(require("./sandbox/definition/implementation"), exports);
44
51
  __exportStar(require("./sandbox/feature/builder"), exports);
45
52
  __exportStar(require("./sandbox/feature/feature"), exports);
46
53
  __exportStar(require("./sandbox/sandbox"), exports);
54
+ __exportStar(require("./script/base"), exports);
47
55
  __exportStar(require("./script/definition"), exports);
48
56
  __exportStar(require("./script/interface"), exports);
49
57
  __exportStar(require("./search/prefix"), exports);
50
58
  __exportStar(require("./search/snippet"), exports);
59
+ __exportStar(require("./trash/base"), exports);
60
+ __exportStar(require("./trash/definition"), exports);
61
+ __exportStar(require("./trash/interface"), exports);