@strapi/strapi 5.42.1 → 5.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/admin/active-user.d.ts +15 -0
- package/dist/cli/commands/admin/active-user.d.ts.map +1 -0
- package/dist/cli/commands/admin/block-user.d.ts +15 -0
- package/dist/cli/commands/admin/block-user.d.ts.map +1 -0
- package/dist/cli/commands/admin/delete-user.d.ts +14 -0
- package/dist/cli/commands/admin/delete-user.d.ts.map +1 -0
- package/dist/cli/commands/admin/list-users.d.ts +11 -0
- package/dist/cli/commands/admin/list-users.d.ts.map +1 -0
- package/dist/cli/commands/export/action.d.ts.map +1 -1
- package/dist/cli/commands/import/action.d.ts.map +1 -1
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/transfer/action.d.ts +1 -0
- package/dist/cli/commands/transfer/action.d.ts.map +1 -1
- package/dist/cli/commands/transfer/command.d.ts.map +1 -1
- package/dist/cli/utils/data-transfer.d.ts +6 -4
- package/dist/cli/utils/data-transfer.d.ts.map +1 -1
- package/dist/cli/utils/helpers.d.ts +15 -1
- package/dist/cli/utils/helpers.d.ts.map +1 -1
- package/dist/node/build.d.ts.map +1 -1
- package/dist/node/develop.d.ts.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/package.json.mjs +1 -1
- package/dist/src/cli/commands/admin/active-user.js +73 -0
- package/dist/src/cli/commands/admin/active-user.js.map +1 -0
- package/dist/src/cli/commands/admin/active-user.mjs +70 -0
- package/dist/src/cli/commands/admin/active-user.mjs.map +1 -0
- package/dist/src/cli/commands/admin/block-user.js +73 -0
- package/dist/src/cli/commands/admin/block-user.js.map +1 -0
- package/dist/src/cli/commands/admin/block-user.mjs +70 -0
- package/dist/src/cli/commands/admin/block-user.mjs.map +1 -0
- package/dist/src/cli/commands/admin/delete-user.js +88 -0
- package/dist/src/cli/commands/admin/delete-user.js.map +1 -0
- package/dist/src/cli/commands/admin/delete-user.mjs +85 -0
- package/dist/src/cli/commands/admin/delete-user.mjs.map +1 -0
- package/dist/src/cli/commands/admin/list-users.js +62 -0
- package/dist/src/cli/commands/admin/list-users.js.map +1 -0
- package/dist/src/cli/commands/admin/list-users.mjs +59 -0
- package/dist/src/cli/commands/admin/list-users.mjs.map +1 -0
- package/dist/src/cli/commands/export/action.js +2 -2
- package/dist/src/cli/commands/export/action.js.map +1 -1
- package/dist/src/cli/commands/export/action.mjs +3 -3
- package/dist/src/cli/commands/export/action.mjs.map +1 -1
- package/dist/src/cli/commands/import/action.js +3 -3
- package/dist/src/cli/commands/import/action.js.map +1 -1
- package/dist/src/cli/commands/import/action.mjs +4 -4
- package/dist/src/cli/commands/import/action.mjs.map +1 -1
- package/dist/src/cli/commands/index.js +8 -0
- package/dist/src/cli/commands/index.js.map +1 -1
- package/dist/src/cli/commands/index.mjs +34 -26
- package/dist/src/cli/commands/index.mjs.map +1 -1
- package/dist/src/cli/commands/transfer/action.js +105 -6
- package/dist/src/cli/commands/transfer/action.js.map +1 -1
- package/dist/src/cli/commands/transfer/action.mjs +107 -8
- package/dist/src/cli/commands/transfer/action.mjs.map +1 -1
- package/dist/src/cli/commands/transfer/command.js +1 -1
- package/dist/src/cli/commands/transfer/command.js.map +1 -1
- package/dist/src/cli/commands/transfer/command.mjs +1 -1
- package/dist/src/cli/commands/transfer/command.mjs.map +1 -1
- package/dist/src/cli/utils/data-transfer.js +69 -21
- package/dist/src/cli/utils/data-transfer.js.map +1 -1
- package/dist/src/cli/utils/data-transfer.mjs +70 -22
- package/dist/src/cli/utils/data-transfer.mjs.map +1 -1
- package/dist/src/cli/utils/helpers.js +36 -1
- package/dist/src/cli/utils/helpers.js.map +1 -1
- package/dist/src/cli/utils/helpers.mjs +34 -2
- package/dist/src/cli/utils/helpers.mjs.map +1 -1
- package/dist/src/node/build.js +10 -5
- package/dist/src/node/build.js.map +1 -1
- package/dist/src/node/build.mjs +10 -5
- package/dist/src/node/build.mjs.map +1 -1
- package/dist/src/node/develop.js +194 -148
- package/dist/src/node/develop.js.map +1 -1
- package/dist/src/node/develop.mjs +194 -148
- package/dist/src/node/develop.mjs.map +1 -1
- package/dist/src/node/webpack/config.js +2 -2
- package/dist/src/node/webpack/config.js.map +1 -1
- package/dist/src/node/webpack/config.mjs +2 -2
- package/dist/src/node/webpack/config.mjs.map +1 -1
- package/package.json +22 -22
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StrapiCommand } from '../../types';
|
|
2
|
+
interface CmdOptions {
|
|
3
|
+
email?: string;
|
|
4
|
+
active?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Change a user's active status
|
|
8
|
+
*/
|
|
9
|
+
declare const action: (cmdOptions?: CmdOptions) => Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* `$ strapi admin:active-user`
|
|
12
|
+
*/
|
|
13
|
+
declare const command: StrapiCommand;
|
|
14
|
+
export { action, command };
|
|
15
|
+
//# sourceMappingURL=active-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-user.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/admin/active-user.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8CD;;GAEG;AACH,QAAA,MAAM,MAAM,gBAAsB,UAAU,kBAgB3C,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,aAOd,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StrapiCommand } from '../../types';
|
|
2
|
+
interface CmdOptions {
|
|
3
|
+
email?: string;
|
|
4
|
+
block?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Change a user's block status
|
|
8
|
+
*/
|
|
9
|
+
declare const action: (cmdOptions?: CmdOptions) => Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* `$ strapi admin:block-user`
|
|
12
|
+
*/
|
|
13
|
+
declare const command: StrapiCommand;
|
|
14
|
+
export { action, command };
|
|
15
|
+
//# sourceMappingURL=block-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-user.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/admin/block-user.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA4CD;;GAEG;AACH,QAAA,MAAM,MAAM,gBAAsB,UAAU,kBAgB3C,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,aAOd,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StrapiCommand } from '../../types';
|
|
2
|
+
interface CmdOptions {
|
|
3
|
+
email?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Delete an admin user
|
|
7
|
+
*/
|
|
8
|
+
declare const action: (cmdOptions?: CmdOptions) => Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* `$ strapi admin:delete-user`
|
|
11
|
+
*/
|
|
12
|
+
declare const command: StrapiCommand;
|
|
13
|
+
export { action, command };
|
|
14
|
+
//# sourceMappingURL=delete-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-user.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/admin/delete-user.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwDD;;GAEG;AACH,QAAA,MAAM,MAAM,gBAAsB,UAAU,kBA8B3C,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,aAMd,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { StrapiCommand } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* List admin users
|
|
4
|
+
*/
|
|
5
|
+
declare const action: () => Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* `$ strapi admin:list-users`
|
|
8
|
+
*/
|
|
9
|
+
declare const command: StrapiCommand;
|
|
10
|
+
export { action, command };
|
|
11
|
+
//# sourceMappingURL=list-users.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-users.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/admin/list-users.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,QAAA,MAAM,MAAM,qBAsCX,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,aAKd,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/export/action.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,MAAM,IAAI,kBAAkB,EAI7B,MAAM,uBAAuB,CAAC;AA8B/B,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;+BACyB,UAAU;AAAtC,
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/export/action.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,MAAM,IAAI,kBAAkB,EAI7B,MAAM,uBAAuB,CAAC;AA8B/B,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;+BACyB,UAAU;AAAtC,wBAkGE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/import/action.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,MAAM,IAAI,kBAAkB,EAI7B,MAAM,uBAAuB,CAAC;AAgC/B,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;GAIG;+BACyB,UAAU;AAAtC,
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/import/action.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,MAAM,IAAI,kBAAkB,EAI7B,MAAM,uBAAuB,CAAC;AAgC/B,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;GAIG;+BACyB,UAAU;AAAtC,wBA6GE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,QAAQ,EAAE,aAAa,EAoCnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/transfer/action.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/transfer/action.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,IAAI,kBAAkB,EAAgC,MAAM,uBAAuB,CAAC;AA2CnG,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,GAAG,CAAC;IACR,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AACD;;;;GAIG;+BACyB,UAAU;AAAtC,wBAuPE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/transfer/command.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/transfer/command.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,QAAA,MAAM,OAAO,mCAmPZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -7,7 +7,7 @@ declare const exitMessageText: (process: string, error?: boolean) => string;
|
|
|
7
7
|
declare const getDefaultExportName: () => string;
|
|
8
8
|
type ResultData = engineDataTransfer.ITransferResults<engineDataTransfer.ISourceProvider, engineDataTransfer.IDestinationProvider>['engine'];
|
|
9
9
|
declare const buildTransferTable: (resultData: ResultData) => Table.Table | undefined;
|
|
10
|
-
declare const
|
|
10
|
+
declare const isIgnoredContentType: (type: string) => boolean;
|
|
11
11
|
declare const abortTransfer: ({ engine, strapi, }: {
|
|
12
12
|
engine: engineDataTransfer.TransferEngine;
|
|
13
13
|
strapi: Core.Strapi;
|
|
@@ -20,7 +20,7 @@ declare const throttleOption: Option;
|
|
|
20
20
|
declare const excludeOption: Option;
|
|
21
21
|
declare const onlyOption: Option;
|
|
22
22
|
declare const validateExcludeOnly: (command: Command) => void;
|
|
23
|
-
declare const formatDiagnostic: (operation: string,
|
|
23
|
+
declare const formatDiagnostic: (operation: string, verbose?: boolean) => Parameters<engineDataTransfer.TransferEngine['diagnostics']['onDiagnostic']>[0];
|
|
24
24
|
type Loaders = {
|
|
25
25
|
[key in engineDataTransfer.TransferStage]: ora.Ora;
|
|
26
26
|
};
|
|
@@ -30,6 +30,8 @@ type Data = {
|
|
|
30
30
|
endTime?: number;
|
|
31
31
|
bytes?: number;
|
|
32
32
|
count?: number;
|
|
33
|
+
totalBytes?: number;
|
|
34
|
+
totalCount?: number;
|
|
33
35
|
};
|
|
34
36
|
};
|
|
35
37
|
declare const loadersFactory: (defaultLoaders?: Loaders) => {
|
|
@@ -58,6 +60,6 @@ declare const getAssetsBackupHandler: (engine: engineDataTransfer.TransferEngine
|
|
|
58
60
|
action: string;
|
|
59
61
|
}) => (context: engineDataTransfer.ErrorHandlerContext, next: (ctx: engineDataTransfer.ErrorHandlerContext) => void) => Promise<void>;
|
|
60
62
|
declare const shouldSkipStage: (opts: Partial<engineDataTransfer.ITransferEngineOptions>, dataKind: engineDataTransfer.TransferFilterPreset) => boolean;
|
|
61
|
-
declare const parseRestoreFromOptions: (opts: Partial<engineDataTransfer.ITransferEngineOptions
|
|
62
|
-
export { loadersFactory, buildTransferTable, getDefaultExportName, getTransferTelemetryPayload,
|
|
63
|
+
declare const parseRestoreFromOptions: (opts: Partial<engineDataTransfer.ITransferEngineOptions>, strapi: Core.Strapi) => import("@strapi/data-transfer/dist/strapi/providers/local-destination/strategies/restore").IRestoreOptions;
|
|
64
|
+
export { loadersFactory, buildTransferTable, getDefaultExportName, getTransferTelemetryPayload, isIgnoredContentType, createStrapiInstance, excludeOption, exitMessageText, onlyOption, throttleOption, validateExcludeOnly, formatDiagnostic, abortTransfer, setSignalHandler, getDiffHandler, getAssetsBackupHandler, shouldSkipStage, parseRestoreFromOptions, };
|
|
63
65
|
//# sourceMappingURL=data-transfer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-transfer.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/data-transfer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-transfer.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/data-transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,20 @@ import type { Command } from 'commander';
|
|
|
4
4
|
* Convert bytes to a human readable formatted string, for example "1024" becomes "1KB"
|
|
5
5
|
*/
|
|
6
6
|
declare const readableBytes: (bytes: number, decimals?: number, padStart?: number) => string;
|
|
7
|
+
/**
|
|
8
|
+
* Convert elapsed time to a human readable formatted string, for example "1024" becomes "1s"
|
|
9
|
+
*/
|
|
10
|
+
declare const readableTime: (elapsedTime: number, decimals?: number, padStart?: number) => string;
|
|
11
|
+
/**
|
|
12
|
+
* Separates transfer progress segments (count, size, elapsed, rate, ETA) instead of nested
|
|
13
|
+
* parentheses — easier to scan in a single terminal line.
|
|
14
|
+
*/
|
|
15
|
+
declare const TRANSFER_PROGRESS_FIELD_SEP = " \u00B7 ";
|
|
16
|
+
/**
|
|
17
|
+
* Stage / prep timing: plain `readableTime` (e.g. `1.2s`) when no ETA; with ETA, append
|
|
18
|
+
* `, ~4.0s remaining` (`~` = approximate). Same base format for every stage; remaining is additive.
|
|
19
|
+
*/
|
|
20
|
+
declare const formatElapsedAndMaybeRemainingLabel: (elapsedMs: number, remainingMs: number | null) => string;
|
|
7
21
|
interface ExitWithOptions {
|
|
8
22
|
logger?: Console;
|
|
9
23
|
prc?: NodeJS.Process;
|
|
@@ -45,5 +59,5 @@ declare const runAction: (name: string, action: (...args: any[]) => Promise<void
|
|
|
45
59
|
declare const notifyExperimentalCommand: (name: string, { force }?: {
|
|
46
60
|
force?: boolean;
|
|
47
61
|
}) => Promise<void>;
|
|
48
|
-
export { exitWith, assertUrlHasProtocol, ifOptions, readableBytes, runAction, assertCwdContainsStrapiProject, notifyExperimentalCommand, };
|
|
62
|
+
export { exitWith, assertUrlHasProtocol, ifOptions, readableBytes, readableTime, formatElapsedAndMaybeRemainingLabel, TRANSFER_PROGRESS_FIELD_SEP, runAction, assertCwdContainsStrapiProject, notifyExperimentalCommand, };
|
|
49
63
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/helpers.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC;;GAEG;AACH,QAAA,MAAM,aAAa,UAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/helpers.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC;;GAEG;AACH,QAAA,MAAM,aAAa,UAAW,MAAM,iDAQnC,CAAC;AAQF;;GAEG;AACH,QAAA,MAAM,YAAY,gBAAiB,MAAM,2CAA+B,MAkBvE,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,2BAA2B,aAAQ,CAAC;AAE1C;;;GAGG;AACH,QAAA,MAAM,mCAAmC,cAC5B,MAAM,eACJ,MAAM,GAAG,IAAI,KACzB,MAG0B,CAAC;AAE9B,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,QAAA,MAAM,QAAQ,SAAU,MAAM,YAAY,MAAM,GAAG,MAAM,EAAE,YAAW,eAAe,SAkBpF,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,oBAAoB,QAAS,GAAG,aAAa,MAAM,GAAG,MAAM,EAAE,SAwBnE,CAAC;AAEF,KAAK,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AACzE,KAAK,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AACzD,KAAK,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5D;;GAEG;AACH,QAAA,MAAM,SAAS,sBACM,iBAAiB,kBACrB,aAAa,qBACV,gBAAgB,eAEX,OAAO,kBAQ/B,CAAC;AAEF,QAAA,MAAM,8BAA8B,SAAU,MAAM,SAqBnD,CAAC;AAEF,QAAA,MAAM,SAAS,SACN,MAAM,UAAU,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,IAAI,CAAC,eAC9C,OAAO,EAAE,SAWlB,CAAC;AAEJ;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,yBAAyB,SAAgB,MAAM,cAAa;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,kBA6BpF,CAAC;AAEF,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,SAAS,EACT,aAAa,EACb,YAAY,EACZ,mCAAmC,EACnC,2BAA2B,EAC3B,SAAS,EACT,8BAA8B,EAC9B,yBAAyB,GAC1B,CAAC"}
|
package/dist/node/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/node/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/C,UAAU,YAAa,SAAQ,UAAU;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,QAAA,MAAM,KAAK,0CAAiD,YAAY,
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/node/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/C,UAAU,YAAa,SAAQ,UAAU;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,QAAA,MAAM,KAAK,0CAAiD,YAAY,kBAiEvE,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/node/develop.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/node/develop.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAU/C,UAAU,cAAe,SAAQ,UAAU;IACzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA4CD,QAAA,MAAM,OAAO,2EAQV,cAAc,kBAiOhB,CAAC;AAwFF,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/package.json.js
CHANGED
package/dist/package.json.mjs
CHANGED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _ = require('lodash');
|
|
4
|
+
var commander = require('commander');
|
|
5
|
+
var core = require('@strapi/core');
|
|
6
|
+
var helpers = require('../../utils/helpers.js');
|
|
7
|
+
var getInquirer = require('../../utils/get-inquirer.js');
|
|
8
|
+
|
|
9
|
+
const promptQuestions = [
|
|
10
|
+
{
|
|
11
|
+
type: 'input',
|
|
12
|
+
name: 'email',
|
|
13
|
+
message: 'User email?'
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
type: 'input',
|
|
17
|
+
name: 'active',
|
|
18
|
+
message: 'User Active?'
|
|
19
|
+
}
|
|
20
|
+
];
|
|
21
|
+
async function setActive({ email, active }) {
|
|
22
|
+
const appContext = await core.compileStrapi();
|
|
23
|
+
const app = await core.createStrapi(appContext).load();
|
|
24
|
+
const cleanEmail = email?.trim().toLowerCase();
|
|
25
|
+
const cleanActive = active?.trim().toLowerCase();
|
|
26
|
+
if (cleanActive !== 'true' && cleanActive !== 'false') {
|
|
27
|
+
console.error('Invalid active status. Use "true" or "false".');
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
const isActive = cleanActive === 'true';
|
|
31
|
+
const user = await app.admin.services.user.findOneByEmail(cleanEmail);
|
|
32
|
+
if (!user) {
|
|
33
|
+
console.error(`User with email "${cleanEmail}" does not exist`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
await app.admin.services.user.updateById(user.id, {
|
|
38
|
+
isActive
|
|
39
|
+
});
|
|
40
|
+
} catch (err) {
|
|
41
|
+
console.error(err.message);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
console.log(`Successfully set ${cleanEmail} active status to ${cleanActive}`);
|
|
45
|
+
process.exit(0);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Change a user's active status
|
|
49
|
+
*/ const action = async (cmdOptions = {})=>{
|
|
50
|
+
const { email, active } = cmdOptions;
|
|
51
|
+
if (_.isEmpty(email) && _.isEmpty(active) && process.stdin.isTTY) {
|
|
52
|
+
const inquirer = await getInquirer.getInquirer();
|
|
53
|
+
const inquiry = await inquirer.prompt(promptQuestions);
|
|
54
|
+
return setActive(inquiry);
|
|
55
|
+
}
|
|
56
|
+
if (_.isEmpty(email) || _.isEmpty(active)) {
|
|
57
|
+
console.error('Missing required options `email` or `active`');
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
return setActive({
|
|
61
|
+
email,
|
|
62
|
+
active
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* `$ strapi admin:active-user`
|
|
67
|
+
*/ const command = ()=>{
|
|
68
|
+
return commander.createCommand('admin:active-user').alias('admin:active').description("Set a user's active status").option('-e, --email <email>', 'The user email').option('-a, --active <true/false>', 'The user active status').action(helpers.runAction('admin:active-user', action));
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
exports.action = action;
|
|
72
|
+
exports.command = command;
|
|
73
|
+
//# sourceMappingURL=active-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-user.js","sources":["../../../../../src/cli/commands/admin/active-user.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { DistinctQuestion } from 'inquirer';\nimport { createCommand } from 'commander';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { getInquirer } from '../../utils/get-inquirer';\n\ninterface CmdOptions {\n email?: string;\n active?: string;\n}\n\ninterface Answers {\n email: string;\n active: string;\n}\n\nconst promptQuestions: ReadonlyArray<DistinctQuestion<Answers>> = [\n { type: 'input', name: 'email', message: 'User email?' },\n { type: 'input', name: 'active', message: 'User Active?' },\n];\n\nasync function setActive({ email, active }: CmdOptions) {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).load();\n\n const cleanEmail = email?.trim().toLowerCase();\n const cleanActive = active?.trim().toLowerCase();\n\n if (cleanActive !== 'true' && cleanActive !== 'false') {\n console.error('Invalid active status. Use \"true\" or \"false\".');\n process.exit(1);\n }\n\n const isActive = cleanActive === 'true';\n\n const user = await app.admin.services.user.findOneByEmail(cleanEmail);\n\n if (!user) {\n console.error(`User with email \"${cleanEmail}\" does not exist`);\n process.exit(1);\n }\n\n try {\n await app.admin!.services.user.updateById(user.id, {\n isActive,\n });\n } catch (err: any) {\n console.error(err.message);\n process.exit(1);\n }\n\n console.log(`Successfully set ${cleanEmail} active status to ${cleanActive}`);\n process.exit(0);\n}\n\n/**\n * Change a user's active status\n */\nconst action = async (cmdOptions: CmdOptions = {}) => {\n const { email, active } = cmdOptions;\n\n if (_.isEmpty(email) && _.isEmpty(active) && process.stdin.isTTY) {\n const inquirer = await getInquirer();\n const inquiry = await inquirer.prompt(promptQuestions);\n\n return setActive(inquiry);\n }\n\n if (_.isEmpty(email) || _.isEmpty(active)) {\n console.error('Missing required options `email` or `active`');\n process.exit(1);\n }\n\n return setActive({ email, active });\n};\n\n/**\n * `$ strapi admin:active-user`\n */\nconst command: StrapiCommand = () => {\n return createCommand('admin:active-user')\n .alias('admin:active')\n .description(\"Set a user's active status\")\n .option('-e, --email <email>', 'The user email')\n .option('-a, --active <true/false>', 'The user active status')\n .action(runAction('admin:active-user', action));\n};\n\nexport { action, command };\n"],"names":["promptQuestions","type","name","message","setActive","email","active","appContext","compileStrapi","app","createStrapi","load","cleanEmail","trim","toLowerCase","cleanActive","console","error","process","exit","isActive","user","admin","services","findOneByEmail","updateById","id","err","log","action","cmdOptions","_","isEmpty","stdin","isTTY","inquirer","getInquirer","inquiry","prompt","command","createCommand","alias","description","option","runAction"],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import { createCommand } from 'commander';
|
|
3
|
+
import { compileStrapi, createStrapi } from '@strapi/core';
|
|
4
|
+
import { runAction } from '../../utils/helpers.mjs';
|
|
5
|
+
import { getInquirer } from '../../utils/get-inquirer.mjs';
|
|
6
|
+
|
|
7
|
+
const promptQuestions = [
|
|
8
|
+
{
|
|
9
|
+
type: 'input',
|
|
10
|
+
name: 'email',
|
|
11
|
+
message: 'User email?'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
type: 'input',
|
|
15
|
+
name: 'active',
|
|
16
|
+
message: 'User Active?'
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
async function setActive({ email, active }) {
|
|
20
|
+
const appContext = await compileStrapi();
|
|
21
|
+
const app = await createStrapi(appContext).load();
|
|
22
|
+
const cleanEmail = email?.trim().toLowerCase();
|
|
23
|
+
const cleanActive = active?.trim().toLowerCase();
|
|
24
|
+
if (cleanActive !== 'true' && cleanActive !== 'false') {
|
|
25
|
+
console.error('Invalid active status. Use "true" or "false".');
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
const isActive = cleanActive === 'true';
|
|
29
|
+
const user = await app.admin.services.user.findOneByEmail(cleanEmail);
|
|
30
|
+
if (!user) {
|
|
31
|
+
console.error(`User with email "${cleanEmail}" does not exist`);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
await app.admin.services.user.updateById(user.id, {
|
|
36
|
+
isActive
|
|
37
|
+
});
|
|
38
|
+
} catch (err) {
|
|
39
|
+
console.error(err.message);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
console.log(`Successfully set ${cleanEmail} active status to ${cleanActive}`);
|
|
43
|
+
process.exit(0);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Change a user's active status
|
|
47
|
+
*/ const action = async (cmdOptions = {})=>{
|
|
48
|
+
const { email, active } = cmdOptions;
|
|
49
|
+
if (_.isEmpty(email) && _.isEmpty(active) && process.stdin.isTTY) {
|
|
50
|
+
const inquirer = await getInquirer();
|
|
51
|
+
const inquiry = await inquirer.prompt(promptQuestions);
|
|
52
|
+
return setActive(inquiry);
|
|
53
|
+
}
|
|
54
|
+
if (_.isEmpty(email) || _.isEmpty(active)) {
|
|
55
|
+
console.error('Missing required options `email` or `active`');
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
return setActive({
|
|
59
|
+
email,
|
|
60
|
+
active
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* `$ strapi admin:active-user`
|
|
65
|
+
*/ const command = ()=>{
|
|
66
|
+
return createCommand('admin:active-user').alias('admin:active').description("Set a user's active status").option('-e, --email <email>', 'The user email').option('-a, --active <true/false>', 'The user active status').action(runAction('admin:active-user', action));
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export { action, command };
|
|
70
|
+
//# sourceMappingURL=active-user.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-user.mjs","sources":["../../../../../src/cli/commands/admin/active-user.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { DistinctQuestion } from 'inquirer';\nimport { createCommand } from 'commander';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { getInquirer } from '../../utils/get-inquirer';\n\ninterface CmdOptions {\n email?: string;\n active?: string;\n}\n\ninterface Answers {\n email: string;\n active: string;\n}\n\nconst promptQuestions: ReadonlyArray<DistinctQuestion<Answers>> = [\n { type: 'input', name: 'email', message: 'User email?' },\n { type: 'input', name: 'active', message: 'User Active?' },\n];\n\nasync function setActive({ email, active }: CmdOptions) {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).load();\n\n const cleanEmail = email?.trim().toLowerCase();\n const cleanActive = active?.trim().toLowerCase();\n\n if (cleanActive !== 'true' && cleanActive !== 'false') {\n console.error('Invalid active status. Use \"true\" or \"false\".');\n process.exit(1);\n }\n\n const isActive = cleanActive === 'true';\n\n const user = await app.admin.services.user.findOneByEmail(cleanEmail);\n\n if (!user) {\n console.error(`User with email \"${cleanEmail}\" does not exist`);\n process.exit(1);\n }\n\n try {\n await app.admin!.services.user.updateById(user.id, {\n isActive,\n });\n } catch (err: any) {\n console.error(err.message);\n process.exit(1);\n }\n\n console.log(`Successfully set ${cleanEmail} active status to ${cleanActive}`);\n process.exit(0);\n}\n\n/**\n * Change a user's active status\n */\nconst action = async (cmdOptions: CmdOptions = {}) => {\n const { email, active } = cmdOptions;\n\n if (_.isEmpty(email) && _.isEmpty(active) && process.stdin.isTTY) {\n const inquirer = await getInquirer();\n const inquiry = await inquirer.prompt(promptQuestions);\n\n return setActive(inquiry);\n }\n\n if (_.isEmpty(email) || _.isEmpty(active)) {\n console.error('Missing required options `email` or `active`');\n process.exit(1);\n }\n\n return setActive({ email, active });\n};\n\n/**\n * `$ strapi admin:active-user`\n */\nconst command: StrapiCommand = () => {\n return createCommand('admin:active-user')\n .alias('admin:active')\n .description(\"Set a user's active status\")\n .option('-e, --email <email>', 'The user email')\n .option('-a, --active <true/false>', 'The user active status')\n .action(runAction('admin:active-user', action));\n};\n\nexport { action, command };\n"],"names":["promptQuestions","type","name","message","setActive","email","active","appContext","compileStrapi","app","createStrapi","load","cleanEmail","trim","toLowerCase","cleanActive","console","error","process","exit","isActive","user","admin","services","findOneByEmail","updateById","id","err","log","action","cmdOptions","_","isEmpty","stdin","isTTY","inquirer","getInquirer","inquiry","prompt","command","createCommand","alias","description","option","runAction"],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _ = require('lodash');
|
|
4
|
+
var commander = require('commander');
|
|
5
|
+
var core = require('@strapi/core');
|
|
6
|
+
var helpers = require('../../utils/helpers.js');
|
|
7
|
+
var getInquirer = require('../../utils/get-inquirer.js');
|
|
8
|
+
|
|
9
|
+
const promptQuestions = [
|
|
10
|
+
{
|
|
11
|
+
type: 'input',
|
|
12
|
+
name: 'email',
|
|
13
|
+
message: 'User email?'
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
type: 'input',
|
|
17
|
+
name: 'block',
|
|
18
|
+
message: 'User Blocked?'
|
|
19
|
+
}
|
|
20
|
+
];
|
|
21
|
+
async function setBlock({ email, block }) {
|
|
22
|
+
const appContext = await core.compileStrapi();
|
|
23
|
+
const app = await core.createStrapi(appContext).load();
|
|
24
|
+
const cleanEmail = email?.trim().toLowerCase();
|
|
25
|
+
const cleanBlock = block?.trim().toLowerCase();
|
|
26
|
+
if (cleanBlock !== 'true' && cleanBlock !== 'false') {
|
|
27
|
+
console.error('Invalid block status. Use "true" or "false".');
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
const blocked = cleanBlock === 'true';
|
|
31
|
+
const user = await app.admin.services.user.findOneByEmail(cleanEmail);
|
|
32
|
+
if (!user) {
|
|
33
|
+
console.error(`User with email "${cleanEmail}" does not exist`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
await app.admin.services.user.updateById(user.id, {
|
|
38
|
+
blocked
|
|
39
|
+
});
|
|
40
|
+
} catch (err) {
|
|
41
|
+
console.error(err.message);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
console.log(`Successfully set ${cleanEmail} block status to ${cleanBlock}`);
|
|
45
|
+
process.exit(0);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Change a user's block status
|
|
49
|
+
*/ const action = async (cmdOptions = {})=>{
|
|
50
|
+
const { email, block } = cmdOptions;
|
|
51
|
+
if (_.isEmpty(email) && _.isEmpty(block) && process.stdin.isTTY) {
|
|
52
|
+
const inquirer = await getInquirer.getInquirer();
|
|
53
|
+
const inquiry = await inquirer.prompt(promptQuestions);
|
|
54
|
+
return setBlock(inquiry);
|
|
55
|
+
}
|
|
56
|
+
if (_.isEmpty(email) || _.isEmpty(block)) {
|
|
57
|
+
console.error('Missing required options `email` or `block`');
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
return setBlock({
|
|
61
|
+
email,
|
|
62
|
+
block
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* `$ strapi admin:block-user`
|
|
67
|
+
*/ const command = ()=>{
|
|
68
|
+
return commander.createCommand('admin:block-user').alias('admin:block').description("Set a user's block status").option('-e, --email <email>', 'The user email').option('-b, --block <true/false>', 'The user block status').action(helpers.runAction('admin:block-user', action));
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
exports.action = action;
|
|
72
|
+
exports.command = command;
|
|
73
|
+
//# sourceMappingURL=block-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-user.js","sources":["../../../../../src/cli/commands/admin/block-user.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { DistinctQuestion } from 'inquirer';\nimport { createCommand } from 'commander';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { getInquirer } from '../../utils/get-inquirer';\n\ninterface CmdOptions {\n email?: string;\n block?: string;\n}\n\ninterface Answers {\n email: string;\n block: string;\n}\n\nconst promptQuestions: ReadonlyArray<DistinctQuestion<Answers>> = [\n { type: 'input', name: 'email', message: 'User email?' },\n { type: 'input', name: 'block', message: 'User Blocked?' },\n];\n\nasync function setBlock({ email, block }: CmdOptions) {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).load();\n\n const cleanEmail = email?.trim().toLowerCase();\n const cleanBlock = block?.trim().toLowerCase();\n\n if (cleanBlock !== 'true' && cleanBlock !== 'false') {\n console.error('Invalid block status. Use \"true\" or \"false\".');\n process.exit(1);\n }\n\n const blocked = cleanBlock === 'true';\n\n const user = await app.admin.services.user.findOneByEmail(cleanEmail);\n\n if (!user) {\n console.error(`User with email \"${cleanEmail}\" does not exist`);\n process.exit(1);\n }\n\n try {\n await app.admin!.services.user.updateById(user.id, { blocked });\n } catch (err: any) {\n console.error(err.message);\n process.exit(1);\n }\n\n console.log(`Successfully set ${cleanEmail} block status to ${cleanBlock}`);\n process.exit(0);\n}\n\n/**\n * Change a user's block status\n */\nconst action = async (cmdOptions: CmdOptions = {}) => {\n const { email, block } = cmdOptions;\n\n if (_.isEmpty(email) && _.isEmpty(block) && process.stdin.isTTY) {\n const inquirer = await getInquirer();\n const inquiry = await inquirer.prompt(promptQuestions);\n\n return setBlock(inquiry);\n }\n\n if (_.isEmpty(email) || _.isEmpty(block)) {\n console.error('Missing required options `email` or `block`');\n process.exit(1);\n }\n\n return setBlock({ email, block });\n};\n\n/**\n * `$ strapi admin:block-user`\n */\nconst command: StrapiCommand = () => {\n return createCommand('admin:block-user')\n .alias('admin:block')\n .description(\"Set a user's block status\")\n .option('-e, --email <email>', 'The user email')\n .option('-b, --block <true/false>', 'The user block status')\n .action(runAction('admin:block-user', action));\n};\n\nexport { action, command };\n"],"names":["promptQuestions","type","name","message","setBlock","email","block","appContext","compileStrapi","app","createStrapi","load","cleanEmail","trim","toLowerCase","cleanBlock","console","error","process","exit","blocked","user","admin","services","findOneByEmail","updateById","id","err","log","action","cmdOptions","_","isEmpty","stdin","isTTY","inquirer","getInquirer","inquiry","prompt","command","createCommand","alias","description","option","runAction"],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import { createCommand } from 'commander';
|
|
3
|
+
import { compileStrapi, createStrapi } from '@strapi/core';
|
|
4
|
+
import { runAction } from '../../utils/helpers.mjs';
|
|
5
|
+
import { getInquirer } from '../../utils/get-inquirer.mjs';
|
|
6
|
+
|
|
7
|
+
const promptQuestions = [
|
|
8
|
+
{
|
|
9
|
+
type: 'input',
|
|
10
|
+
name: 'email',
|
|
11
|
+
message: 'User email?'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
type: 'input',
|
|
15
|
+
name: 'block',
|
|
16
|
+
message: 'User Blocked?'
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
async function setBlock({ email, block }) {
|
|
20
|
+
const appContext = await compileStrapi();
|
|
21
|
+
const app = await createStrapi(appContext).load();
|
|
22
|
+
const cleanEmail = email?.trim().toLowerCase();
|
|
23
|
+
const cleanBlock = block?.trim().toLowerCase();
|
|
24
|
+
if (cleanBlock !== 'true' && cleanBlock !== 'false') {
|
|
25
|
+
console.error('Invalid block status. Use "true" or "false".');
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
const blocked = cleanBlock === 'true';
|
|
29
|
+
const user = await app.admin.services.user.findOneByEmail(cleanEmail);
|
|
30
|
+
if (!user) {
|
|
31
|
+
console.error(`User with email "${cleanEmail}" does not exist`);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
await app.admin.services.user.updateById(user.id, {
|
|
36
|
+
blocked
|
|
37
|
+
});
|
|
38
|
+
} catch (err) {
|
|
39
|
+
console.error(err.message);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
console.log(`Successfully set ${cleanEmail} block status to ${cleanBlock}`);
|
|
43
|
+
process.exit(0);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Change a user's block status
|
|
47
|
+
*/ const action = async (cmdOptions = {})=>{
|
|
48
|
+
const { email, block } = cmdOptions;
|
|
49
|
+
if (_.isEmpty(email) && _.isEmpty(block) && process.stdin.isTTY) {
|
|
50
|
+
const inquirer = await getInquirer();
|
|
51
|
+
const inquiry = await inquirer.prompt(promptQuestions);
|
|
52
|
+
return setBlock(inquiry);
|
|
53
|
+
}
|
|
54
|
+
if (_.isEmpty(email) || _.isEmpty(block)) {
|
|
55
|
+
console.error('Missing required options `email` or `block`');
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
return setBlock({
|
|
59
|
+
email,
|
|
60
|
+
block
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* `$ strapi admin:block-user`
|
|
65
|
+
*/ const command = ()=>{
|
|
66
|
+
return createCommand('admin:block-user').alias('admin:block').description("Set a user's block status").option('-e, --email <email>', 'The user email').option('-b, --block <true/false>', 'The user block status').action(runAction('admin:block-user', action));
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export { action, command };
|
|
70
|
+
//# sourceMappingURL=block-user.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-user.mjs","sources":["../../../../../src/cli/commands/admin/block-user.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { DistinctQuestion } from 'inquirer';\nimport { createCommand } from 'commander';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { getInquirer } from '../../utils/get-inquirer';\n\ninterface CmdOptions {\n email?: string;\n block?: string;\n}\n\ninterface Answers {\n email: string;\n block: string;\n}\n\nconst promptQuestions: ReadonlyArray<DistinctQuestion<Answers>> = [\n { type: 'input', name: 'email', message: 'User email?' },\n { type: 'input', name: 'block', message: 'User Blocked?' },\n];\n\nasync function setBlock({ email, block }: CmdOptions) {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).load();\n\n const cleanEmail = email?.trim().toLowerCase();\n const cleanBlock = block?.trim().toLowerCase();\n\n if (cleanBlock !== 'true' && cleanBlock !== 'false') {\n console.error('Invalid block status. Use \"true\" or \"false\".');\n process.exit(1);\n }\n\n const blocked = cleanBlock === 'true';\n\n const user = await app.admin.services.user.findOneByEmail(cleanEmail);\n\n if (!user) {\n console.error(`User with email \"${cleanEmail}\" does not exist`);\n process.exit(1);\n }\n\n try {\n await app.admin!.services.user.updateById(user.id, { blocked });\n } catch (err: any) {\n console.error(err.message);\n process.exit(1);\n }\n\n console.log(`Successfully set ${cleanEmail} block status to ${cleanBlock}`);\n process.exit(0);\n}\n\n/**\n * Change a user's block status\n */\nconst action = async (cmdOptions: CmdOptions = {}) => {\n const { email, block } = cmdOptions;\n\n if (_.isEmpty(email) && _.isEmpty(block) && process.stdin.isTTY) {\n const inquirer = await getInquirer();\n const inquiry = await inquirer.prompt(promptQuestions);\n\n return setBlock(inquiry);\n }\n\n if (_.isEmpty(email) || _.isEmpty(block)) {\n console.error('Missing required options `email` or `block`');\n process.exit(1);\n }\n\n return setBlock({ email, block });\n};\n\n/**\n * `$ strapi admin:block-user`\n */\nconst command: StrapiCommand = () => {\n return createCommand('admin:block-user')\n .alias('admin:block')\n .description(\"Set a user's block status\")\n .option('-e, --email <email>', 'The user email')\n .option('-b, --block <true/false>', 'The user block status')\n .action(runAction('admin:block-user', action));\n};\n\nexport { action, command };\n"],"names":["promptQuestions","type","name","message","setBlock","email","block","appContext","compileStrapi","app","createStrapi","load","cleanEmail","trim","toLowerCase","cleanBlock","console","error","process","exit","blocked","user","admin","services","findOneByEmail","updateById","id","err","log","action","cmdOptions","_","isEmpty","stdin","isTTY","inquirer","getInquirer","inquiry","prompt","command","createCommand","alias","description","option","runAction"],"mappings":";;;;;;AAmBA,MAAMA,eAAAA,GAA4D;AAChE,IAAA;QAAEC,IAAAA,EAAM,OAAA;QAASC,IAAAA,EAAM,OAAA;QAASC,OAAAA,EAAS;AAAc,KAAA;AACvD,IAAA;QAAEF,IAAAA,EAAM,OAAA;QAASC,IAAAA,EAAM,OAAA;QAASC,OAAAA,EAAS;AAAgB;AAC1D,CAAA;AAED,eAAeC,QAAAA,CAAS,EAAEC,KAAK,EAAEC,KAAK,EAAc,EAAA;AAClD,IAAA,MAAMC,aAAa,MAAMC,aAAAA,EAAAA;AACzB,IAAA,MAAMC,GAAAA,GAAM,MAAMC,YAAAA,CAAaH,UAAAA,CAAAA,CAAYI,IAAI,EAAA;IAE/C,MAAMC,UAAAA,GAAaP,OAAOQ,IAAAA,EAAAA,CAAOC,WAAAA,EAAAA;IACjC,MAAMC,UAAAA,GAAaT,OAAOO,IAAAA,EAAAA,CAAOC,WAAAA,EAAAA;IAEjC,IAAIC,UAAAA,KAAe,MAAA,IAAUA,UAAAA,KAAe,OAAA,EAAS;AACnDC,QAAAA,OAAAA,CAAQC,KAAK,CAAC,8CAAA,CAAA;AACdC,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,IAAA;AAEA,IAAA,MAAMC,UAAUL,UAAAA,KAAe,MAAA;IAE/B,MAAMM,IAAAA,GAAO,MAAMZ,GAAAA,CAAIa,KAAK,CAACC,QAAQ,CAACF,IAAI,CAACG,cAAc,CAACZ,UAAAA,CAAAA;AAE1D,IAAA,IAAI,CAACS,IAAAA,EAAM;AACTL,QAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,iBAAiB,EAAEL,UAAAA,CAAW,gBAAgB,CAAC,CAAA;AAC9DM,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,IAAA;IAEA,IAAI;QACF,MAAMV,GAAAA,CAAIa,KAAK,CAAEC,QAAQ,CAACF,IAAI,CAACI,UAAU,CAACJ,IAAAA,CAAKK,EAAE,EAAE;AAAEN,YAAAA;AAAQ,SAAA,CAAA;AAC/D,IAAA,CAAA,CAAE,OAAOO,GAAAA,EAAU;QACjBX,OAAAA,CAAQC,KAAK,CAACU,GAAAA,CAAIxB,OAAO,CAAA;AACzBe,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,IAAA;IAEAH,OAAAA,CAAQY,GAAG,CAAC,CAAC,iBAAiB,EAAEhB,UAAAA,CAAW,iBAAiB,EAAEG,UAAAA,CAAAA,CAAY,CAAA;AAC1EG,IAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf;AAEA;;AAEC,IACD,MAAMU,MAAAA,GAAS,OAAOC,UAAAA,GAAyB,EAAE,GAAA;AAC/C,IAAA,MAAM,EAAEzB,KAAK,EAAEC,KAAK,EAAE,GAAGwB,UAAAA;AAEzB,IAAA,IAAIC,CAAAA,CAAEC,OAAO,CAAC3B,KAAAA,CAAAA,IAAU0B,CAAAA,CAAEC,OAAO,CAAC1B,KAAAA,CAAAA,IAAUY,OAAAA,CAAQe,KAAK,CAACC,KAAK,EAAE;AAC/D,QAAA,MAAMC,WAAW,MAAMC,WAAAA,EAAAA;AACvB,QAAA,MAAMC,OAAAA,GAAU,MAAMF,QAAAA,CAASG,MAAM,CAACtC,eAAAA,CAAAA;AAEtC,QAAA,OAAOI,QAAAA,CAASiC,OAAAA,CAAAA;AAClB,IAAA;AAEA,IAAA,IAAIN,EAAEC,OAAO,CAAC3B,UAAU0B,CAAAA,CAAEC,OAAO,CAAC1B,KAAAA,CAAAA,EAAQ;AACxCU,QAAAA,OAAAA,CAAQC,KAAK,CAAC,6CAAA,CAAA;AACdC,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,IAAA;AAEA,IAAA,OAAOf,QAAAA,CAAS;AAAEC,QAAAA,KAAAA;AAAOC,QAAAA;AAAM,KAAA,CAAA;AACjC;AAEA;;AAEC,UACKiC,OAAAA,GAAyB,IAAA;AAC7B,IAAA,OAAOC,cAAc,kBAAA,CAAA,CAClBC,KAAK,CAAC,aAAA,CAAA,CACNC,WAAW,CAAC,2BAAA,CAAA,CACZC,MAAM,CAAC,qBAAA,EAAuB,gBAAA,CAAA,CAC9BA,MAAM,CAAC,0BAAA,EAA4B,yBACnCd,MAAM,CAACe,UAAU,kBAAA,EAAoBf,MAAAA,CAAAA,CAAAA;AAC1C;;;;"}
|