@jigx/sdk-tools 1.1.0 → 1.2.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/auth/cognito-auth.d.ts +21 -0
- package/dist/auth/cognito-auth.d.ts.map +1 -1
- package/dist/auth/cognito-auth.js +21 -0
- package/dist/auth/cognito-auth.js.map +1 -1
- package/dist/auth/cognito-config.d.ts +8 -0
- package/dist/auth/cognito-config.d.ts.map +1 -1
- package/dist/auth/cognito-config.js +14 -0
- package/dist/auth/cognito-config.js.map +1 -1
- package/dist/auth/credentials-store.d.ts +21 -0
- package/dist/auth/credentials-store.d.ts.map +1 -1
- package/dist/auth/credentials-store.js +10 -0
- package/dist/auth/credentials-store.js.map +1 -1
- package/dist/auth/errors.d.ts +16 -0
- package/dist/auth/errors.d.ts.map +1 -1
- package/dist/auth/errors.js +16 -0
- package/dist/auth/errors.js.map +1 -1
- package/dist/auth/identity-client.d.ts +9 -0
- package/dist/auth/identity-client.d.ts.map +1 -1
- package/dist/auth/identity-client.js +9 -0
- package/dist/auth/identity-client.js.map +1 -1
- package/dist/auth/jigx-config-store.d.ts +13 -0
- package/dist/auth/jigx-config-store.d.ts.map +1 -1
- package/dist/auth/jigx-config-store.js +8 -0
- package/dist/auth/jigx-config-store.js.map +1 -1
- package/dist/builder/build.d.ts +8 -0
- package/dist/builder/build.d.ts.map +1 -1
- package/dist/builder/build.js +7 -0
- package/dist/builder/build.js.map +1 -1
- package/dist/builder/extract-to-folder.d.ts +18 -0
- package/dist/builder/extract-to-folder.d.ts.map +1 -1
- package/dist/builder/extract-to-folder.js +18 -0
- package/dist/builder/extract-to-folder.js.map +1 -1
- package/dist/cli.js +6 -5
- package/dist/cli.js.map +1 -1
- package/dist/creator/create.d.ts +9 -0
- package/dist/creator/create.d.ts.map +1 -1
- package/dist/creator/create.js +6 -0
- package/dist/creator/create.js.map +1 -1
- package/dist/deployer/deploy-to-strata.d.ts +16 -1
- package/dist/deployer/deploy-to-strata.d.ts.map +1 -1
- package/dist/deployer/deploy-to-strata.js +44 -9
- package/dist/deployer/deploy-to-strata.js.map +1 -1
- package/dist/deployer/deploy.d.ts +29 -0
- package/dist/deployer/deploy.d.ts.map +1 -1
- package/dist/deployer/deploy.js +25 -0
- package/dist/deployer/deploy.js.map +1 -1
- package/dist/init/init.d.ts +16 -0
- package/dist/init/init.d.ts.map +1 -1
- package/dist/init/init.js +15 -0
- package/dist/init/init.js.map +1 -1
- package/dist/jigx-command/format.d.ts +10 -0
- package/dist/jigx-command/format.d.ts.map +1 -1
- package/dist/jigx-command/format.js +10 -0
- package/dist/jigx-command/format.js.map +1 -1
- package/dist/login/login.d.ts +10 -0
- package/dist/login/login.d.ts.map +1 -1
- package/dist/login/login.js +13 -0
- package/dist/login/login.js.map +1 -1
- package/dist/logout/logout.d.ts +22 -0
- package/dist/logout/logout.d.ts.map +1 -1
- package/dist/logout/logout.js +14 -1
- package/dist/logout/logout.js.map +1 -1
- package/dist/prompts/prompts.d.ts +6 -0
- package/dist/prompts/prompts.d.ts.map +1 -1
- package/dist/prompts/prompts.js +6 -0
- package/dist/prompts/prompts.js.map +1 -1
- package/dist/scaffolder/scaffold.d.ts +11 -0
- package/dist/scaffolder/scaffold.d.ts.map +1 -1
- package/dist/scaffolder/scaffold.js +12 -1
- package/dist/scaffolder/scaffold.js.map +1 -1
- package/dist/scaffolder/templates.d.ts +1 -0
- package/dist/scaffolder/templates.d.ts.map +1 -1
- package/dist/scaffolder/templates.js +10 -0
- package/dist/scaffolder/templates.js.map +1 -1
- package/dist/slug/validate.d.ts +17 -0
- package/dist/slug/validate.d.ts.map +1 -1
- package/dist/slug/validate.js +17 -0
- package/dist/slug/validate.js.map +1 -1
- package/dist/whoami/whoami.d.ts +13 -0
- package/dist/whoami/whoami.d.ts.map +1 -1
- package/dist/whoami/whoami.js +10 -0
- package/dist/whoami/whoami.js.map +1 -1
- package/package.json +13 -13
package/dist/init/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElE,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,GAGhB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AA6B5D,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,15 @@ export interface FormatJigxCommandOptions {
|
|
|
3
3
|
readonly verb: string;
|
|
4
4
|
readonly environment: DeployEnvironment;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Formats a copy-pasteable `jigx <verb>` recovery command.
|
|
8
|
+
*
|
|
9
|
+
* Omits `--env prod` because `prod` is the CLI default; includes `--env dev`
|
|
10
|
+
* (or any non-default environment) so the command remains correct verbatim.
|
|
11
|
+
*
|
|
12
|
+
* @param options.verb - Sub-command verb, e.g. `login`, `init`.
|
|
13
|
+
* @param options.environment - Target environment.
|
|
14
|
+
* @returns A bare `jigx <verb>` string for prod, otherwise `jigx <verb> --env <environment>`.
|
|
15
|
+
*/
|
|
6
16
|
export declare function formatJigxCommand(options: FormatJigxCommandOptions): string;
|
|
7
17
|
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/jigx-command/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE7D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;CACxC;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/jigx-command/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE7D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;CACxC;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAI3E"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats a copy-pasteable `jigx <verb>` recovery command.
|
|
3
|
+
*
|
|
4
|
+
* Omits `--env prod` because `prod` is the CLI default; includes `--env dev`
|
|
5
|
+
* (or any non-default environment) so the command remains correct verbatim.
|
|
6
|
+
*
|
|
7
|
+
* @param options.verb - Sub-command verb, e.g. `login`, `init`.
|
|
8
|
+
* @param options.environment - Target environment.
|
|
9
|
+
* @returns A bare `jigx <verb>` string for prod, otherwise `jigx <verb> --env <environment>`.
|
|
10
|
+
*/
|
|
1
11
|
export function formatJigxCommand(options) {
|
|
2
12
|
const { verb, environment } = options;
|
|
3
13
|
if (environment === 'prod')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/jigx-command/format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/jigx-command/format.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiC;IACjE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IACrC,IAAI,WAAW,KAAK,MAAM;QAAE,OAAO,QAAQ,IAAI,EAAE,CAAA;IACjD,OAAO,QAAQ,IAAI,UAAU,WAAW,EAAE,CAAA;AAC5C,CAAC"}
|
package/dist/login/login.d.ts
CHANGED
|
@@ -2,8 +2,10 @@ import { CognitoAuth, CredentialsStore } from '../auth/index.js';
|
|
|
2
2
|
import type { DeployEnvironment } from '../deployer/index.js';
|
|
3
3
|
export interface LoginOptions {
|
|
4
4
|
readonly environment: DeployEnvironment;
|
|
5
|
+
/** Test seam: substitute the auth modules. */
|
|
5
6
|
readonly cognitoAuth?: CognitoAuth;
|
|
6
7
|
readonly credentialsStore?: CredentialsStore;
|
|
8
|
+
/** Test seams for prompts. Default uses `@clack/prompts`. */
|
|
7
9
|
readonly promptEmail?: () => Promise<string>;
|
|
8
10
|
readonly promptPassword?: () => Promise<string>;
|
|
9
11
|
}
|
|
@@ -15,5 +17,13 @@ export interface LoginResult {
|
|
|
15
17
|
export declare class LoginCancelledError extends Error {
|
|
16
18
|
constructor();
|
|
17
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Orchestrates the `jigx login` flow.
|
|
22
|
+
*
|
|
23
|
+
* Prompts for email + password, runs Cognito SRP sign-in, and writes the
|
|
24
|
+
* refresh token (only) to `~/.jigx/refresh-tokens.json` keyed by env+pool.
|
|
25
|
+
* No project-directory writes — the project ↔ Organization binding lives in
|
|
26
|
+
* `<projectRoot>/jigx.json` and is created by `jigx init`.
|
|
27
|
+
*/
|
|
18
28
|
export declare function login(options: LoginOptions): Promise<LoginResult>;
|
|
19
29
|
//# sourceMappingURL=login.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/login/login.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAS7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/login/login.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAS7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;IACvC,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAC5C,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAChD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;CACxC;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,cAGC;CACF;AAmCD;;;;;;;GAOG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA2BvE"}
|
package/dist/login/login.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { cancel, isCancel, password, text } from '@clack/prompts';
|
|
2
2
|
import { COGNITO_CONFIG, CognitoAuth, CredentialsStore } from '../auth/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Approximate refresh-token TTL — Cognito user pools issue refresh tokens with
|
|
5
|
+
* a provider-set TTL we can only treat as best-effort. Used to populate
|
|
6
|
+
* `expiresAt` on `~/.jigx/refresh-tokens.json`.
|
|
7
|
+
*/
|
|
3
8
|
const REFRESH_TOKEN_TTL_MS = 15 * 24 * 60 * 60 * 1000;
|
|
4
9
|
export class LoginCancelledError extends Error {
|
|
5
10
|
constructor() {
|
|
@@ -36,6 +41,14 @@ async function defaultPromptPassword() {
|
|
|
36
41
|
},
|
|
37
42
|
}));
|
|
38
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Orchestrates the `jigx login` flow.
|
|
46
|
+
*
|
|
47
|
+
* Prompts for email + password, runs Cognito SRP sign-in, and writes the
|
|
48
|
+
* refresh token (only) to `~/.jigx/refresh-tokens.json` keyed by env+pool.
|
|
49
|
+
* No project-directory writes — the project ↔ Organization binding lives in
|
|
50
|
+
* `<projectRoot>/jigx.json` and is created by `jigx init`.
|
|
51
|
+
*/
|
|
39
52
|
export async function login(options) {
|
|
40
53
|
const { environment, cognitoAuth = new CognitoAuth(), credentialsStore = new CredentialsStore(), promptEmail = defaultPromptEmail, promptPassword = defaultPromptPassword, } = options;
|
|
41
54
|
const email = await promptEmail();
|
package/dist/login/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/login/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/login/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGhF;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAkBrD,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C;QACE,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED,SAAS,kBAAkB,CAAI,KAAiB;IAC9C,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAC1B,MAAM,IAAI,mBAAmB,EAAE,CAAA;IACjC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,OAAO,kBAAkB,CACvB,MAAM,IAAI,CAAC;QACT,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,oBAAoB,CAAA;YACpE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,8BAA8B,CAAA;YAC/D,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAC,CACH,CAAA;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,OAAO,kBAAkB,CACvB,MAAM,QAAQ,CAAC;QACb,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,uBAAuB,CAAA;YAChE,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAC,CACH,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAqB;IAC/C,MAAM,EACJ,WAAW,EACX,WAAW,GAAG,IAAI,WAAW,EAAE,EAC/B,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,EACzC,WAAW,GAAG,kBAAkB,EAChC,cAAc,GAAG,qBAAqB,GACvC,GAAG,OAAO,CAAA;IAEX,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAA;IACjC,MAAM,aAAa,GAAG,MAAM,cAAc,EAAE,CAAA;IAC5C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAA;IAEzF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3E,MAAM,gBAAgB,CAAC,aAAa,CAAC;QACnC,WAAW;QACX,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU;QAClD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS;KACV,CAAC,CAAA;IAEF,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW;KACZ,CAAA;AACH,CAAC"}
|
package/dist/logout/logout.d.ts
CHANGED
|
@@ -2,25 +2,47 @@ import { CredentialsStore } from '../auth/index.js';
|
|
|
2
2
|
import type { DeployEnvironment } from '../deployer/index.js';
|
|
3
3
|
export type LogoutScope = DeployEnvironment | 'all';
|
|
4
4
|
export interface LogoutOptions {
|
|
5
|
+
/** When set, scrub only this env. Conflicts with `all`. */
|
|
5
6
|
readonly environment?: DeployEnvironment;
|
|
7
|
+
/** When `true`, scrub every known env unconditionally. Conflicts with `environment`. */
|
|
6
8
|
readonly all?: boolean;
|
|
9
|
+
/** Test seam — defaults to a fresh `CredentialsStore`. */
|
|
7
10
|
readonly credentialsStore?: CredentialsStore;
|
|
11
|
+
/**
|
|
12
|
+
* Test seam — when no flags are supplied and multiple active envs exist, prompts
|
|
13
|
+
* for the scope. Default uses `@clack/prompts.select`.
|
|
14
|
+
*/
|
|
8
15
|
readonly promptScope?: (active: readonly DeployEnvironment[]) => Promise<LogoutScope>;
|
|
9
16
|
}
|
|
10
17
|
export interface LogoutEnvOutcome {
|
|
11
18
|
readonly environment: DeployEnvironment;
|
|
19
|
+
/** `true` when the cached refresh token entry was actually cleared. */
|
|
12
20
|
readonly refreshTokenCleared: boolean;
|
|
13
21
|
}
|
|
14
22
|
export interface LogoutResult {
|
|
15
23
|
readonly scope: LogoutScope | 'none';
|
|
16
24
|
readonly outcomes: readonly LogoutEnvOutcome[];
|
|
25
|
+
/** Pre-formatted multi-line summary ready for stdout. */
|
|
17
26
|
readonly formatted: string;
|
|
18
27
|
}
|
|
19
28
|
export declare class LogoutCancelledError extends Error {
|
|
20
29
|
constructor();
|
|
21
30
|
}
|
|
31
|
+
/** `--env` and `--all` cannot both be passed to `jigx logout`. */
|
|
22
32
|
export declare class LogoutFlagConflictError extends Error {
|
|
23
33
|
constructor();
|
|
24
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Orchestrates the `jigx logout` flow.
|
|
37
|
+
*
|
|
38
|
+
* Reads the cached refresh token per env from `~/.jigx/refresh-tokens.json`
|
|
39
|
+
* and clears the entries for the requested scope. The file is deleted when
|
|
40
|
+
* no entries remain.
|
|
41
|
+
*
|
|
42
|
+
* No-flag behavior is gated by the count of active envs:
|
|
43
|
+
* - 0 active → "Already logged out."
|
|
44
|
+
* - 1 active → scrub it without prompting
|
|
45
|
+
* - multiple active → prompt `Log out from? (<active envs> / all) [all]:`
|
|
46
|
+
*/
|
|
25
47
|
export declare function logout(options: LogoutOptions): Promise<LogoutResult>;
|
|
26
48
|
//# sourceMappingURL=logout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/logout/logout.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE7D,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,KAAK,CAAA;AAEnD,MAAM,WAAW,aAAa;
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/logout/logout.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE7D,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,KAAK,CAAA;AAEnD,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,wFAAwF;IACxF,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAC5C;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;CACtF;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;IACvC,uEAAuE;IACvE,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC9C,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,cAGC;CACF;AAED,kEAAkE;AAClE,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,cAGC;CACF;AAkFD;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA2B1E"}
|
package/dist/logout/logout.js
CHANGED
|
@@ -6,13 +6,14 @@ export class LogoutCancelledError extends Error {
|
|
|
6
6
|
this.name = 'LogoutCancelledError';
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
+
/** `--env` and `--all` cannot both be passed to `jigx logout`. */
|
|
9
10
|
export class LogoutFlagConflictError extends Error {
|
|
10
11
|
constructor() {
|
|
11
12
|
super('jigx logout: --env and --all are mutually exclusive.');
|
|
12
13
|
this.name = 'LogoutFlagConflictError';
|
|
13
14
|
}
|
|
14
15
|
}
|
|
15
|
-
const ENV_ORDER = ['dev', 'prod'];
|
|
16
|
+
const ENV_ORDER = ['dev', 'clf-dev', 'prod', 'clf-prod'];
|
|
16
17
|
function ensureNotCancelled(value) {
|
|
17
18
|
if (isCancel(value)) {
|
|
18
19
|
cancel('Logout cancelled.');
|
|
@@ -75,6 +76,18 @@ function formatOutcome(outcome) {
|
|
|
75
76
|
return `Cleared refresh token for ${outcome.environment}.`;
|
|
76
77
|
return `${outcome.environment}: not logged in.`;
|
|
77
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Orchestrates the `jigx logout` flow.
|
|
81
|
+
*
|
|
82
|
+
* Reads the cached refresh token per env from `~/.jigx/refresh-tokens.json`
|
|
83
|
+
* and clears the entries for the requested scope. The file is deleted when
|
|
84
|
+
* no entries remain.
|
|
85
|
+
*
|
|
86
|
+
* No-flag behavior is gated by the count of active envs:
|
|
87
|
+
* - 0 active → "Already logged out."
|
|
88
|
+
* - 1 active → scrub it without prompting
|
|
89
|
+
* - multiple active → prompt `Log out from? (<active envs> / all) [all]:`
|
|
90
|
+
*/
|
|
78
91
|
export async function logout(options) {
|
|
79
92
|
const { credentialsStore = new CredentialsStore() } = options;
|
|
80
93
|
if (options.environment && options.all) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/logout/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEzD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAgCnE,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/logout/logout.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,11 @@ export interface CreatePromptAnswers {
|
|
|
7
7
|
export declare class PromptCancelledError extends Error {
|
|
8
8
|
constructor();
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Runs the three create-flow prompts: Title (free text) → ApplicationName
|
|
12
|
+
* (slug, prefilled from Title, validated) → Type (`app` | `data`).
|
|
13
|
+
*
|
|
14
|
+
* Throws `PromptCancelledError` when the designer interrupts (Ctrl-C / Esc).
|
|
15
|
+
*/
|
|
10
16
|
export declare function runCreatePrompts(): Promise<CreatePromptAnswers>;
|
|
11
17
|
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/prompts/prompts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAC/B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,cAGC;CACF;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/prompts/prompts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAC/B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,cAGC;CACF;AAUD;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAqCrE"}
|
package/dist/prompts/prompts.js
CHANGED
|
@@ -13,6 +13,12 @@ function ensureNotCancelled(value) {
|
|
|
13
13
|
}
|
|
14
14
|
return value;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Runs the three create-flow prompts: Title (free text) → ApplicationName
|
|
18
|
+
* (slug, prefilled from Title, validated) → Type (`app` | `data`).
|
|
19
|
+
*
|
|
20
|
+
* Throws `PromptCancelledError` when the designer interrupts (Ctrl-C / Esc).
|
|
21
|
+
*/
|
|
16
22
|
export async function runCreatePrompts() {
|
|
17
23
|
const title = ensureNotCancelled(await text({
|
|
18
24
|
message: 'Application title',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/prompts/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AASxE,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/prompts/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AASxE,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C;QACE,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;CACF;AAED,SAAS,kBAAkB,CAAI,KAAiB;IAC9C,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,iCAAiC,CAAC,CAAA;QACzC,MAAM,IAAI,oBAAoB,EAAE,CAAA;IAClC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,KAAK,GAAG,kBAAkB,CAC9B,MAAM,IAAI,CAAC;QACT,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,oBAAoB;QACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,gCAAgC,CAAA;YAChF,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAC,CACH,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAEjC,MAAM,eAAe,GAAG,kBAAkB,CACxC,MAAM,IAAI,CAAC;QACT,OAAO,EAAE,yBAAyB;QAClC,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC;QACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;YAC7C,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;QAC7C,CAAC;KACF,CAAC,CACH,CAAA;IAED,MAAM,IAAI,GAAG,kBAAkB,CAC7B,MAAM,MAAM,CAAkB;QAC5B,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE;YACxD,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,EAAE;SACzD;QACD,YAAY,EAAE,KAAK;KACpB,CAAC,CACH,CAAA;IAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,CAAA;AACvD,CAAC"}
|
|
@@ -3,6 +3,7 @@ export interface ScaffoldOptions {
|
|
|
3
3
|
readonly title: string;
|
|
4
4
|
readonly applicationName: string;
|
|
5
5
|
readonly type: ApplicationType;
|
|
6
|
+
/** Absolute path of the directory to create. The parent must exist; the directory itself must not. */
|
|
6
7
|
readonly destinationPath: string;
|
|
7
8
|
}
|
|
8
9
|
export interface ScaffoldResult {
|
|
@@ -12,5 +13,15 @@ export interface ScaffoldResult {
|
|
|
12
13
|
export declare class ScaffoldError extends Error {
|
|
13
14
|
constructor(message: string);
|
|
14
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Writes a fresh Application project at `destinationPath` from the in-memory
|
|
18
|
+
* templates. Aborts before touching the filesystem if the destination exists.
|
|
19
|
+
*
|
|
20
|
+
* Generates `package.json`, `tsconfig.json`, `.gitignore`, `README.md`, and
|
|
21
|
+
* `src/app.ts` with prompt values substituted in. Auth state lives in
|
|
22
|
+
* `~/.jigx/refresh-tokens.json` (written by `jigx login`); the per-project
|
|
23
|
+
* Organization binding lives in `<projectRoot>/jigx.json` (written by
|
|
24
|
+
* `jigx init`). No `.env` is written here.
|
|
25
|
+
*/
|
|
15
26
|
export declare function scaffold(options: ScaffoldOptions): Promise<ScaffoldResult>;
|
|
16
27
|
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/scaffolder/scaffold.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/scaffolder/scaffold.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,eAAe,EAMrB,MAAM,gBAAgB,CAAA;AAEvB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,sGAAsG;IACtG,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAcD;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA8BhF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mkdir, stat, writeFile } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { appTs, gitignore, packageJson, readme, tsconfigJson, } from './templates.js';
|
|
3
|
+
import { appTs, claudeMd, gitignore, packageJson, readme, tsconfigJson, } from './templates.js';
|
|
4
4
|
export class ScaffoldError extends Error {
|
|
5
5
|
constructor(message) {
|
|
6
6
|
super(message);
|
|
@@ -19,6 +19,16 @@ async function exists(filePath) {
|
|
|
19
19
|
throw error;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Writes a fresh Application project at `destinationPath` from the in-memory
|
|
24
|
+
* templates. Aborts before touching the filesystem if the destination exists.
|
|
25
|
+
*
|
|
26
|
+
* Generates `package.json`, `tsconfig.json`, `.gitignore`, `README.md`, and
|
|
27
|
+
* `src/app.ts` with prompt values substituted in. Auth state lives in
|
|
28
|
+
* `~/.jigx/refresh-tokens.json` (written by `jigx login`); the per-project
|
|
29
|
+
* Organization binding lives in `<projectRoot>/jigx.json` (written by
|
|
30
|
+
* `jigx init`). No `.env` is written here.
|
|
31
|
+
*/
|
|
22
32
|
export async function scaffold(options) {
|
|
23
33
|
const { title, applicationName, type, destinationPath } = options;
|
|
24
34
|
if (await exists(destinationPath)) {
|
|
@@ -31,6 +41,7 @@ export async function scaffold(options) {
|
|
|
31
41
|
{ relPath: 'tsconfig.json', content: tsconfigJson() },
|
|
32
42
|
{ relPath: '.gitignore', content: gitignore() },
|
|
33
43
|
{ relPath: 'README.md', content: readme(inputs) },
|
|
44
|
+
{ relPath: 'CLAUDE.md', content: claudeMd() },
|
|
34
45
|
{ relPath: path.join('src', 'app.ts'), content: appTs(inputs) },
|
|
35
46
|
];
|
|
36
47
|
const filesWritten = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/scaffolder/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EACL,KAAK,EAEL,SAAS,EACT,WAAW,EACX,MAAM,EACN,YAAY,GACb,MAAM,gBAAgB,CAAA;AAevB,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/scaffolder/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EACL,KAAK,EAEL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,MAAM,EACN,YAAY,GACb,MAAM,gBAAgB,CAAA;AAevB,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF;AAED,KAAK,UAAU,MAAM,CAAC,QAAgB;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzE,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,CAAA;IAEjE,IAAI,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,aAAa,CACrB,+BAA+B,eAAe,yEAAyE,CACxH,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAA;IAE/C,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEnE,MAAM,KAAK,GAA0E;QACnF,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;QACzD,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;QACrD,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAC/C,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;QACjD,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QAC7C,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;KAChE,CAAA;IAED,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACxD,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC9C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAA;AAC1C,CAAC"}
|
|
@@ -8,5 +8,6 @@ export declare function packageJson(inputs: TemplateInputs): string;
|
|
|
8
8
|
export declare function tsconfigJson(): string;
|
|
9
9
|
export declare function gitignore(): string;
|
|
10
10
|
export declare function readme(inputs: TemplateInputs): string;
|
|
11
|
+
export declare function claudeMd(): string;
|
|
11
12
|
export declare function appTs(inputs: TemplateInputs): string;
|
|
12
13
|
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffolder/templates.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAC/B;AAED,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,CAAA;AAK5C,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAqB1D;AAED,wBAAgB,YAAY,IAAI,MAAM,CAkBrC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAkCrD;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA2BpD"}
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffolder/templates.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAC/B;AAED,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,CAAA;AAK5C,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAqB1D;AAED,wBAAgB,YAAY,IAAI,MAAM,CAkBrC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAkCrD;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAQjC;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA2BpD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// Bump when releasing sdk-tools to match latest stable @jigx/core-sdk.
|
|
1
2
|
const coreSdkRange = '^1.0.0';
|
|
2
3
|
export function packageJson(inputs) {
|
|
3
4
|
const { applicationName } = inputs;
|
|
@@ -78,6 +79,15 @@ Organization binding is committed in \`jigx.json\` at the project root.
|
|
|
78
79
|
| \`typecheck\` | Runs \`tsc --build\` to type-check \`src/app.ts\` without emitting output. |
|
|
79
80
|
`;
|
|
80
81
|
}
|
|
82
|
+
export function claudeMd() {
|
|
83
|
+
return `# Agent Instructions
|
|
84
|
+
|
|
85
|
+
## Core SDK Docs
|
|
86
|
+
|
|
87
|
+
Authoritative recipes & patterns for \`@jigx/core-sdk\` ship inside the package.
|
|
88
|
+
Start at \`node_modules/@jigx/core-sdk/docs/index.md\` and follow links from there.
|
|
89
|
+
`;
|
|
90
|
+
}
|
|
81
91
|
export function appTs(inputs) {
|
|
82
92
|
const { title, applicationName, type } = inputs;
|
|
83
93
|
const titleLiteral = JSON.stringify(title);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffolder/templates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffolder/templates.ts"],"names":[],"mappings":"AAQA,uEAAuE;AACvE,MAAM,YAAY,GAAG,QAAQ,CAAA;AAE7B,MAAM,UAAU,WAAW,CAAC,MAAsB;IAChD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAClC,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;SACb;QACD,OAAO,EAAE;YACP,SAAS,EAAE,aAAa;SACzB;QACD,YAAY,EAAE;YACZ,gBAAgB,EAAE,YAAY;SAC/B;QACD,eAAe,EAAE;YACf,UAAU,EAAE,QAAQ;SACrB;KACF,CAAA;IACD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,IAAI,GAAG;QACX,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,UAAU;YAClB,gBAAgB,EAAE,UAAU;YAC5B,GAAG,EAAE,CAAC,QAAQ,CAAC;YACf,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,IAAI;YAClB,iBAAiB,EAAE,IAAI;YACvB,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,gCAAgC,EAAE,IAAI;SACvC;QACD,OAAO,EAAE,CAAC,aAAa,CAAC;KACzB,CAAA;IACD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAsB;IAC3C,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAC/C,OAAO,KAAK,KAAK;;;;wBAIK,eAAe;YAC3B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Bf,CAAA;AACD,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO;;;;;;CAMR,CAAA;AACD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,MAAsB;IAC1C,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC1C,OAAO;;;WAGE,eAAe;WACf,YAAY;WACZ,IAAI;;;;;WAKJ,YAAY;;;;;;;;;;;;;CAatB,CAAA;AACD,CAAC"}
|
package/dist/slug/validate.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helpers for the ApplicationName slug. Used by the create prompts and
|
|
3
|
+
* unit-tested independently. Mirrors the runtime constraint enforced inside
|
|
4
|
+
* `ApplicationBuilder` (lower-kebab, 2–50 chars).
|
|
5
|
+
*/
|
|
1
6
|
export interface ValidationOk {
|
|
2
7
|
readonly ok: true;
|
|
3
8
|
}
|
|
@@ -6,6 +11,18 @@ export interface ValidationError {
|
|
|
6
11
|
readonly error: string;
|
|
7
12
|
}
|
|
8
13
|
export type ValidationResult = ValidationOk | ValidationError;
|
|
14
|
+
/**
|
|
15
|
+
* Slugifies a free-text Application title to a candidate ApplicationName.
|
|
16
|
+
*
|
|
17
|
+
* Lowercases, strips diacritics, replaces non-`[a-z0-9]` runs with `-`, trims
|
|
18
|
+
* leading/trailing hyphens, and truncates to `MAX_LENGTH`. May return an empty
|
|
19
|
+
* string when the input has no alphanumerics — callers must validate.
|
|
20
|
+
*/
|
|
9
21
|
export declare function slugifyTitle(title: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Validates an ApplicationName against the lower-kebab `[a-z0-9-]+`,
|
|
24
|
+
* 2–50 character constraint. Returns a discriminated result for inline use
|
|
25
|
+
* inside Clack prompt validators.
|
|
26
|
+
*/
|
|
10
27
|
export declare function validateApplicationName(name: string): ValidationResult;
|
|
11
28
|
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/slug/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/slug/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,eAAe,CAAA;AAE7D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASlD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CActE"}
|
package/dist/slug/validate.js
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helpers for the ApplicationName slug. Used by the create prompts and
|
|
3
|
+
* unit-tested independently. Mirrors the runtime constraint enforced inside
|
|
4
|
+
* `ApplicationBuilder` (lower-kebab, 2–50 chars).
|
|
5
|
+
*/
|
|
1
6
|
const APPLICATION_NAME_PATTERN = /^[a-z0-9-]+$/;
|
|
2
7
|
const MIN_LENGTH = 2;
|
|
3
8
|
const MAX_LENGTH = 50;
|
|
9
|
+
/**
|
|
10
|
+
* Slugifies a free-text Application title to a candidate ApplicationName.
|
|
11
|
+
*
|
|
12
|
+
* Lowercases, strips diacritics, replaces non-`[a-z0-9]` runs with `-`, trims
|
|
13
|
+
* leading/trailing hyphens, and truncates to `MAX_LENGTH`. May return an empty
|
|
14
|
+
* string when the input has no alphanumerics — callers must validate.
|
|
15
|
+
*/
|
|
4
16
|
export function slugifyTitle(title) {
|
|
5
17
|
return title
|
|
6
18
|
.normalize('NFKD')
|
|
@@ -11,6 +23,11 @@ export function slugifyTitle(title) {
|
|
|
11
23
|
.slice(0, MAX_LENGTH)
|
|
12
24
|
.replace(/-+$/g, '');
|
|
13
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Validates an ApplicationName against the lower-kebab `[a-z0-9-]+`,
|
|
28
|
+
* 2–50 character constraint. Returns a discriminated result for inline use
|
|
29
|
+
* inside Clack prompt validators.
|
|
30
|
+
*/
|
|
14
31
|
export function validateApplicationName(name) {
|
|
15
32
|
if (name.length < MIN_LENGTH || name.length > MAX_LENGTH) {
|
|
16
33
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/slug/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/slug/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,wBAAwB,GAAG,cAAc,CAAA;AAC/C,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,MAAM,UAAU,GAAG,EAAE,CAAA;AAarB;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK;SACT,SAAS,CAAC,MAAM,CAAC;SACjB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QACzD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,4BAA4B,UAAU,IAAI,UAAU,oBAAoB,IAAI,CAAC,MAAM,IAAI;SAC/F,CAAA;IACH,CAAC;IACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,8EAA8E;SACtF,CAAA;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;AACrB,CAAC"}
|
package/dist/whoami/whoami.d.ts
CHANGED
|
@@ -2,7 +2,9 @@ import { CognitoAuth, CredentialsStore, IdentityClient, JigxConfigStore } from '
|
|
|
2
2
|
import type { DeployEnvironment } from '../deployer/index.js';
|
|
3
3
|
export interface WhoamiOptions {
|
|
4
4
|
readonly projectRoot: string;
|
|
5
|
+
/** Defaults to `prod`. */
|
|
5
6
|
readonly environment?: DeployEnvironment;
|
|
7
|
+
/** Test seams. */
|
|
6
8
|
readonly cognitoAuth?: CognitoAuth;
|
|
7
9
|
readonly identityClient?: IdentityClient;
|
|
8
10
|
readonly credentialsStore?: CredentialsStore;
|
|
@@ -21,7 +23,18 @@ export interface WhoamiResult {
|
|
|
21
23
|
readonly environment: DeployEnvironment;
|
|
22
24
|
readonly user?: WhoamiUser;
|
|
23
25
|
readonly projectOrganization?: WhoamiProjectOrganization;
|
|
26
|
+
/** Pre-formatted multi-line output ready for stdout. */
|
|
24
27
|
readonly formatted: string;
|
|
25
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Reads identity fresh from `IdentityClient.getMe` for the requested env (default
|
|
31
|
+
* `prod`) and overlays the per-environment Organization binding from
|
|
32
|
+
* `<projectRoot>/jigx.json` when present.
|
|
33
|
+
*
|
|
34
|
+
* No reads from `<projectRoot>/.jigx/credentials.json` — `whoami` is a live
|
|
35
|
+
* identity probe, not a cache reader. When the env has no cached refresh token
|
|
36
|
+
* (or it has expired/been revoked), `authenticated` is `false` and the formatted
|
|
37
|
+
* message names the exact command to recover.
|
|
38
|
+
*/
|
|
26
39
|
export declare function whoami(options: WhoamiOptions): Promise<WhoamiResult>;
|
|
27
40
|
//# sourceMappingURL=whoami.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/whoami/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EAEhB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAG7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/whoami/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EAEhB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAG7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,kBAAkB;IAClB,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAA;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;CACvC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,yBAAyB,CAAA;IACxD,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAUD;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAuD1E"}
|
package/dist/whoami/whoami.js
CHANGED
|
@@ -7,6 +7,16 @@ function notLoggedIn(environment) {
|
|
|
7
7
|
formatted: `Not logged in to ${environment}. Run ${formatJigxCommand({ verb: 'login', environment })}.`,
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Reads identity fresh from `IdentityClient.getMe` for the requested env (default
|
|
12
|
+
* `prod`) and overlays the per-environment Organization binding from
|
|
13
|
+
* `<projectRoot>/jigx.json` when present.
|
|
14
|
+
*
|
|
15
|
+
* No reads from `<projectRoot>/.jigx/credentials.json` — `whoami` is a live
|
|
16
|
+
* identity probe, not a cache reader. When the env has no cached refresh token
|
|
17
|
+
* (or it has expired/been revoked), `authenticated` is `false` and the formatted
|
|
18
|
+
* message names the exact command to recover.
|
|
19
|
+
*/
|
|
10
20
|
export async function whoami(options) {
|
|
11
21
|
const { projectRoot, environment = 'prod', cognitoAuth = new CognitoAuth(), identityClient = new IdentityClient(), credentialsStore = new CredentialsStore(), configStore = new JigxConfigStore(), } = options;
|
|
12
22
|
const cached = await credentialsStore.readUserHome({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/whoami/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAgC5D,SAAS,WAAW,CAAC,WAA8B
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/whoami/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAgC5D,SAAS,WAAW,CAAC,WAA8B;IACjD,OAAO;QACL,aAAa,EAAE,KAAK;QACpB,WAAW;QACX,SAAS,EAAE,oBAAoB,WAAW,SAAS,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,GAAG;KACxG,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAsB;IACjD,MAAM,EACJ,WAAW,EACX,WAAW,GAAG,MAAM,EACpB,WAAW,GAAG,IAAI,WAAW,EAAE,EAC/B,cAAc,GAAG,IAAI,cAAc,EAAE,EACrC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,EACzC,WAAW,GAAG,IAAI,eAAe,EAAE,GACpC,GAAG,OAAO,CAAA;IAEX,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC;QACjD,WAAW;QACX,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU;KACnD,CAAC,CAAA;IACF,IAAI,CAAC,MAAM;QAAE,OAAO,WAAW,CAAC,WAAW,CAAC,CAAA;IAE5C,IAAI,OAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC;YACjD,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW;YACX,QAAQ,EAAE,MAAM,CAAC,MAAM;SACxB,CAAC,CAAA;QACF,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB;YAAE,OAAO,WAAW,CAAC,WAAW,CAAC,CAAA;QACzE,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IAE/D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;IAC7E,MAAM,mBAAmB,GAA0C,MAAM;QACvE,CAAC,CAAC;YACE,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,gBAAgB,EACd,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,MAAM,CAAC,cAAc,CAAC;gBACtE,EAAE,gBAAgB,IAAI,MAAM,CAAC,cAAc;SAChD;QACH,CAAC,CAAC,SAAS,CAAA;IAEb,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;IAC5D,IAAI,mBAAmB,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CACR,yBAAyB,mBAAmB,CAAC,gBAAgB,KAAK,mBAAmB,CAAC,cAAc,GAAG,CACxG,CAAA;IACH,CAAC;IAED,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,WAAW;QACX,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE;QAChD,mBAAmB;QACnB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;KAC5B,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jigx/sdk-tools",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-rc.1",
|
|
4
4
|
"description": "Jigx SDK toolkit (jigx CLI) — scaffold, build, and publish Jigx Application projects",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"type": "module",
|
|
@@ -48,27 +48,27 @@
|
|
|
48
48
|
"scripts": {
|
|
49
49
|
"test": " NODE_OPTIONS='--max-old-space-size=4096' vitest run --reporter=dot",
|
|
50
50
|
"test:debug": "NODE_OPTIONS='--max-old-space-size=4096' vitest run --no-threads --reporter=verbose",
|
|
51
|
-
"lint": "
|
|
52
|
-
"lint:fix": "
|
|
53
|
-
"typecheck": " yarn
|
|
51
|
+
"lint": " oxlint -c ../../.oxlintrc.json --type-aware src",
|
|
52
|
+
"lint:fix": " oxlint -c ../../.oxlintrc.json --type-aware --fix src && oxfmt -c ../../.oxfmtrc.json --no-error-on-unmatched-pattern src",
|
|
53
|
+
"typecheck": " yarn tsc --noEmit",
|
|
54
54
|
"tc": " yarn typecheck",
|
|
55
55
|
"code-check": "yarn typecheck && yarn lint && yarn test",
|
|
56
56
|
"cc": " yarn code-check",
|
|
57
57
|
"clean": " rm -rf dist .nyc_output coverage node_modules/.tmp",
|
|
58
|
-
"build": " yarn
|
|
58
|
+
"build": " yarn tsc --build"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@clack/prompts": "^0.11.0",
|
|
62
|
-
"amazon-cognito-identity-js": "^6.3.
|
|
63
|
-
"tsx": "^4.
|
|
64
|
-
"yaml": "^2.
|
|
62
|
+
"amazon-cognito-identity-js": "^6.3.20",
|
|
63
|
+
"tsx": "^4.23.1",
|
|
64
|
+
"yaml": "^2.9.0"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"typescript": "^
|
|
71
|
-
"vitest": "
|
|
67
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
68
|
+
"oxfmt": "*",
|
|
69
|
+
"oxlint": "*",
|
|
70
|
+
"typescript": "^7.0.2",
|
|
71
|
+
"vitest": "^4.1.10"
|
|
72
72
|
},
|
|
73
73
|
"publishConfig": {
|
|
74
74
|
"access": "public",
|