@d-najd/universal-media-tracker-sdk 0.0.7 → 0.0.9

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 (31) hide show
  1. package/dist/index.d.ts +4 -58
  2. package/dist/index.js +66 -70
  3. package/dist/types/handler/base/baseHandlerArgs.d.ts +6 -0
  4. package/dist/types/handler/base/baseHandlerArgs.js +1 -0
  5. package/dist/types/handler/base/baseHandlerResponse.d.ts +4 -0
  6. package/dist/types/handler/base/baseHandlerResponse.js +1 -0
  7. package/dist/types/handler/base/handler.d.ts +6 -0
  8. package/dist/types/handler/base/handler.js +12 -0
  9. package/dist/types/handler/media/catalog/catalogHandlerArgs.d.ts +3 -0
  10. package/dist/types/handler/media/catalog/catalogHandlerArgs.js +1 -0
  11. package/dist/types/handler/media/catalog/catalogHandlerResponse.d.ts +4 -0
  12. package/dist/types/handler/media/catalog/catalogHandlerResponse.js +1 -0
  13. package/dist/types/handler/media/catalog/createCatalogHandler.d.ts +8 -0
  14. package/dist/types/handler/media/catalog/createCatalogHandler.js +1 -0
  15. package/dist/types/handler/media/catalog/metaPreview.d.ts +7 -0
  16. package/dist/types/handler/media/catalog/metaPreview.js +1 -0
  17. package/dist/types/handler/media/createResourceHandler.d.ts +8 -0
  18. package/dist/types/handler/media/createResourceHandler.js +1 -0
  19. package/dist/types/handler/media/resourceHandler.d.ts +14 -0
  20. package/dist/types/handler/media/resourceHandler.js +1 -0
  21. package/dist/types/handler/media/resourceHandlerType.d.ts +2 -0
  22. package/dist/types/handler/media/resourceHandlerType.js +1 -0
  23. package/dist/types/handler/media/resourceType.d.ts +2 -0
  24. package/dist/types/handler/media/resourceType.js +1 -0
  25. package/dist/types/pluginConfig.d.ts +6 -0
  26. package/dist/types/pluginConfig.js +1 -0
  27. package/dist/types/pluginSpec.d.ts +8 -0
  28. package/dist/types/pluginSpec.js +1 -0
  29. package/package.json +2 -4
  30. package/dist/index.cjs +0 -93
  31. package/dist/index.d.cts +0 -82
