@jigx/sdk-tools 1.0.0 → 1.1.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/CHANGELOG.md +14 -0
- package/README.md +80 -0
- package/dist/cli.js +7 -3
- package/dist/cli.js.map +1 -1
- package/dist/creator/__tests__/create.test.js +49 -20
- package/dist/creator/__tests__/create.test.js.map +1 -1
- package/dist/creator/create.d.ts +4 -6
- package/dist/creator/create.d.ts.map +1 -1
- package/dist/creator/create.js +19 -20
- package/dist/creator/create.js.map +1 -1
- package/dist/creator/index.d.ts +2 -2
- package/dist/creator/index.d.ts.map +1 -1
- package/dist/creator/index.js +1 -1
- package/dist/creator/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/scaffolder/__tests__/scaffold.test.js +17 -3
- package/dist/scaffolder/__tests__/scaffold.test.js.map +1 -1
- package/dist/scaffolder/scaffold.d.ts.map +1 -1
- package/dist/scaffolder/scaffold.js +6 -2
- package/dist/scaffolder/scaffold.js.map +1 -1
- package/dist/scaffolder/templates.d.ts +2 -0
- package/dist/scaffolder/templates.d.ts.map +1 -1
- package/dist/scaffolder/templates.js +30 -13
- package/dist/scaffolder/templates.js.map +1 -1
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.0-rc.1](https://github.com/jigx-com/jigx-sdk/compare/sdk-tools-v1.1.0-rc...sdk-tools-v1.1.0-rc.1) (2026-05-08)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **sdk-tools:** update jigx create scaffold to entity + tab starter ([#857](https://github.com/jigx-com/jigx-sdk/issues/857)) ([6f4ad0d](https://github.com/jigx-com/jigx-sdk/commit/6f4ad0d329a073f5a3f4bbdcef8eb4c6992dbe64))
|
|
9
|
+
|
|
10
|
+
## [1.1.0-rc](https://github.com/jigx-com/jigx-sdk/compare/sdk-tools-v1.0.0...sdk-tools-v1.1.0-rc) (2026-05-07)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* **sdk-tools:** polish onboarding flow ([#841](https://github.com/jigx-com/jigx-sdk/issues/841)) ([53476d4](https://github.com/jigx-com/jigx-sdk/commit/53476d4e4158067c946a081d597143422b579fec))
|
|
16
|
+
|
|
3
17
|
## 1.0.0 (2026-05-05)
|
|
4
18
|
|
|
5
19
|
|
package/README.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# @jigx/sdk-tools
|
|
2
|
+
|
|
3
|
+
CLI for solution-designers to scaffold, build, and deploy Jigx Applications. Provides the `jigx` command with three verbs — `create`, `build`, and `deploy` — backed by `@jigx/core-sdk` builders.
|
|
4
|
+
|
|
5
|
+
## Requirements
|
|
6
|
+
|
|
7
|
+
- **Node.js ≥22** — install from [nodejs.org](https://nodejs.org/) or `brew install node`.
|
|
8
|
+
- **Yarn 3+ recommended** (Yarn 1.x also works) — enable via `corepack enable` (ships with Node) or install Yarn 1 via `npm install -g yarn`. See [yarnpkg.com/getting-started/install](https://yarnpkg.com/getting-started/install).
|
|
9
|
+
|
|
10
|
+
## Get your NPM_TOKEN
|
|
11
|
+
|
|
12
|
+
`@jigx/*` packages are published to npm with **restricted access**. You need a read-only npm token before installing or running any `jigx` command.
|
|
13
|
+
|
|
14
|
+
Get the token from **1Password**:
|
|
15
|
+
|
|
16
|
+
- Item: `npm`
|
|
17
|
+
- Field: `jigx read only token`
|
|
18
|
+
|
|
19
|
+
## One-time machine setup
|
|
20
|
+
|
|
21
|
+
Solution-designers run bash. The setup below targets `~/.bashrc` / `~/.bash_profile`.
|
|
22
|
+
|
|
23
|
+
Export `NPM_TOKEN` in your shell so npm and yarn can read it:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
echo 'export NPM_TOKEN="paste-token-here"' >> ~/.bashrc
|
|
27
|
+
source ~/.bashrc
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Add the auth line to your user-level `~/.npmrc` so the very first `npx @jigx/sdk-tools create` can fetch the restricted package before a project-level `.npmrc` exists:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' >> ~/.npmrc
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
After scaffold, the project-level `.npmrc` (committed to the new project) takes over for subsequent `yarn install`s.
|
|
37
|
+
|
|
38
|
+
## End-to-end
|
|
39
|
+
|
|
40
|
+
One-time setup plus per-Application flow:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# One-time, once per machine
|
|
44
|
+
echo 'export NPM_TOKEN="paste-token-here"' >> ~/.bashrc
|
|
45
|
+
source ~/.bashrc
|
|
46
|
+
echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' >> ~/.npmrc
|
|
47
|
+
|
|
48
|
+
# Per Application
|
|
49
|
+
npx @jigx/sdk-tools create
|
|
50
|
+
cd <your-application-name>
|
|
51
|
+
# Open .env and fill JIGX_API_KEY + JIGX_ORGANIZATION_ID
|
|
52
|
+
yarn build
|
|
53
|
+
yarn deploy # deploys to prod; pass --env dev for staging
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Commands
|
|
57
|
+
|
|
58
|
+
| Command | What it does |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| `jigx create` | Prompts for Title → Name → Type, scaffolds a new Application project, runs `yarn install`. |
|
|
61
|
+
| `jigx build` | Compiles `src/app.ts` into `build/output.json` plus the canonical Builder folder layout under `build/app/` for inspection. |
|
|
62
|
+
| `jigx deploy` | Builds, then deploys content. Defaults to prod. Pass `--env dev` to target staging. |
|
|
63
|
+
|
|
64
|
+
## Troubleshooting
|
|
65
|
+
|
|
66
|
+
### `401` or `403` on install
|
|
67
|
+
|
|
68
|
+
`NPM_TOKEN` is missing, expired, or not readable by npm/yarn. Check:
|
|
69
|
+
|
|
70
|
+
- `echo $NPM_TOKEN` prints a value in your shell.
|
|
71
|
+
- `~/.npmrc` contains `//registry.npmjs.org/:_authToken=${NPM_TOKEN}`.
|
|
72
|
+
- Get a fresh token from 1Password (item `npm`, field `jigx read only token`) and re-export it.
|
|
73
|
+
|
|
74
|
+
### `Missing required environment variables` on deploy
|
|
75
|
+
|
|
76
|
+
`jigx deploy` requires `JIGX_API_KEY` and `JIGX_ORGANIZATION_ID` in the project's `.env`. Open `.env` (auto-created by `jigx create`) and fill both values. Get them from the Jigx manage UI under Organization → Settings → API Keys.
|
|
77
|
+
|
|
78
|
+
### `yarn: command not found`
|
|
79
|
+
|
|
80
|
+
Yarn is not installed or not on `PATH`. Enable Yarn 3+ via `corepack enable` (recommended), or install Yarn 1 via `npm install -g yarn`. See [yarnpkg.com/getting-started/install](https://yarnpkg.com/getting-started/install).
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import pkg from '../package.json' with { type: 'json' };
|
|
3
3
|
import { build } from './builder/index.js';
|
|
4
|
-
import { create, InstallFailedError } from './creator/index.js';
|
|
4
|
+
import { create, InstallFailedError, NpmTokenMissingError } from './creator/index.js';
|
|
5
5
|
import { deploy, DeployError } from './deployer/index.js';
|
|
6
6
|
import { EnvMissingError } from './env-loader/index.js';
|
|
7
7
|
import { PromptCancelledError } from './prompts/index.js';
|
|
@@ -46,10 +46,11 @@ async function runDeploy(args) {
|
|
|
46
46
|
async function runCreate() {
|
|
47
47
|
const result = await create({ cwd: process.cwd() });
|
|
48
48
|
console.log(`\nScaffolded Application "${result.answers.applicationName}" at ${result.scaffold.destinationPath}`);
|
|
49
|
-
console.log(`Installed dependencies via
|
|
49
|
+
console.log(`Installed dependencies via yarn in ${result.install.durationMs}ms.`);
|
|
50
50
|
console.log('\nNext steps:');
|
|
51
51
|
console.log(` cd ${result.answers.applicationName}`);
|
|
52
|
-
console.log('
|
|
52
|
+
console.log(' Open .env and fill JIGX_API_KEY + JIGX_ORGANIZATION_ID');
|
|
53
|
+
console.log(' git init # initialize git repository');
|
|
53
54
|
console.log(' yarn build');
|
|
54
55
|
console.log(' yarn deploy # deploys to prod; pass --env dev for staging');
|
|
55
56
|
}
|
|
@@ -90,6 +91,9 @@ main().catch((error) => {
|
|
|
90
91
|
else if (err instanceof DeployError) {
|
|
91
92
|
console.error(`Application deploy failed: ${err.message}`);
|
|
92
93
|
}
|
|
94
|
+
else if (err instanceof NpmTokenMissingError) {
|
|
95
|
+
console.error(`Cannot create Application: ${err.message}`);
|
|
96
|
+
}
|
|
93
97
|
else if (err instanceof ScaffoldError) {
|
|
94
98
|
console.error(`Cannot create Application: ${err.message}`);
|
|
95
99
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +1,70 @@
|
|
|
1
1
|
import { mkdir, mkdtemp, rm } from 'node:fs/promises';
|
|
2
2
|
import { tmpdir } from 'node:os';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import { afterEach, beforeEach, describe, expect, test } from 'vitest';
|
|
5
|
-
import { create,
|
|
6
|
-
describe('detectPackageManager', () => {
|
|
7
|
-
test.each([
|
|
8
|
-
['yarn/1.22.19 npm/? node/v22.0.0 darwin arm64', 'yarn'],
|
|
9
|
-
['npm/10.5.0 node/v22.0.0 darwin arm64', 'npm'],
|
|
10
|
-
['pnpm/9.0.0 npm/? node/v22.0.0', 'pnpm'],
|
|
11
|
-
['bun/1.1.0 darwin arm64', 'bun'],
|
|
12
|
-
['unknown-pm/1.0.0', 'npm'],
|
|
13
|
-
[undefined, 'npm'],
|
|
14
|
-
['', 'npm'],
|
|
15
|
-
])('detectPackageManager(%j) === %j', (input, expected) => {
|
|
16
|
-
expect(detectPackageManager(input ?? undefined)).toBe(expected);
|
|
17
|
-
});
|
|
18
|
-
});
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
|
|
5
|
+
import { create, InstallFailedError, NpmTokenMissingError } from '../create.js';
|
|
19
6
|
describe('create', () => {
|
|
20
7
|
let workdir;
|
|
21
8
|
beforeEach(() => {
|
|
22
9
|
workdir = undefined;
|
|
23
10
|
});
|
|
24
11
|
afterEach(async () => {
|
|
12
|
+
vi.unstubAllEnvs();
|
|
25
13
|
if (workdir)
|
|
26
14
|
await rm(workdir, { recursive: true, force: true });
|
|
27
15
|
});
|
|
16
|
+
test('throws NpmTokenMissingError when NPM_TOKEN is unset, before prompts', async () => {
|
|
17
|
+
workdir = await mkdtemp(path.join(tmpdir(), 'jigx-create-e2e-'));
|
|
18
|
+
vi.stubEnv('NPM_TOKEN', '');
|
|
19
|
+
let promptsCalled = false;
|
|
20
|
+
const error = await create({
|
|
21
|
+
cwd: workdir,
|
|
22
|
+
npmToken: undefined,
|
|
23
|
+
prompts: async () => {
|
|
24
|
+
promptsCalled = true;
|
|
25
|
+
return { title: 'Doomed', applicationName: 'doomed-app', type: 'app' };
|
|
26
|
+
},
|
|
27
|
+
install: async () => ({ exitCode: 0, durationMs: 0 }),
|
|
28
|
+
}).catch((e) => e);
|
|
29
|
+
expect(error).toBeInstanceOf(NpmTokenMissingError);
|
|
30
|
+
expect(promptsCalled).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
test('throws NpmTokenMissingError when NPM_TOKEN is empty string', async () => {
|
|
33
|
+
workdir = await mkdtemp(path.join(tmpdir(), 'jigx-create-e2e-'));
|
|
34
|
+
const error = await create({
|
|
35
|
+
cwd: workdir,
|
|
36
|
+
npmToken: '',
|
|
37
|
+
prompts: async () => ({ title: 'X', applicationName: 'x', type: 'app' }),
|
|
38
|
+
install: async () => ({ exitCode: 0, durationMs: 0 }),
|
|
39
|
+
}).catch((e) => e);
|
|
40
|
+
expect(error).toBeInstanceOf(NpmTokenMissingError);
|
|
41
|
+
});
|
|
42
|
+
test('proceeds with the flow when NPM_TOKEN is present', async () => {
|
|
43
|
+
workdir = await mkdtemp(path.join(tmpdir(), 'jigx-create-e2e-'));
|
|
44
|
+
const result = await create({
|
|
45
|
+
cwd: workdir,
|
|
46
|
+
npmToken: 'fake-token',
|
|
47
|
+
prompts: async () => ({
|
|
48
|
+
title: 'Happy Path',
|
|
49
|
+
applicationName: 'happy-path',
|
|
50
|
+
type: 'app',
|
|
51
|
+
}),
|
|
52
|
+
install: async () => ({ exitCode: 0, durationMs: 5 }),
|
|
53
|
+
});
|
|
54
|
+
expect(result.answers.applicationName).toBe('happy-path');
|
|
55
|
+
expect(result.install.exitCode).toBe(0);
|
|
56
|
+
});
|
|
28
57
|
test('throws InstallFailedError when install exits non-zero', async () => {
|
|
29
58
|
workdir = await mkdtemp(path.join(tmpdir(), 'jigx-create-e2e-'));
|
|
30
59
|
const error = await create({
|
|
31
60
|
cwd: workdir,
|
|
32
|
-
|
|
61
|
+
npmToken: 'fake-token',
|
|
33
62
|
prompts: async () => ({
|
|
34
63
|
title: 'Doomed',
|
|
35
64
|
applicationName: 'doomed-app',
|
|
36
65
|
type: 'app',
|
|
37
66
|
}),
|
|
38
|
-
install: async (
|
|
67
|
+
install: async () => ({ exitCode: 1, durationMs: 1 }),
|
|
39
68
|
}).catch((e) => e);
|
|
40
69
|
expect(error).toBeInstanceOf(InstallFailedError);
|
|
41
70
|
if (!(error instanceof InstallFailedError))
|
|
@@ -49,15 +78,15 @@ describe('create', () => {
|
|
|
49
78
|
let installCalled = false;
|
|
50
79
|
await expect(create({
|
|
51
80
|
cwd: workdir,
|
|
52
|
-
|
|
81
|
+
npmToken: 'fake-token',
|
|
53
82
|
prompts: async () => ({
|
|
54
83
|
title: 'Taken',
|
|
55
84
|
applicationName: projectName,
|
|
56
85
|
type: 'app',
|
|
57
86
|
}),
|
|
58
|
-
install: async (
|
|
87
|
+
install: async () => {
|
|
59
88
|
installCalled = true;
|
|
60
|
-
return {
|
|
89
|
+
return { exitCode: 0, durationMs: 0 };
|
|
61
90
|
},
|
|
62
91
|
})).rejects.toThrow(/already exists/);
|
|
63
92
|
expect(installCalled).toBe(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.test.js","sourceRoot":"","sources":["../../../src/creator/__tests__/create.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"create.test.js","sourceRoot":"","sources":["../../../src/creator/__tests__/create.test.ts"],"names":[],"mappings":"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"}
|
package/dist/creator/create.d.ts
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { type CreatePromptAnswers } from '../prompts/index.js';
|
|
2
2
|
import { type ScaffoldResult } from '../scaffolder/index.js';
|
|
3
|
-
export type PackageManager = 'yarn' | 'npm' | 'pnpm' | 'bun';
|
|
4
3
|
export interface InstallSpawnResult {
|
|
5
|
-
readonly packageManager: PackageManager;
|
|
6
4
|
readonly exitCode: number;
|
|
7
5
|
readonly durationMs: number;
|
|
8
6
|
}
|
|
9
7
|
export type InstallFn = (options: {
|
|
10
8
|
readonly cwd: string;
|
|
11
|
-
readonly packageManager: PackageManager;
|
|
12
9
|
}) => Promise<InstallSpawnResult>;
|
|
13
10
|
export interface CreateOptions {
|
|
14
11
|
readonly cwd: string;
|
|
15
12
|
readonly prompts?: () => Promise<CreatePromptAnswers>;
|
|
16
13
|
readonly install?: InstallFn;
|
|
17
|
-
readonly
|
|
14
|
+
readonly npmToken?: string | undefined;
|
|
18
15
|
}
|
|
19
16
|
export interface CreateResult {
|
|
20
17
|
readonly answers: CreatePromptAnswers;
|
|
@@ -24,10 +21,11 @@ export interface CreateResult {
|
|
|
24
21
|
export declare class InstallFailedError extends Error {
|
|
25
22
|
readonly exitCode: number;
|
|
26
23
|
constructor(options: {
|
|
27
|
-
readonly packageManager: PackageManager;
|
|
28
24
|
readonly exitCode: number;
|
|
29
25
|
});
|
|
30
26
|
}
|
|
31
|
-
export declare
|
|
27
|
+
export declare class NpmTokenMissingError extends Error {
|
|
28
|
+
constructor();
|
|
29
|
+
}
|
|
32
30
|
export declare function create(options: CreateOptions): Promise<CreateResult>;
|
|
33
31
|
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/creator/create.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEtE,MAAM,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/creator/create.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEtE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAE1F,MAAM,WAAW,aAAa;IAE5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IAEpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAErD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAE5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;CACrC;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB,YAAY,OAAO,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAUjD;CACF;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,cAOC;CACF;AA+BD,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA4B1E"}
|
package/dist/creator/create.js
CHANGED
|
@@ -5,30 +5,28 @@ import { scaffold } from '../scaffolder/index.js';
|
|
|
5
5
|
export class InstallFailedError extends Error {
|
|
6
6
|
exitCode;
|
|
7
7
|
constructor(options) {
|
|
8
|
-
super(
|
|
9
|
-
`Run "
|
|
10
|
-
`If the failure mentions 401/403 against @jigx/*,
|
|
8
|
+
super(`yarn install exited with code ${options.exitCode}. ` +
|
|
9
|
+
`Run "yarn install" inside the new project directory to retry. ` +
|
|
10
|
+
`If the failure mentions 401/403 against @jigx/*, ensure NPM_TOKEN is exported in your shell ` +
|
|
11
|
+
`(1Password item 'npm', field 'jigx read only token') and that your one-time ~/.npmrc contains ` +
|
|
12
|
+
`\`//registry.npmjs.org/:_authToken=\${NPM_TOKEN}\`.`);
|
|
11
13
|
this.name = 'InstallFailedError';
|
|
12
14
|
this.exitCode = options.exitCode;
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
for (const candidate of PACKAGE_MANAGERS) {
|
|
22
|
-
if (candidate === name)
|
|
23
|
-
return candidate;
|
|
17
|
+
export class NpmTokenMissingError extends Error {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(`NPM_TOKEN environment variable not set. @jigx packages are published with restricted access. ` +
|
|
20
|
+
`Get the token from 1Password (item 'npm', field 'jigx read only token') and add to your shell: ` +
|
|
21
|
+
`\`export NPM_TOKEN="..."\`. Then re-run: \`npx @jigx/sdk-tools create\`.`);
|
|
22
|
+
this.name = 'NpmTokenMissingError';
|
|
24
23
|
}
|
|
25
|
-
return 'npm';
|
|
26
24
|
}
|
|
27
25
|
const defaultInstall = (options) => {
|
|
28
|
-
const { cwd
|
|
26
|
+
const { cwd } = options;
|
|
29
27
|
return new Promise((resolve, reject) => {
|
|
30
28
|
const startTime = Date.now();
|
|
31
|
-
const child = spawn(
|
|
29
|
+
const child = spawn('yarn', ['install'], {
|
|
32
30
|
cwd,
|
|
33
31
|
stdio: 'inherit',
|
|
34
32
|
shell: process.platform === 'win32',
|
|
@@ -38,7 +36,6 @@ const defaultInstall = (options) => {
|
|
|
38
36
|
});
|
|
39
37
|
child.on('exit', (code) => {
|
|
40
38
|
resolve({
|
|
41
|
-
packageManager,
|
|
42
39
|
exitCode: code ?? 0,
|
|
43
40
|
durationMs: Date.now() - startTime,
|
|
44
41
|
});
|
|
@@ -46,7 +43,10 @@ const defaultInstall = (options) => {
|
|
|
46
43
|
});
|
|
47
44
|
};
|
|
48
45
|
export async function create(options) {
|
|
49
|
-
const { cwd, prompts = runCreatePrompts, install = defaultInstall,
|
|
46
|
+
const { cwd, prompts = runCreatePrompts, install = defaultInstall, npmToken = process.env.NPM_TOKEN, } = options;
|
|
47
|
+
if (!npmToken || npmToken.trim().length === 0) {
|
|
48
|
+
throw new NpmTokenMissingError();
|
|
49
|
+
}
|
|
50
50
|
const answers = await prompts();
|
|
51
51
|
const destinationPath = path.join(cwd, answers.applicationName);
|
|
52
52
|
const scaffoldResult = await scaffold({
|
|
@@ -55,10 +55,9 @@ export async function create(options) {
|
|
|
55
55
|
type: answers.type,
|
|
56
56
|
destinationPath,
|
|
57
57
|
});
|
|
58
|
-
const
|
|
59
|
-
const installResult = await install({ cwd: destinationPath, packageManager });
|
|
58
|
+
const installResult = await install({ cwd: destinationPath });
|
|
60
59
|
if (installResult.exitCode !== 0) {
|
|
61
|
-
throw new InstallFailedError({
|
|
60
|
+
throw new InstallFailedError({ exitCode: installResult.exitCode });
|
|
62
61
|
}
|
|
63
62
|
return { answers, scaffold: scaffoldResult, install: installResult };
|
|
64
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/creator/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAA4B,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAuB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/creator/create.ts"],"names":[],"mappings":"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"}
|
package/dist/creator/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { create,
|
|
2
|
-
export type { CreateOptions, CreateResult, InstallFn, InstallSpawnResult
|
|
1
|
+
export { create, InstallFailedError, NpmTokenMissingError } from './create.js';
|
|
2
|
+
export type { CreateOptions, CreateResult, InstallFn, InstallSpawnResult } from './create.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC9E,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/creator/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { create,
|
|
1
|
+
export { create, InstallFailedError, NpmTokenMissingError } from './create.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { build } from './builder/index.js';
|
|
2
2
|
export type { BuildOptions, BuildResult } from './builder/index.js';
|
|
3
|
-
export { create,
|
|
4
|
-
export type { CreateOptions, CreateResult, InstallFn, InstallSpawnResult
|
|
3
|
+
export { create, InstallFailedError, NpmTokenMissingError } from './creator/index.js';
|
|
4
|
+
export type { CreateOptions, CreateResult, InstallFn, InstallSpawnResult } from './creator/index.js';
|
|
5
5
|
export { deploy, deployToStrata, DeployError } from './deployer/index.js';
|
|
6
6
|
export type { ApplicationContent, DeployEnvironment, DeployOptions, DeployToStrataOptions, DeployResult, } from './deployer/index.js';
|
|
7
7
|
export { loadEnv, EnvMissingError } from './env-loader/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACrF,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEpG,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACzE,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAChE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEtE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC/D,YAAY,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACvE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { build } from './builder/index.js';
|
|
2
|
-
export { create,
|
|
2
|
+
export { create, InstallFailedError, NpmTokenMissingError } from './creator/index.js';
|
|
3
3
|
export { deploy, deployToStrata, DeployError } from './deployer/index.js';
|
|
4
4
|
export { loadEnv, EnvMissingError } from './env-loader/index.js';
|
|
5
5
|
export { PromptCancelledError, runCreatePrompts } from './prompts/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAG1C,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAG1C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAGrF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AASzE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGhE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG3E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAQ/D,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -23,8 +23,11 @@ describe('Scaffolder.scaffold', () => {
|
|
|
23
23
|
});
|
|
24
24
|
expect(result.destinationPath).toBe(destinationPath);
|
|
25
25
|
expect(result.filesWritten.map((p) => path.relative(destinationPath, p)).sort()).toEqual([
|
|
26
|
+
'.env',
|
|
26
27
|
'.env.example',
|
|
27
28
|
'.gitignore',
|
|
29
|
+
'.npmrc',
|
|
30
|
+
'.yarnrc.yml',
|
|
28
31
|
'README.md',
|
|
29
32
|
'package.json',
|
|
30
33
|
'src/app.ts',
|
|
@@ -35,14 +38,16 @@ describe('Scaffolder.scaffold', () => {
|
|
|
35
38
|
name: 'customer-selection',
|
|
36
39
|
private: true,
|
|
37
40
|
type: 'module',
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
engines: { node: '>=22' },
|
|
42
|
+
scripts: { build: 'jigx build', deploy: 'jigx deploy', typecheck: 'tsc --build' },
|
|
43
|
+
dependencies: { '@jigx/core-sdk': '^1.0.0' },
|
|
40
44
|
devDependencies: {
|
|
41
45
|
'@jigx/sdk-tools': expect.any(String),
|
|
42
46
|
tsx: expect.any(String),
|
|
43
47
|
typescript: expect.any(String),
|
|
44
48
|
},
|
|
45
49
|
});
|
|
50
|
+
expect(pkg.packageManager).toBeUndefined();
|
|
46
51
|
const gitignoreContent = await readFile(path.join(destinationPath, '.gitignore'), 'utf8');
|
|
47
52
|
expect(gitignoreContent).toContain('.env');
|
|
48
53
|
expect(gitignoreContent).toContain('node_modules/');
|
|
@@ -50,6 +55,13 @@ describe('Scaffolder.scaffold', () => {
|
|
|
50
55
|
const envExampleContent = await readFile(path.join(destinationPath, '.env.example'), 'utf8');
|
|
51
56
|
expect(envExampleContent).toContain('JIGX_API_KEY');
|
|
52
57
|
expect(envExampleContent).toContain('JIGX_ORGANIZATION_ID');
|
|
58
|
+
const envContent = await readFile(path.join(destinationPath, '.env'), 'utf8');
|
|
59
|
+
expect(envContent).toBe(envExampleContent);
|
|
60
|
+
const npmrcContent = await readFile(path.join(destinationPath, '.npmrc'), 'utf8');
|
|
61
|
+
expect(npmrcContent).toContain('@jigx:registry=https://registry.npmjs.org/');
|
|
62
|
+
expect(npmrcContent).toContain('//registry.npmjs.org/:_authToken=${NPM_TOKEN}');
|
|
63
|
+
const yarnrcContent = await readFile(path.join(destinationPath, '.yarnrc.yml'), 'utf8');
|
|
64
|
+
expect(yarnrcContent).toContain('nodeLinker: node-modules');
|
|
53
65
|
const readmeContent = await readFile(path.join(destinationPath, 'README.md'), 'utf8');
|
|
54
66
|
expect(readmeContent).toContain('Customer Selection');
|
|
55
67
|
expect(readmeContent).toContain('customer-selection');
|
|
@@ -106,7 +118,9 @@ describe('Scaffolder.scaffold', () => {
|
|
|
106
118
|
});
|
|
107
119
|
const appTsContent = await readFile(path.join(destinationPath, 'src', 'app.ts'), 'utf8');
|
|
108
120
|
expect(appTsContent).toContain(`title: ${JSON.stringify(trickyTitle)}`);
|
|
109
|
-
expect(appTsContent).toContain(
|
|
121
|
+
expect(appTsContent).toContain('addControl.entity');
|
|
122
|
+
expect(appTsContent).toContain('entityField');
|
|
123
|
+
expect(appTsContent).toContain('app.addTab');
|
|
110
124
|
});
|
|
111
125
|
});
|
|
112
126
|
//# sourceMappingURL=scaffold.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.test.js","sourceRoot":"","sources":["../../../src/scaffolder/__tests__/scaffold.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAEtE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAExD,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC;IACpC,IAAI,OAA2B,CAAA;IAE/B,UAAU,CAAC,GAAG,EAAE,CAAC;QACf,OAAO,GAAG,SAAS,CAAA;IAAA,CACpB,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,OAAO;YAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAAA,CACjE,CAAC,CAAA;IAEF,IAAI,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE,CAAC;QAChF,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAA;QACnE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;QAEhE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;YAC5B,KAAK,EAAE,oBAAoB;YAC3B,eAAe,EAAE,oBAAoB;YACrC,IAAI,EAAE,KAAK;YACX,eAAe;SAChB,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CACtF;YACE,cAAc;YACd,YAAY;YACZ,WAAW;YACX,cAAc;YACd,YAAY;YACZ,eAAe;SAChB,CAAC,IAAI,EAAE,CACT,CAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QAC1F,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YACxB,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"scaffold.test.js","sourceRoot":"","sources":["../../../src/scaffolder/__tests__/scaffold.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,EAQrB,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;IAE9B,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;AAsBD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAkChF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mkdir, stat, writeFile } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { appTs, envExample, gitignore, packageJson, readme, tsconfigJson, } from './templates.js';
|
|
3
|
+
import { appTs, envExample, gitignore, npmrc, packageJson, readme, tsconfigJson, yarnrcYml, } from './templates.js';
|
|
4
4
|
export class ScaffoldError extends Error {
|
|
5
5
|
constructor(message) {
|
|
6
6
|
super(message);
|
|
@@ -25,12 +25,16 @@ export async function scaffold(options) {
|
|
|
25
25
|
throw new ScaffoldError(`Destination already exists: ${destinationPath}. Choose a different Application name or remove the existing directory.`);
|
|
26
26
|
}
|
|
27
27
|
const inputs = { title, applicationName, type };
|
|
28
|
+
const envContent = envExample();
|
|
28
29
|
await mkdir(path.join(destinationPath, 'src'), { recursive: true });
|
|
29
30
|
const files = [
|
|
30
31
|
{ relPath: 'package.json', content: packageJson(inputs) },
|
|
31
32
|
{ relPath: 'tsconfig.json', content: tsconfigJson() },
|
|
32
33
|
{ relPath: '.gitignore', content: gitignore() },
|
|
33
|
-
{ relPath: '.env.example', content:
|
|
34
|
+
{ relPath: '.env.example', content: envContent },
|
|
35
|
+
{ relPath: '.env', content: envContent },
|
|
36
|
+
{ relPath: '.npmrc', content: npmrc() },
|
|
37
|
+
{ relPath: '.yarnrc.yml', content: yarnrcYml() },
|
|
34
38
|
{ relPath: 'README.md', content: readme(inputs) },
|
|
35
39
|
{ relPath: path.join('src', 'app.ts'), content: appTs(inputs) },
|
|
36
40
|
];
|
|
@@ -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,UAAU,EACV,SAAS,EACT,WAAW,EACX,MAAM,EACN,YAAY,
|
|
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,UAAU,EACV,SAAS,EACT,KAAK,EACL,WAAW,EACX,MAAM,EACN,YAAY,EACZ,SAAS,GACV,MAAM,gBAAgB,CAAA;AAevB,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe,EAAE;QAC3B,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAAA,CAC5B;CACF;AAED,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAoB;IACxD,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;AAAA,CACF;AAUD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB,EAA2B;IAChF,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;IAC/C,MAAM,UAAU,GAAG,UAAU,EAAE,CAAA;IAE/B,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,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE;QAChD,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;QACxC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvC,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAChD,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;QACjD,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;AAAA,CACzC"}
|
|
@@ -5,6 +5,8 @@ export interface TemplateInputs {
|
|
|
5
5
|
}
|
|
6
6
|
export type ApplicationType = 'app' | 'data';
|
|
7
7
|
export declare function packageJson(inputs: TemplateInputs): string;
|
|
8
|
+
export declare function npmrc(): string;
|
|
9
|
+
export declare function yarnrcYml(): string;
|
|
8
10
|
export declare function tsconfigJson(): string;
|
|
9
11
|
export declare function gitignore(): string;
|
|
10
12
|
export declare function envExample(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffolder/templates.ts"],"names":[],"mappings":"AAEA,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;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffolder/templates.ts"],"names":[],"mappings":"AAEA,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;AAM5C,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAyB1D;AAED,wBAAgB,KAAK,IAAI,MAAM,CAM9B;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAkBrC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAQnC;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAyCrD;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA2BpD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import pkg from '../../package.json' with { type: 'json' };
|
|
2
2
|
const sdkToolsVersion = pkg.version;
|
|
3
|
-
const coreSdkRange = '
|
|
3
|
+
const coreSdkRange = '^1.0.0';
|
|
4
4
|
export function packageJson(inputs) {
|
|
5
5
|
const { applicationName } = inputs;
|
|
6
6
|
const body = {
|
|
@@ -8,9 +8,13 @@ export function packageJson(inputs) {
|
|
|
8
8
|
version: '0.0.0',
|
|
9
9
|
private: true,
|
|
10
10
|
type: 'module',
|
|
11
|
+
engines: {
|
|
12
|
+
node: '>=22',
|
|
13
|
+
},
|
|
11
14
|
scripts: {
|
|
12
15
|
build: 'jigx build',
|
|
13
16
|
deploy: 'jigx deploy',
|
|
17
|
+
typecheck: 'tsc --build',
|
|
14
18
|
},
|
|
15
19
|
dependencies: {
|
|
16
20
|
'@jigx/core-sdk': coreSdkRange,
|
|
@@ -23,6 +27,16 @@ export function packageJson(inputs) {
|
|
|
23
27
|
};
|
|
24
28
|
return `${JSON.stringify(body, null, 2)}\n`;
|
|
25
29
|
}
|
|
30
|
+
export function npmrc() {
|
|
31
|
+
return [
|
|
32
|
+
'@jigx:registry=https://registry.npmjs.org/',
|
|
33
|
+
'//registry.npmjs.org/:_authToken=${NPM_TOKEN}',
|
|
34
|
+
'',
|
|
35
|
+
].join('\n');
|
|
36
|
+
}
|
|
37
|
+
export function yarnrcYml() {
|
|
38
|
+
return 'nodeLinker: node-modules\n';
|
|
39
|
+
}
|
|
26
40
|
export function tsconfigJson() {
|
|
27
41
|
const body = {
|
|
28
42
|
compilerOptions: {
|
|
@@ -99,7 +113,6 @@ cp .env.example .env
|
|
|
99
113
|
export function appTs(inputs) {
|
|
100
114
|
const { title, applicationName, type } = inputs;
|
|
101
115
|
const titleLiteral = JSON.stringify(title);
|
|
102
|
-
const welcomeLiteral = JSON.stringify(`Welcome to ${title}`);
|
|
103
116
|
return `import { ApplicationBuilder } from '@jigx/core-sdk'
|
|
104
117
|
|
|
105
118
|
export const app = new ApplicationBuilder({
|
|
@@ -108,17 +121,21 @@ export const app = new ApplicationBuilder({
|
|
|
108
121
|
type: '${type}',
|
|
109
122
|
})
|
|
110
123
|
|
|
111
|
-
app
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
124
|
+
const homeScreen = app.addScreen.default({
|
|
125
|
+
screenId: 'home',
|
|
126
|
+
title: ${titleLiteral},
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
const entity = homeScreen.addControl.entity({})
|
|
130
|
+
entity.addControl.entityField({
|
|
131
|
+
label: 'Hello world',
|
|
132
|
+
value: 'from SDK',
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
app.addTab({
|
|
136
|
+
screenId: 'home',
|
|
137
|
+
icon: 'home',
|
|
138
|
+
})
|
|
122
139
|
`;
|
|
123
140
|
}
|
|
124
141
|
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffolder/templates.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAU1D,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffolder/templates.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAU1D,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAA;AAEnC,MAAM,YAAY,GAAG,QAAQ,CAAA;AAE7B,MAAM,UAAU,WAAW,CAAC,MAAsB,EAAU;IAC1D,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,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,aAAa;SACzB;QACD,YAAY,EAAE;YACZ,gBAAgB,EAAE,YAAY;SAC/B;QACD,eAAe,EAAE;YACf,iBAAiB,EAAE,IAAI,eAAe,EAAE;YACxC,GAAG,EAAE,SAAS;YACd,UAAU,EAAE,QAAQ;SACrB;KACF,CAAA;IACD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AAAA,CAC5C;AAED,MAAM,UAAU,KAAK,GAAW;IAC9B,OAAO;QACL,4CAA4C;QAC5C,+CAA+C;QAC/C,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAAA,CACb;AAED,MAAM,UAAU,SAAS,GAAW;IAClC,OAAO,4BAA4B,CAAA;AAAA,CACpC;AAED,MAAM,UAAU,YAAY,GAAW;IACrC,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;AAAA,CAC5C;AAED,MAAM,UAAU,SAAS,GAAW;IAClC,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAAA,CAC1D;AAED,MAAM,UAAU,UAAU,GAAW;IACnC,OAAO;QACL,qDAAqD;QACrD,mFAA+E;QAC/E,eAAe;QACf,uBAAuB;QACvB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAAA,CACb;AAED,MAAM,UAAU,MAAM,CAAC,MAAsB,EAAU;IACrD,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAC/C,OAAO,KAAK,KAAK;;;;wBAIK,eAAe;YAC3B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCf,CAAA;AAAA,CACA;AAED,MAAM,UAAU,KAAK,CAAC,MAAsB,EAAU;IACpD,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;AAAA,CACA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jigx/sdk-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.1.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",
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
"bin": {
|
|
10
10
|
"jigx": "dist/cli.js"
|
|
11
11
|
},
|
|
12
|
+
"engines": {
|
|
13
|
+
"node": ">=22"
|
|
14
|
+
},
|
|
12
15
|
"exports": {
|
|
13
16
|
".": {
|
|
14
17
|
"types": {
|