@dimah-s3/server 1.0.2 → 1.1.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 (100) hide show
  1. package/README.md +7 -3
  2. package/dist/adapters/express.js +16 -9
  3. package/dist/adapters/express.js.map +1 -1
  4. package/dist/adapters/fastify.js +16 -9
  5. package/dist/adapters/fastify.js.map +1 -1
  6. package/dist/adapters/hono.d.ts +1 -1
  7. package/dist/adapters/hono.js.map +1 -1
  8. package/dist/adapters/node.d.ts +1 -1
  9. package/dist/adapters/node.js +16 -9
  10. package/dist/adapters/node.js.map +1 -1
  11. package/dist/api/index.js +742 -388
  12. package/dist/api/index.js.map +1 -1
  13. package/dist/api/router.d.ts.map +1 -1
  14. package/dist/api/routes/catalog.d.ts +9 -0
  15. package/dist/api/routes/catalog.d.ts.map +1 -0
  16. package/dist/api/routes/confirm.d.ts +3 -4
  17. package/dist/api/routes/confirm.d.ts.map +1 -1
  18. package/dist/api/routes/delete-batch.d.ts +14 -0
  19. package/dist/api/routes/delete-batch.d.ts.map +1 -0
  20. package/dist/api/routes/delete.d.ts +2 -2
  21. package/dist/api/routes/delete.d.ts.map +1 -1
  22. package/dist/api/routes/download.d.ts +8 -8
  23. package/dist/api/routes/download.d.ts.map +1 -1
  24. package/dist/api/routes/file.d.ts +20 -0
  25. package/dist/api/routes/file.d.ts.map +1 -0
  26. package/dist/api/routes/index.d.ts +76 -50
  27. package/dist/api/routes/index.d.ts.map +1 -1
  28. package/dist/api/routes/multipart/abort.d.ts +2 -2
  29. package/dist/api/routes/multipart/abort.d.ts.map +1 -1
  30. package/dist/api/routes/multipart/complete.d.ts +2 -2
  31. package/dist/api/routes/multipart/complete.d.ts.map +1 -1
  32. package/dist/api/routes/multipart/init.d.ts +10 -12
  33. package/dist/api/routes/multipart/init.d.ts.map +1 -1
  34. package/dist/api/routes/multipart/list-parts.d.ts +2 -2
  35. package/dist/api/routes/multipart/list-parts.d.ts.map +1 -1
  36. package/dist/api/routes/multipart/part.d.ts +4 -6
  37. package/dist/api/routes/multipart/part.d.ts.map +1 -1
  38. package/dist/api/routes/upload.d.ts +10 -14
  39. package/dist/api/routes/upload.d.ts.map +1 -1
  40. package/dist/dimah-s3.d.ts +19 -8
  41. package/dist/dimah-s3.d.ts.map +1 -1
  42. package/dist/errors.d.ts +5 -4
  43. package/dist/errors.d.ts.map +1 -1
  44. package/dist/helpers/best-effort.d.ts +6 -0
  45. package/dist/helpers/best-effort.d.ts.map +1 -0
  46. package/dist/helpers/constraints.d.ts +16 -0
  47. package/dist/helpers/constraints.d.ts.map +1 -0
  48. package/dist/helpers/expires.d.ts +2 -2
  49. package/dist/helpers/features.d.ts +12 -29
  50. package/dist/helpers/features.d.ts.map +1 -1
  51. package/dist/helpers/finalize-confirmed.d.ts +19 -0
  52. package/dist/helpers/finalize-confirmed.d.ts.map +1 -0
  53. package/dist/helpers/head-object.d.ts.map +1 -1
  54. package/dist/helpers/hooks.d.ts +7 -1
  55. package/dist/helpers/hooks.d.ts.map +1 -1
  56. package/dist/helpers/index.d.ts +12 -9
  57. package/dist/helpers/index.d.ts.map +1 -1
  58. package/dist/helpers/list-parts.d.ts +5 -0
  59. package/dist/helpers/list-parts.d.ts.map +1 -1
  60. package/dist/helpers/logger.d.ts +4 -0
  61. package/dist/helpers/logger.d.ts.map +1 -0
  62. package/dist/helpers/previous-key.d.ts +5 -0
  63. package/dist/helpers/previous-key.d.ts.map +1 -0
  64. package/dist/helpers/resolve-route.d.ts +36 -0
  65. package/dist/helpers/resolve-route.d.ts.map +1 -0
  66. package/dist/helpers/resolve-target.d.ts +25 -14
  67. package/dist/helpers/resolve-target.d.ts.map +1 -1
  68. package/dist/index.d.ts +7 -2
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +1017 -477
  71. package/dist/index.js.map +1 -1
  72. package/dist/plugin/apply-plugins.d.ts +9 -4
  73. package/dist/plugin/apply-plugins.d.ts.map +1 -1
  74. package/dist/plugin/hook-registry.d.ts +13 -4
  75. package/dist/plugin/hook-registry.d.ts.map +1 -1
  76. package/dist/plugin/index.d.ts +1 -2
  77. package/dist/plugin/index.d.ts.map +1 -1
  78. package/dist/plugin/types.d.ts +12 -7
  79. package/dist/plugin/types.d.ts.map +1 -1
  80. package/dist/plugins.d.ts +5 -3
  81. package/dist/plugins.d.ts.map +1 -1
  82. package/dist/plugins.js +951 -475
  83. package/dist/plugins.js.map +1 -1
  84. package/dist/put.d.ts +15 -0
  85. package/dist/put.d.ts.map +1 -0
  86. package/dist/route.d.ts +13 -0
  87. package/dist/route.d.ts.map +1 -0
  88. package/dist/types/config.d.ts +190 -95
  89. package/dist/types/config.d.ts.map +1 -1
  90. package/dist/types/hook-contexts.d.ts +124 -87
  91. package/dist/types/hook-contexts.d.ts.map +1 -1
  92. package/dist/types/index.d.ts +3 -2
  93. package/dist/types/index.d.ts.map +1 -1
  94. package/package.json +11 -11
  95. package/dist/api/assert-feature-enabled.d.ts +0 -5
  96. package/dist/api/assert-feature-enabled.d.ts.map +0 -1
  97. package/dist/helpers/resolve-object-acl.d.ts +0 -10
  98. package/dist/helpers/resolve-object-acl.d.ts.map +0 -1
  99. package/dist/helpers/resolve-request-acl.d.ts +0 -10
  100. package/dist/helpers/resolve-request-acl.d.ts.map +0 -1