package/dist/index.d.ts CHANGED
@@ -1,59 +1,7 @@
1
- type PluginConfig = {
2
- readonly id: string;
3
- readonly name: string;
4
- readonly version: string;
5
- };
6
-
7
- type BaseHandlerArgs = {
8
- readonly search?: string;
9
- readonly skip?: number;
10
- readonly pageSize?: number;
11
- };
12
-
13
- type BaseHandlerResponse<T = any> = {
14
- readonly data: T[];
15
- };
16
-
17
- type Handler<T = any, R = any> = {
18
- id: string;
19
- type: string;
20
- callback: (args: T) => Promise<R>;
21
- };
22
-
23
- type ResourceHandlerType = 'catalog-request';
24
-
25
- type ResourceType = 'movie' | 'series';
26
-
27
- type ResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = Handler<T, R> & {
28
- /**
29
- * Displayed in the app
30
- */
31
- name: string;
32
- type: ResourceHandlerType | string;
33
- resourceType: ResourceType | string;
34
- };
35
-
36
- type CreateResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = Omit<ResourceHandler<T, R>, 'id' | 'name'> & {
37
- id?: string;
38
- name?: string;
39
- };
40
-
41
- type CatalogHandlerArgs = BaseHandlerArgs & {};
42
-
43
- type MetaPreview = {
44
- readonly id: string;
45
- readonly type: string;
46
- readonly name: string;
47
- readonly poster: string;
48
- };
49
-
50
- type CatalogHandlerResponse = BaseHandlerResponse<MetaPreview> & {};
51
-
52
- type CreateCatalogHandler = Omit<CreateResourceHandler<CatalogHandlerArgs, CatalogHandlerResponse>, 'type'> & {
53
- type?: ResourceHandlerType | string;
54
- };
55
-
56
- declare class Plugin {
1
+ import PluginConfig from "./types/pluginConfig";
2
+ import CreateResourceHandler from "./types/handler/media/createResourceHandler";
3
+ import CreateCatalogHandler from "./types/handler/media/catalog/createCatalogHandler";
4
+ export default class Plugin {
57
5
  readonly config: PluginConfig;
58
6
  private handlers;
59
7
  private counter;
@@ -78,5 +26,3 @@ declare class Plugin {
78
26
  private onLoadCallback;
79
27
  private onUnloadCallback;
80
28
  }
81
-
82
- export { Plugin as default };
package/dist/index.js CHANGED
@@ -1,72 +1,68 @@
1
- // src/index.ts
2
- var Plugin = class {
3
- config;
4
- handlers = /* @__PURE__ */ new Map();
5
- counter = 0;
6
- loaded = false;
7
- constructor(options) {
8
- this.config = options;
9
- }
10
- /**
11
- * Don't define handlers here, they are part of the spec
12
- */
13
- onLoad(callback) {
14
- this.onLoadCallback = async () => {
15
- await callback();
16
- this.loaded = true;
17
- };
18
- }
19
- onUnload(callback) {
20
- this.onUnloadCallback = async () => {
21
- await callback();
22
- this.loaded = false;
23
- };
24
- }
25
- /**
26
- * @see Handler
27
- */
28
- defineResourceHandler(handler) {
29
- const newHandler = {
30
- id: `${this.config.id}-custom-${this.counter++}`,
31
- name: `${this.config.name}`,
32
- ...handler
33
- };
34
- this.handlers.set(newHandler.id, newHandler);
35
- return newHandler.id;
36
- }
37
- /**
38
- * Defines or overrides if a catalog handler has already been defined, if
39
- * you use multiple catalog handlers use `defineMediaHandler` instead
40
- * @see defineResourceHandler
41
- */
42
- defineCatalogHandler(handler) {
43
- const newHandler = {
44
- id: `${this.config.id}-catalog-handler`,
45
- ...handler,
46
- type: "catalog-request"
47
- };
48
- return this.defineResourceHandler(newHandler);
49
- }
50
- // Used internally, private since its internal api
51
- // noinspection JSUnusedLocalSymbols
52
- getSpec() {
53
- if (!this.loaded) {
54
- throw Error("The plugin must be loaded before getting it's spec");
1
+ export default class Plugin {
2
+ config;
3
+ handlers = new Map();
4
+ counter = 0;
5
+ loaded = false;
6
+ constructor(options) {
7
+ this.config = options;
8
+ }
9
+ /**
10
+ * Don't define handlers here, they are part of the spec
11
+ */
12
+ onLoad(callback) {
13
+ this.onLoadCallback = async () => {
14
+ await callback();
15
+ this.loaded = true;
16
+ };
55
17
  }
56
- return {
57
- config: this.config,
58
- handlers: this.handlers,
59
- onLoad: this.onLoadCallback,
60
- onUnload: this.onUnloadCallback
18
+ onUnload(callback) {
19
+ this.onUnloadCallback = async () => {
20
+ await callback();
21
+ this.loaded = false;
22
+ };
23
+ }
24
+ /**
25
+ * @see Handler
26
+ */
27
+ defineResourceHandler(handler) {
28
+ const newHandler = {
29
+ id: `${this.config.id}-custom-${this.counter++}`,
30
+ name: `${this.config.name}`,
31
+ ...handler
32
+ };
33
+ this.handlers.set(newHandler.id, newHandler);
34
+ return newHandler.id;
35
+ }
36
+ /**
37
+ * Defines or overrides if a catalog handler has already been defined, if
38
+ * you use multiple catalog handlers use `defineMediaHandler` instead
39
+ * @see defineResourceHandler
40
+ */
41
+ defineCatalogHandler(handler) {
42
+ const newHandler = {
43
+ id: `${this.config.id}-catalog-handler`,
44
+ ...handler,
45
+ type: 'catalog-request'
46
+ };
47
+ return this.defineResourceHandler(newHandler);
48
+ }
49
+ // Used internally, private since its internal api
50
+ // noinspection JSUnusedLocalSymbols
51
+ getSpec() {
52
+ if (!this.loaded) {
53
+ throw Error("The plugin must be loaded before getting it's spec");
54
+ }
55
+ return {
56
+ config: this.config,
57
+ handlers: this.handlers,
58
+ onLoad: this.onLoadCallback,
59
+ onUnload: this.onUnloadCallback
60
+ };
61
+ }
62
+ onLoadCallback = async () => {
63
+ this.loaded = true;
64
+ };
65
+ onUnloadCallback = async () => {
66
+ this.loaded = false;
61
67
  };
62
- }
63
- onLoadCallback = async () => {
64
- this.loaded = true;
65
- };
66
- onUnloadCallback = async () => {
67
- this.loaded = false;
68
- };
69
- };
70
- export {
71
- Plugin as default
72
- };
68
+ }
@@ -0,0 +1,6 @@
1
+ type BaseHandlerArgs = {
2
+ readonly search?: string;
3
+ readonly skip?: number;
4
+ readonly pageSize?: number;
5
+ };
6
+ export default BaseHandlerArgs;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ type BaseHandlerResponse<T = any> = {
2
+ readonly data: T[];
3
+ };
4
+ export default BaseHandlerResponse;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ type Handler<T = any, R = any> = {
2
+ id: string;
3
+ type: string;
4
+ callback: (args: T) => Promise<R>;
5
+ };
6
+ export default Handler;
@@ -0,0 +1,12 @@
1
+ /*
2
+ * Represents a plugin handler.
3
+ *
4
+ * @remarks
5
+ * - `type` can be a predefined `MediaHandlerTypes` value or any custom string.
6
+ * Custom types must be handled by the plugin author.
7
+ * - `id` is a unique identifier for the handler. If a handler with the same
8
+ * id exists, it will be overridden.
9
+ * - `name` name of the handler that will be displayed in the app
10
+ * - `callback` callback function that is called when the handler is invoked
11
+ */
12
+ export {};
@@ -0,0 +1,3 @@
1
+ import BaseHandlerArgs from "../../base/baseHandlerArgs";
2
+ type CatalogHandlerArgs = BaseHandlerArgs & {};
3
+ export default CatalogHandlerArgs;
@@ -0,0 +1,4 @@
1
+ import BaseHandlerResponse from "../../base/baseHandlerResponse";
2
+ import MetaPreview from "./metaPreview";
3
+ type CatalogHandlerResponse = BaseHandlerResponse<MetaPreview> & {};
4
+ export default CatalogHandlerResponse;
@@ -0,0 +1,8 @@
1
+ import CreateResourceHandler from "../createResourceHandler";
2
+ import CatalogHandlerArgs from "./catalogHandlerArgs";
3
+ import CatalogHandlerResponse from "./catalogHandlerResponse";
4
+ import ResourceHandlerType from "../resourceHandlerType";
5
+ type CreateCatalogHandler = Omit<CreateResourceHandler<CatalogHandlerArgs, CatalogHandlerResponse>, 'type'> & {
6
+ type?: ResourceHandlerType | string;
7
+ };
8
+ export default CreateCatalogHandler;
@@ -0,0 +1,7 @@
1
+ type MetaPreview = {
2
+ readonly id: string;
3
+ readonly type: string;
4
+ readonly name: string;
5
+ readonly poster: string;
6
+ };
7
+ export default MetaPreview;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import BaseHandlerArgs from "../base/baseHandlerArgs";
2
+ import BaseHandlerResponse from "../base/baseHandlerResponse";
3
+ import ResourceHandler from "./resourceHandler";
4
+ type CreateResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = Omit<ResourceHandler<T, R>, 'id' | 'name'> & {
5
+ id?: string;
6
+ name?: string;
7
+ };
8
+ export default CreateResourceHandler;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ import BaseHandlerArgs from "../base/baseHandlerArgs";
2
+ import BaseHandlerResponse from "../base/baseHandlerResponse";
3
+ import Handler from "../base/handler";
4
+ import ResourceHandlerType from "./resourceHandlerType";
5
+ import ResourceType from "./resourceType";
6
+ type ResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = Handler<T, R> & {
7
+ /**
8
+ * Displayed in the app
9
+ */
10
+ name: string;
11
+ type: ResourceHandlerType | string;
12
+ resourceType: ResourceType | string;
13
+ };
14
+ export default ResourceHandler;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ type ResourceHandlerType = 'catalog-request';
2
+ export default ResourceHandlerType;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ type ResourceType = 'movie' | 'series';
2
+ export default ResourceType;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ type PluginConfig = {
2
+ readonly id: string;
3
+ readonly name: string;
4
+ readonly version: string;
5
+ };
6
+ export default PluginConfig;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import PluginConfig from "./pluginConfig";
2
+ import Handler from "./handler/base/handler";
3
+ export default interface PluginSpec {
4
+ readonly config: PluginConfig;
5
+ readonly onLoad: () => Promise<void>;
6
+ readonly onUnload: () => Promise<void>;
7
+ readonly handlers: Map<string, Handler>;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,19 +1,17 @@
1
1
  {
2
2
  "name": "@d-najd/universal-media-tracker-sdk",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "main": "dist/index.js",
5
- "module": "dist/index.mjs",
6
5
  "types": "dist/types/index.d.ts",
7
6
  "files": [
8
7
  "dist"
9
8
  ],
10
9
  "scripts": {
11
- "build": "tsup src/index.ts --format cjs,esm --dts --clean"
10
+ "build": "tsc"
12
11
  },
13
12
  "license": "MIT",
14
13
  "type": "module",
15
14
  "devDependencies": {
16
- "tsup": "^8.5.1",
17
15
  "typescript": "^5.9.3"
18
16
  }
19
17
  }
package/dist/index.cjs DELETED
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var index_exports = {};
22
- __export(index_exports, {
23
- default: () => Plugin
24
- });
25
- module.exports = __toCommonJS(index_exports);
26
- var Plugin = class {
27
- config;
28
- handlers = /* @__PURE__ */ new Map();
29
- counter = 0;
30
- loaded = false;
31
- constructor(options) {
32
- this.config = options;
33
- }
34
- /**
35
- * Don't define handlers here, they are part of the spec
36
- */
37
- onLoad(callback) {
38
- this.onLoadCallback = async () => {
39
- await callback();
40
- this.loaded = true;
41
- };
42
- }
43
- onUnload(callback) {
44
- this.onUnloadCallback = async () => {
45
- await callback();
46
- this.loaded = false;
47
- };
48
- }
49
- /**
50
- * @see Handler
51
- */
52
- defineResourceHandler(handler) {
53
- const newHandler = {
54
- id: `${this.config.id}-custom-${this.counter++}`,
55
- name: `${this.config.name}`,
56
- ...handler
57
- };
58
- this.handlers.set(newHandler.id, newHandler);
59
- return newHandler.id;
60
- }
61
- /**
62
- * Defines or overrides if a catalog handler has already been defined, if
63
- * you use multiple catalog handlers use `defineMediaHandler` instead
64
- * @see defineResourceHandler
65
- */
66
- defineCatalogHandler(handler) {
67
- const newHandler = {
68
- id: `${this.config.id}-catalog-handler`,
69
- ...handler,
70
- type: "catalog-request"
71
- };
72
- return this.defineResourceHandler(newHandler);
73
- }
74
- // Used internally, private since its internal api
75
- // noinspection JSUnusedLocalSymbols
76
- getSpec() {
77
- if (!this.loaded) {
78
- throw Error("The plugin must be loaded before getting it's spec");
79
- }
80
- return {
81
- config: this.config,
82
- handlers: this.handlers,
83
- onLoad: this.onLoadCallback,
84
- onUnload: this.onUnloadCallback
85
- };
86
- }
87
- onLoadCallback = async () => {
88
- this.loaded = true;
89
- };
90
- onUnloadCallback = async () => {
91
- this.loaded = false;
92
- };
93
- };
package/dist/index.d.cts DELETED
@@ -1,82 +0,0 @@
1
- type PluginConfig = {
2
- readonly id: string;
3
- readonly name: string;
4
- readonly version: string;
5
- };
6
-
7
- type BaseHandlerArgs = {
8
- readonly search?: string;
9
- readonly skip?: number;
10
- readonly pageSize?: number;
11
- };
12
-
13
- type BaseHandlerResponse<T = any> = {
14
- readonly data: T[];
15
- };
16
-
17
- type Handler<T = any, R = any> = {
18
- id: string;
19
- type: string;
20
- callback: (args: T) => Promise<R>;
21
- };
22
-
23
- type ResourceHandlerType = 'catalog-request';
24
-
25
- type ResourceType = 'movie' | 'series';
26
-
27
- type ResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = Handler<T, R> & {
28
- /**
29
- * Displayed in the app
30
- */
31
- name: string;
32
- type: ResourceHandlerType | string;
33
- resourceType: ResourceType | string;
34
- };
35
-
36
- type CreateResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = Omit<ResourceHandler<T, R>, 'id' | 'name'> & {
37
- id?: string;
38
- name?: string;
39
- };
40
-
41
- type CatalogHandlerArgs = BaseHandlerArgs & {};
42
-
43
- type MetaPreview = {
44
- readonly id: string;
45
- readonly type: string;
46
- readonly name: string;
47
- readonly poster: string;
48
- };
49
-
50
- type CatalogHandlerResponse = BaseHandlerResponse<MetaPreview> & {};
51
-
52
- type CreateCatalogHandler = Omit<CreateResourceHandler<CatalogHandlerArgs, CatalogHandlerResponse>, 'type'> & {
53
- type?: ResourceHandlerType | string;
54
- };
55
-
56
- declare class Plugin {
57
- readonly config: PluginConfig;
58
- private handlers;
59
- private counter;
60
- private loaded;
61
- constructor(options: PluginConfig);
62
- /**
63
- * Don't define handlers here, they are part of the spec
64
- */
65
- onLoad(callback: () => Promise<void>): void;
66
- onUnload(callback: () => Promise<void>): void;
67
- /**
68
- * @see Handler
69
- */
70
- defineResourceHandler(handler: CreateResourceHandler): string;
71
- /**
72
- * Defines or overrides if a catalog handler has already been defined, if
73
- * you use multiple catalog handlers use `defineMediaHandler` instead
74
- * @see defineResourceHandler
75
- */
76
- defineCatalogHandler(handler: CreateCatalogHandler): string;
77
- private getSpec;
78
- private onLoadCallback;
79
- private onUnloadCallback;
80
- }
81
-
82
- export { Plugin as default };