@ojiepermana/angular 0.1.1 → 21.0.2
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 +41 -249
- package/collection.json +25 -0
- package/fesm2022/ojiepermana-angular-chart.mjs +3714 -0
- package/fesm2022/ojiepermana-angular-chart.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-component.mjs +3463 -0
- package/fesm2022/ojiepermana-angular-component.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-generator-api.mjs +67 -0
- package/fesm2022/ojiepermana-angular-generator-api.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-layout.mjs +296 -408
- package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-navigation.mjs +2198 -404
- package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-theme.mjs +381 -1
- package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular.mjs +16 -1
- package/fesm2022/ojiepermana-angular.mjs.map +1 -1
- package/generator/api/README.md +183 -0
- package/generator/api/bin/schematics/init/index.js +88 -0
- package/generator/api/bin/schematics/sdk/index.js +58 -0
- package/generator/api/bin/src/config/loader.js +41 -0
- package/generator/api/bin/src/config/schema.js +56 -0
- package/generator/api/bin/src/emit/client.js +246 -0
- package/generator/api/bin/src/emit/metadata.js +295 -0
- package/generator/api/bin/src/emit/models.js +106 -0
- package/generator/api/bin/src/emit/navigation.js +56 -0
- package/generator/api/bin/src/emit/operations.js +122 -0
- package/generator/api/bin/src/emit/public-api.js +54 -0
- package/generator/api/bin/src/emit/services.js +87 -0
- package/generator/api/bin/src/engine.js +65 -0
- package/generator/api/bin/src/layout/per-domain.js +346 -0
- package/generator/api/bin/src/parser/bundle.js +25 -0
- package/generator/api/bin/src/parser/ir.js +320 -0
- package/generator/api/bin/src/parser/types.js +7 -0
- package/generator/api/bin/src/render/template.js +58 -0
- package/generator/api/bin/src/writer/index.js +69 -0
- package/generator/api/schematics/init/schema.json +19 -0
- package/generator/api/schematics/sdk/schema.json +19 -0
- package/generator/api/sdk.config.example.json +22 -0
- package/generator/guide/README.md +84 -0
- package/generator/guide/bin/schematics/build/index.js +35 -0
- package/generator/guide/bin/schematics/init/index.js +70 -0
- package/generator/guide/bin/src/config/loader.js +50 -0
- package/generator/guide/bin/src/config/schema.js +12 -0
- package/generator/guide/bin/src/engine/component.js +73 -0
- package/generator/guide/bin/src/engine/frontmatter.js +42 -0
- package/generator/guide/bin/src/engine/index.js +42 -0
- package/generator/guide/bin/src/engine/naming.js +39 -0
- package/generator/guide/bin/src/engine/render.js +18 -0
- package/generator/guide/bin/src/engine/routes.js +106 -0
- package/generator/guide/bin/src/engine/walk.js +35 -0
- package/generator/guide/guide.config.example.json +9 -0
- package/generator/guide/schematics/build/schema.json +14 -0
- package/generator/guide/schematics/init/schema.json +19 -0
- package/package.json +58 -38
- package/theme/styles/etos.css +38 -0
- package/theme/styles/index.css +32 -8
- package/theme/styles/themes/brand/etos/color.css +21 -0
- package/theme/styles/themes/brand/etos/style.css +50 -0
- package/theme/styles/themes/library/_components.css +63 -0
- package/theme/styles/themes/library/_layers.css +15 -0
- package/theme/styles/themes/library/_material-overrides.css +254 -0
- package/theme/styles/themes/library/_tokens.css +54 -0
- package/theme/styles/themes/library/color/amber.css +18 -0
- package/theme/styles/themes/library/color/blue.css +23 -0
- package/theme/styles/themes/library/color/green.css +18 -0
- package/theme/styles/themes/library/color/index.css +9 -0
- package/theme/styles/themes/library/color/purple.css +18 -0
- package/theme/styles/themes/library/color/red.css +18 -0
- package/theme/styles/themes/library/style/brutal.css +47 -0
- package/theme/styles/themes/library/style/default.css +51 -0
- package/theme/styles/themes/library/style/index.css +8 -0
- package/theme/styles/themes/library/style/sharp.css +47 -0
- package/theme/styles/themes/library/style/soft.css +47 -0
- package/theme/styles/themes/mode/dark.css +20 -0
- package/theme/styles/themes/mode/index.css +6 -0
- package/theme/styles/themes/mode/light.css +24 -0
- package/theme/styles/themes/taildwind.css +109 -0
- package/types/ojiepermana-angular-chart.d.ts +1094 -0
- package/types/ojiepermana-angular-component.d.ts +1174 -0
- package/types/ojiepermana-angular-generator-api.d.ts +85 -0
- package/types/ojiepermana-angular-layout.d.ts +125 -76
- package/types/ojiepermana-angular-navigation.d.ts +256 -116
- package/types/ojiepermana-angular-theme.d.ts +170 -1
- package/types/ojiepermana-angular.d.ts +2 -1
- package/fesm2022/ojiepermana-angular-internal.mjs +0 -489
- package/fesm2022/ojiepermana-angular-internal.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-navigation-horizontal.mjs +0 -721
- package/fesm2022/ojiepermana-angular-navigation-horizontal.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-navigation-vertical.mjs +0 -1647
- package/fesm2022/ojiepermana-angular-navigation-vertical.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-shell.mjs +0 -19
- package/fesm2022/ojiepermana-angular-shell.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-theme-component.mjs +0 -235
- package/fesm2022/ojiepermana-angular-theme-component.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-theme-directive.mjs +0 -29
- package/fesm2022/ojiepermana-angular-theme-directive.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-theme-service.mjs +0 -241
- package/fesm2022/ojiepermana-angular-theme-service.mjs.map +0 -1
- package/layout/README.md +0 -144
- package/layout/src/component/horizontal/horizontal.css +0 -130
- package/layout/src/component/vertical/vertical.css +0 -75
- package/layout/src/layout.css +0 -16
- package/navigation/README.md +0 -301
- package/navigation/horizontal/README.md +0 -49
- package/shell/README.md +0 -41
- package/styles/index.css +0 -2
- package/styles/resets.css +0 -22
- package/theme/README.md +0 -379
- package/theme/styles/adapters/material-ui/index.css +0 -205
- package/theme/styles/modes/dark.css +0 -84
- package/theme/styles/presets/colors/blue.css +0 -45
- package/theme/styles/presets/colors/brand.css +0 -52
- package/theme/styles/presets/colors/cyan.css +0 -45
- package/theme/styles/presets/colors/green.css +0 -45
- package/theme/styles/presets/colors/index.css +0 -7
- package/theme/styles/presets/colors/orange.css +0 -45
- package/theme/styles/presets/colors/purple.css +0 -45
- package/theme/styles/presets/colors/red.css +0 -45
- package/theme/styles/presets/styles/flat.css +0 -61
- package/theme/styles/presets/styles/glass.css +0 -28
- package/theme/styles/presets/styles/index.css +0 -2
- package/theme/styles/roles/index.css +0 -67
- package/theme/styles/tokens/foundation.css +0 -136
- package/theme/styles/tokens/semantic.css +0 -87
- package/theme/styles/utilities/index.css +0 -88
- package/types/ojiepermana-angular-internal.d.ts +0 -90
- package/types/ojiepermana-angular-navigation-horizontal.d.ts +0 -81
- package/types/ojiepermana-angular-navigation-vertical.d.ts +0 -262
- package/types/ojiepermana-angular-shell.d.ts +0 -14
- package/types/ojiepermana-angular-theme-component.d.ts +0 -46
- package/types/ojiepermana-angular-theme-directive.d.ts +0 -10
- package/types/ojiepermana-angular-theme-service.d.ts +0 -68
- /package/{navigation/vertical → chart}/README.md +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public config shape for the SDK generator.
|
|
3
|
+
*
|
|
4
|
+
* Users place an `sdk.config.json` at the workspace root describing one or more
|
|
5
|
+
* generation targets. All paths are resolved relative to the workspace root
|
|
6
|
+
* (i.e. the directory containing the config file).
|
|
7
|
+
*/
|
|
8
|
+
const DEFAULT_BANNER = '/* eslint-disable */\n/* Auto-generated by @ojiepermana/angular/generator/api. DO NOT EDIT. */';
|
|
9
|
+
const DEFAULT_FEATURES = {
|
|
10
|
+
models: true,
|
|
11
|
+
operations: true,
|
|
12
|
+
services: true,
|
|
13
|
+
client: true,
|
|
14
|
+
metadata: true,
|
|
15
|
+
navigation: true,
|
|
16
|
+
};
|
|
17
|
+
function resolveTarget(raw) {
|
|
18
|
+
if (!raw || typeof raw !== 'object') {
|
|
19
|
+
throw new Error('Invalid target: expected object');
|
|
20
|
+
}
|
|
21
|
+
if (!raw.input)
|
|
22
|
+
throw new Error('Target is missing required "input"');
|
|
23
|
+
if (!raw.output)
|
|
24
|
+
throw new Error('Target is missing required "output"');
|
|
25
|
+
const mode = raw.mode ?? 'standalone';
|
|
26
|
+
if (!['standalone', 'library', 'secondary-entrypoint'].includes(mode)) {
|
|
27
|
+
throw new Error(`Invalid target mode: ${mode}`);
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
input: raw.input,
|
|
31
|
+
output: raw.output,
|
|
32
|
+
mode,
|
|
33
|
+
clientName: raw.clientName ?? 'Api',
|
|
34
|
+
packageName: raw.packageName ?? '@local/sdk',
|
|
35
|
+
packageVersion: raw.packageVersion ?? '0.0.1',
|
|
36
|
+
rootUrl: raw.rootUrl,
|
|
37
|
+
features: { ...DEFAULT_FEATURES, ...(raw.features ?? {}) },
|
|
38
|
+
splitByDomain: raw.splitByDomain === true,
|
|
39
|
+
splitDepth: raw.splitDepth === 'tag' ? 'tag' : 'service',
|
|
40
|
+
banner: raw.banner ?? DEFAULT_BANNER,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function resolveConfig(raw) {
|
|
44
|
+
if (!raw || typeof raw !== 'object') {
|
|
45
|
+
throw new Error('Invalid SDK config: root must be an object');
|
|
46
|
+
}
|
|
47
|
+
const cfg = raw;
|
|
48
|
+
if (!Array.isArray(cfg.targets) || cfg.targets.length === 0) {
|
|
49
|
+
throw new Error('Invalid SDK config: "targets" must be a non-empty array');
|
|
50
|
+
}
|
|
51
|
+
return cfg.targets.map(resolveTarget);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/*
|
|
55
|
+
* Public API Surface of @ojiepermana/angular/generator/api
|
|
56
|
+
*
|
|
57
|
+
* This secondary entrypoint is primarily consumed as an Angular schematic
|
|
58
|
+
* collection (`init` and `sdk`). The TypeScript surface intentionally stays
|
|
59
|
+
* small and Node-free so it can be published inside the main library package.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Generated bundle index. Do not edit.
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
export { resolveConfig, resolveTarget };
|
|
67
|
+
//# sourceMappingURL=ojiepermana-angular-generator-api.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ojiepermana-angular-generator-api.mjs","sources":["../../../projects/angular/generator/api/src/config/schema.ts","../../../projects/angular/generator/api/public-api.ts","../../../projects/angular/generator/api/ojiepermana-angular-generator-api.ts"],"sourcesContent":["/**\n * Public config shape for the SDK generator.\n *\n * Users place an `sdk.config.json` at the workspace root describing one or more\n * generation targets. All paths are resolved relative to the workspace root\n * (i.e. the directory containing the config file).\n */\n\nexport type SdkOutputMode = 'standalone' | 'library' | 'secondary-entrypoint';\n\nexport interface SdkFeatureFlags {\n /** Emit `models/*.ts` (type-only DTO interfaces). Default `true`. */\n models?: boolean;\n /** Emit tree-shakeable operation functions in `fn/<tag>/*.ts`. Default `true`. */\n operations?: boolean;\n /** Emit grouped Injectable service classes per tag. Default `true`. */\n services?: boolean;\n /** Emit the runtime client primitives (ApiConfiguration, BaseService, etc). Default `true`. */\n client?: boolean;\n /** Emit operation rules + field validators + permission helpers. Default `true`. */\n metadata?: boolean;\n /** Emit navigation tree derived from tags (parent, x-icon). Default `false`. */\n navigation?: boolean;\n}\n\nexport interface SdkTargetConfig {\n /** Path to OpenAPI 3.x spec (YAML or JSON). Required. */\n input: string;\n /** Output directory (relative to workspace root). Required. */\n output: string;\n /** Output mode. Defaults to `\"standalone\"`. */\n mode?: SdkOutputMode;\n /** Optional human-readable name used for logs & the generated `Api` class. */\n clientName?: string;\n /** Package name used when `mode === \"library\"`. */\n packageName?: string;\n /** Package version used when `mode === \"library\"`. Defaults to `0.0.1`. */\n packageVersion?: string;\n /** Default rootUrl baked into ApiConfiguration. Defaults to the first server in the spec. */\n rootUrl?: string;\n /** Feature toggles. Every feature defaults to `true` except `navigation` (default `true` too). */\n features?: SdkFeatureFlags;\n /**\n * When `true`, reorganize emitted files into one folder per domain (derived\n * from OpenAPI tags). Models shared by multiple domains live in `shared/`,\n * domain-owned models live inside each domain. Default `false` (flat layout).\n */\n splitByDomain?: boolean;\n /**\n * Granularity of `splitByDomain`. Only meaningful when `splitByDomain` is\n * `true`. `'service'` (default) groups every tag under its root parent — one\n * folder per backend service (e.g. all Role/Permission/... tags collapse into\n * `access/`). `'tag'` emits one folder per leaf tag, nested under the parent\n * chain (e.g. `storage/gcs/`, `storage/s3/`, `access/role/`).\n */\n splitDepth?: 'service' | 'tag';\n /** Custom file banner. Defaults to a short auto-generated notice. */\n banner?: string;\n}\n\nexport interface SdkConfig {\n targets: SdkTargetConfig[];\n}\n\nexport interface ResolvedFeatureFlags {\n models: boolean;\n operations: boolean;\n services: boolean;\n client: boolean;\n metadata: boolean;\n navigation: boolean;\n}\n\nexport interface ResolvedSdkTarget {\n input: string;\n output: string;\n mode: SdkOutputMode;\n clientName: string;\n packageName: string;\n packageVersion: string;\n rootUrl: string | undefined;\n features: ResolvedFeatureFlags;\n splitByDomain: boolean;\n splitDepth: 'service' | 'tag';\n banner: string;\n}\n\nconst DEFAULT_BANNER = '/* eslint-disable */\\n/* Auto-generated by @ojiepermana/angular/generator/api. DO NOT EDIT. */';\n\nconst DEFAULT_FEATURES: ResolvedFeatureFlags = {\n models: true,\n operations: true,\n services: true,\n client: true,\n metadata: true,\n navigation: true,\n};\n\nexport function resolveTarget(raw: SdkTargetConfig): ResolvedSdkTarget {\n if (!raw || typeof raw !== 'object') {\n throw new Error('Invalid target: expected object');\n }\n if (!raw.input) throw new Error('Target is missing required \"input\"');\n if (!raw.output) throw new Error('Target is missing required \"output\"');\n\n const mode: SdkOutputMode = raw.mode ?? 'standalone';\n if (!['standalone', 'library', 'secondary-entrypoint'].includes(mode)) {\n throw new Error(`Invalid target mode: ${mode}`);\n }\n\n return {\n input: raw.input,\n output: raw.output,\n mode,\n clientName: raw.clientName ?? 'Api',\n packageName: raw.packageName ?? '@local/sdk',\n packageVersion: raw.packageVersion ?? '0.0.1',\n rootUrl: raw.rootUrl,\n features: { ...DEFAULT_FEATURES, ...(raw.features ?? {}) },\n splitByDomain: raw.splitByDomain === true,\n splitDepth: raw.splitDepth === 'tag' ? 'tag' : 'service',\n banner: raw.banner ?? DEFAULT_BANNER,\n };\n}\n\nexport function resolveConfig(raw: unknown): ResolvedSdkTarget[] {\n if (!raw || typeof raw !== 'object') {\n throw new Error('Invalid SDK config: root must be an object');\n }\n const cfg = raw as SdkConfig;\n if (!Array.isArray(cfg.targets) || cfg.targets.length === 0) {\n throw new Error('Invalid SDK config: \"targets\" must be a non-empty array');\n }\n return cfg.targets.map(resolveTarget);\n}\n","/*\n * Public API Surface of @ojiepermana/angular/generator/api\n *\n * This secondary entrypoint is primarily consumed as an Angular schematic\n * collection (`init` and `sdk`). The TypeScript surface intentionally stays\n * small and Node-free so it can be published inside the main library package.\n */\n\nexport type {\n ResolvedFeatureFlags,\n ResolvedSdkTarget,\n SdkConfig,\n SdkFeatureFlags,\n SdkOutputMode,\n SdkTargetConfig,\n} from './src/config/schema';\nexport { resolveConfig, resolveTarget } from './src/config/schema';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;;;;;AAMG;AAiFH,MAAM,cAAc,GAAG,gGAAgG;AAEvH,MAAM,gBAAgB,GAAyB;AAC7C,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,UAAU,EAAE,IAAI;CACjB;AAEK,SAAU,aAAa,CAAC,GAAoB,EAAA;IAChD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACnC,QAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;IACpD;IACA,IAAI,CAAC,GAAG,CAAC,KAAK;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;IACrE,IAAI,CAAC,GAAG,CAAC,MAAM;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AAEvE,IAAA,MAAM,IAAI,GAAkB,GAAG,CAAC,IAAI,IAAI,YAAY;AACpD,IAAA,IAAI,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACrE,QAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAA,CAAE,CAAC;IACjD;IAEA,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI;AACJ,QAAA,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,KAAK;AACnC,QAAA,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,YAAY;AAC5C,QAAA,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,OAAO;QAC7C,OAAO,EAAE,GAAG,CAAC,OAAO;AACpB,QAAA,QAAQ,EAAE,EAAE,GAAG,gBAAgB,EAAE,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;AAC1D,QAAA,aAAa,EAAE,GAAG,CAAC,aAAa,KAAK,IAAI;AACzC,QAAA,UAAU,EAAE,GAAG,CAAC,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,SAAS;AACxD,QAAA,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,cAAc;KACrC;AACH;AAEM,SAAU,aAAa,CAAC,GAAY,EAAA;IACxC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACnC,QAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC;IAC/D;IACA,MAAM,GAAG,GAAG,GAAgB;AAC5B,IAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3D,QAAA,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC;IAC5E;IACA,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AACvC;;ACtIA;;;;;;AAMG;;ACNH;;AAEG;;;;"}
|