@@ -1,9 +1,14 @@
1
- import type { DimahS3Config } from "../types/config";
1
+ import type { DimahS3Config } from "../types";
2
2
  import { type AppliedPlugins, type DimahS3Plugin, type PluginContextMap } from "./types";
3
3
  /**
4
- * Validate plugins, build context map, collect endpoints, run `init`,
5
- * and merge hooks into config.
6
- * Plugin hooks run in array order; user hooks run last.
4
+ * Validate plugins, build context map, collect endpoints, validate routes,
5
+ * run `init`, and merge hooks into each route.
6
+ *
7
+ * Guard / `*Guard` hooks: plugins first (array order), then user.
8
+ * Lifecycle `on*` hooks: user first, then plugins, so `db().markActive`
9
+ * runs last and confirm rollback can still `DeleteObject`.
10
+ *
11
+ * Hooks are not merged onto a feature that is off for that route.
7
12
  */
8
13
  export declare function applyPlugins<const P extends readonly DimahS3Plugin[], C extends Record<string, unknown> = PluginContextMap<P>>(config: DimahS3Config & {
9
14
  plugins?: P;
@@ -1 +1 @@
1
- {"version":3,"file":"apply-plugins.d.ts","sourceRoot":"","sources":["../../src/plugin/apply-plugins.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAyB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,SAAS,CAAC;AA0CjB;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,KAAK,CAAC,CAAC,SAAS,SAAS,aAAa,EAAE,EACxC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EACvD,MAAM,EAAE,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,CAAC,CAAA;CAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CA0I5D"}
1
+ {"version":3,"file":"apply-plugins.d.ts","sourceRoot":"","sources":["../../src/plugin/apply-plugins.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,aAAa,EAGd,MAAM,SAAS,CAAC;AAQjB,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,SAAS,CAAC;AA0FjB;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,KAAK,CAAC,CAAC,SAAS,SAAS,aAAa,EAAE,EACxC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EACvD,MAAM,EAAE,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,CAAC,CAAA;CAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CA4H5D"}
@@ -1,12 +1,21 @@
1
1
  /**
2
- * Single source of truth for which hook keys plugins may contribute per
3
- * feature. {@link applyPlugins} merges these ahead of user config hooks.
2
+ * Hook keys a plugin may contribute per route feature.
3
+ * {@link applyPlugins} merges these ahead of user config hooks.
4
4
  */
5
5
  export declare const FEATURE_HOOK_KEYS: {
6
6
  readonly upload: readonly ["guard", "onPresigned", "confirmGuard", "onConfirmed"];
7
7
  readonly download: readonly ["guard", "onPresigned"];
8
8
  readonly delete: readonly ["guard", "onDeleted"];
9
- readonly multipart: readonly ["initGuard", "partGuard", "completeGuard", "abortGuard", "listGuard", "onInit", "onComplete", "onAbort", "onList"];
10
9
  };
11
- export type FeatureName = keyof typeof FEATURE_HOOK_KEYS;
10
+ /** Nested under `upload.multipart` init/complete share upload hooks. */
11
+ export declare const MULTIPART_HOOK_KEYS: readonly ["onInit", "guard", "onAbort", "onList"];
12
+ /** Lifecycle `on*` keys — merged user-first, plugins last (persist last). */
13
+ export declare const LIFECYCLE_FEATURE_HOOK_KEYS: {
14
+ readonly upload: readonly ["onPresigned", "onConfirmed"];
15
+ readonly download: readonly ["onPresigned"];
16
+ readonly delete: readonly ["onDeleted"];
17
+ };
18
+ export declare const LIFECYCLE_MULTIPART_HOOK_KEYS: readonly ["onInit", "onAbort", "onList"];
19
+ export type FeatureHookKeyMap = typeof FEATURE_HOOK_KEYS;
20
+ export type MultipartHookKey = (typeof MULTIPART_HOOK_KEYS)[number];
12
21
  //# sourceMappingURL=hook-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook-registry.d.ts","sourceRoot":"","sources":["../../src/plugin/hook-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,iBAAiB;aAC5B,MAAM,YAAG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa;aAC9D,QAAQ,YAAG,OAAO,EAAE,aAAa;aACjC,MAAM,YAAG,OAAO,EAAE,WAAW;aAC7B,SAAS,YACP,WAAW,EACX,WAAW,EACX,eAAe,EACf,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,QAAQ;CAEF,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,iBAAiB,CAAC"}
1
+ {"version":3,"file":"hook-registry.d.ts","sourceRoot":"","sources":["../../src/plugin/hook-registry.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;CAU7B,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,mDAKuB,CAAC;AAExD,6EAA6E;AAC7E,eAAO,MAAM,2BAA2B;aACtC,MAAM,YAAG,aAAa,EAAE,aAAa;aACrC,QAAQ,YAAG,aAAa;aACxB,MAAM,YAAG,WAAW;CACZ,CAAC;AAEX,eAAO,MAAM,6BAA6B,YACxC,QAAQ,EACR,SAAS,EACT,QAAQ,CACA,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  export { applyPlugins } from "./apply-plugins";
2
2
  export { chainHooks } from "./chain-hooks";
3
3
  export { definePlugin } from "./define-plugin";
4
- export { FEATURE_HOOK_KEYS } from "./hook-registry";
5
- export type { FeatureName } from "./hook-registry";
4
+ export { FEATURE_HOOK_KEYS, MULTIPART_HOOK_KEYS, LIFECYCLE_FEATURE_HOOK_KEYS, LIFECYCLE_MULTIPART_HOOK_KEYS, } from "./hook-registry";
6
5
  export { RESERVED_PLUGIN_IDS, type AppliedPlugins, type DimahS3Plugin, type DimahS3PluginHooks, type PluginContextMap, type PluginEndpointMap, type PluginInitEnv, type ReservedPluginId, } from "./types";
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAC"}
@@ -1,19 +1,24 @@
1
1
  import type { Endpoint } from "better-call";
2
2
  import type { DeleteConfig, DownloadConfig, MultipartConfig, UploadConfig, DimahS3Config, ResolvedDimahS3Config } from "../types/config";
3
+ import type { FeatureHookKeyMap, MultipartHookKey } from "./hook-registry";
4
+ type HookFields<T, K extends keyof T> = Pick<T, K>;
3
5
  /**
4
6
  * Hook fields a plugin may contribute. Scalars like `method` /
5
- * `prefix` / `resolveKey` / `acl` stay user-owned on {@link DimahS3Config}.
7
+ * `object` / `acl` stay user-owned on the route `upload` feature.
8
+ * Keys come from {@link FEATURE_HOOK_KEYS} / {@link MULTIPART_HOOK_KEYS}.
6
9
  */
7
10
  export type DimahS3PluginHooks = {
8
11
  guard?: DimahS3Config["guard"];
9
- upload?: Pick<UploadConfig, "guard" | "onPresigned" | "confirmGuard" | "onConfirmed">;
10
- download?: Pick<DownloadConfig, "guard" | "onPresigned">;
11
- delete?: Pick<DeleteConfig, "guard" | "onDeleted">;
12
- multipart?: Pick<MultipartConfig, "initGuard" | "partGuard" | "completeGuard" | "abortGuard" | "listGuard" | "onInit" | "onComplete" | "onAbort" | "onList">;
12
+ upload?: HookFields<UploadConfig, FeatureHookKeyMap["upload"][number]> & {
13
+ multipart?: HookFields<MultipartConfig, MultipartHookKey>;
14
+ };
15
+ download?: HookFields<DownloadConfig, FeatureHookKeyMap["download"][number]>;
16
+ delete?: HookFields<DeleteConfig, FeatureHookKeyMap["delete"][number]>;
13
17
  };
14
18
  /**
15
19
  * Environment passed to {@link DimahS3Plugin.init}.
16
- * Config is pre-merge (user config only) — use for feature-flag checks.
20
+ * Config is pre-merge (user config only) — use `isFeatureOn` for
21
+ * feature-flag checks. Routes are already validated before `init` runs.
17
22
  */
18
23
  export type PluginInitEnv = {
19
24
  /** User config before plugin hooks are merged — read-only. */
@@ -75,7 +80,7 @@ export type PluginEndpointMap<P extends readonly DimahS3Plugin[]> = P extends re
75
80
  } ? E extends Record<string, Endpoint> ? E : Record<string, never> : Record<string, never>>;
76
81
  type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : Record<string, never>;
77
82
  /** Keys reserved on the dimahS3 instance — plugins may not use these as ids. */
78
- export declare const RESERVED_PLUGIN_IDS: readonly ["handler", "api", "context", "getPlugin", "$ERROR_CODES", "$Infer"];
83
+ export declare const RESERVED_PLUGIN_IDS: readonly ["handler", "api", "context", "getPlugin", "$ERROR_CODES", "$Infer", "upload", "confirm", "download", "catalog", "file", "delete", "deleteBatch", "put", "multipart"];
79
84
  export type ReservedPluginId = (typeof RESERVED_PLUGIN_IDS)[number];
80
85
  export {};
81
86
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugin/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugin/types.ts"],"names":[],"mappings":"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"}
package/dist/plugins.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- export { applyPlugins, chainHooks, definePlugin, FEATURE_HOOK_KEYS, RESERVED_PLUGIN_IDS, } from "./plugin";
2
- export type { AppliedPlugins, DimahS3Plugin, DimahS3PluginHooks, FeatureName, PluginContextMap, PluginEndpointMap, PluginInitEnv, ReservedPluginId, } from "./plugin";
1
+ export { applyPlugins, chainHooks, definePlugin, FEATURE_HOOK_KEYS, MULTIPART_HOOK_KEYS, LIFECYCLE_FEATURE_HOOK_KEYS, LIFECYCLE_MULTIPART_HOOK_KEYS, RESERVED_PLUGIN_IDS, } from "./plugin";
2
+ export type { AppliedPlugins, DimahS3Plugin, DimahS3PluginHooks, PluginContextMap, PluginEndpointMap, PluginInitEnv, ReservedPluginId, } from "./plugin";
3
3
  export { createS3Endpoint, createS3Middleware } from "./api";
4
4
  export type { CoreEndpoints, S3EndpointContext } from "./api";
5
5
  export { CORE_ENDPOINT_NAMES } from "./api";
6
- export type { DeleteGuardContext, DeleteOnDeletedContext, DimahS3Config, DownloadConfig, DownloadOnPresignedContext, DownloadPresignGuardContext, FeatureToggle, GuardContext, KeyPolicy, KeyPrefix, MultipartAbortGuardContext, MultipartCompleteGuardContext, MultipartConfig, MultipartInitGuardContext, MultipartListGuardContext, MultipartOnAbortContext, MultipartOnCompleteContext, MultipartOnInitContext, MultipartOnListContext, MultipartPartGuardContext, MultipartUploadContext, ResolveKeyContext, ResolvedDimahS3Config, UploadConfig, UploadConfirmGuardContext, UploadOnConfirmedContext, UploadOnPresignedContext, UploadPresignGuardContext, } from "./types";
6
+ export { ROUTE_FEATURES, ROUTE_OPERATIONS } from "./types";
7
+ export { isFeatureOn } from "./helpers";
8
+ export type { DeleteConfig, DeleteGuardContext, DeleteOnDeletedContext, DimahS3Config, DimahS3RouteConfig, DisabledFeature, DownloadConfig, DownloadGuardContext, DownloadOnPresignedContext, EnabledFeature, EnabledUploadConfig, FeatureToggle, GuardContext, MultipartConfig, MultipartOnAbortContext, MultipartOnInitContext, MultipartOnListContext, MultipartGuardContext, MultipartUploadContext, ObjectFile, OpenedRoute, ResolvedDimahS3Config, ResolvedFeature, ResolvedRoute, ResolvedUploadConfig, RouteFeature, RouteGuardContext, RouteOperation, StoredObjectContext, UploadConfig, UploadConfirmGuardContext, UploadGuardContext, UploadObjectContext, UploadObjectInfo, UploadOnConfirmedContext, UploadOnPresignedContext, } from "./types";
7
9
  //# sourceMappingURL=plugins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAE5C,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,SAAS,EACT,SAAS,EACT,0BAA0B,EAC1B,6BAA6B,EAC7B,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,SAAS,CAAC"}